خدمة YouTube

تنظيم صفحاتك في مجموعات يمكنك حفظ المحتوى وتصنيفه حسب إعداداتك المفضّلة.

تتيح لك خدمة YouTube استخدام YouTube Data API وYouTube Live Streaming API في "برمجة التطبيقات". وتمنح واجهة برمجة التطبيقات هذه المستخدمين إمكانية إدارة الفيديوهات وقوائم التشغيل والقنوات والأحداث المباشرة.

مَراجع

للحصول على معلومات تفصيلية عن هذه الخدمة، راجِع المستندات المرجعية التالية:

على غرار جميع الخدمات المتقدّمة في "برمجة تطبيقات Google"، تستخدم خدمة YouTube العناصر والأساليب والمعلَمات نفسها التي تستخدمها "واجهة برمجة التطبيقات العامة". لمزيد من المعلومات، يمكنك الاطّلاع على كيفية تحديد توقيعات الطريقة.

للإبلاغ عن المشاكل والعثور على الدعم الآخر، يُرجى الاطّلاع على صفحات الدعم المقابلة:

نموذج التعليمات البرمجية

يستخدم نموذج الرمز التالي الإصدار 3 من YouTube Data API.

البحث حسب الكلمة الرئيسية

تبحث هذه الوظيفة عن الفيديوهات المتعلقة بالكلاب، ثم تسجّل معرّفات الفيديوهات وعنوانها. تجدر الإشارة إلى أن هذا النموذج يقتصر على 25 نتيجة. لعرض المزيد من النتائج، يُرجى تمرير المعلمات الإضافية كما هو موضّح في المستندات المرجعية في YouTube Data API.

Advanced/youtube.gs
/**
 * Searches for videos about dogs, then logs the video IDs and title.
 * Note that this sample limits the results to 25. To return more
 * results, pass additional parameters as shown in the YouTube Data API docs.
 * @see https://developers.google.com/youtube/v3/docs/search/list
 */
function searchByKeyword() {
  try {
    const results = YouTube.Search.list('id,snippet', {
      q: 'dogs',
      maxResults: 25
    });
    if (results === null) {
      Logger.log('Unable to search videos');
      return;
    }
    results.items.forEach((item)=> {
      Logger.log('[%s] Title: %s', item.id.videoId, item.snippet.title);
    });
  } catch (err) {
    // TODO (developer) - Handle exceptions from Youtube API
    Logger.log('Failed with an error %s', err.message);
  }
}

استرداد الفيديوهات التي تم تحميلها

تسترد هذه الدالة الفيديوهات التي حمّلها المستخدم. ويتم إجراء ذلك باستخدام الخطوات التالية:

  1. تجلب قناة المستخدم
  2. جلب قائمة تشغيل المستخدم uploads
  3. تكرار قائمة التشغيل هذه وتسجيل أرقام تعريف الفيديوهات وعناوينها
  4. إذا كانت هناك صفحة تالية من النتائج، يتم استرجاعها، ثم العودة إلى الخطوة 3
Advanced/youtube.gs
/**
 * This function retrieves the user's uploaded videos by:
 * 1. Fetching the user's channel's.
 * 2. Fetching the user's "uploads" playlist.
 * 3. Iterating through this playlist and logs the video IDs and titles.
 * 4. If there is a next page of resuts, fetching it and returns to step 3.
 */
function retrieveMyUploads() {
  try {
    // @see https://developers.google.com/youtube/v3/docs/channels/list
    const results = YouTube.Channels.list('contentDetails', {
      mine: true
    });
    if (!results || results.items.length === 0) {
      Logger.log('No Channels found.');
      return;
    }
    for (let i = 0; i < results.items.length; i++) {
      const item = results.items[i];
      /** Get the channel ID - it's nested in contentDetails, as described in the
       * Channel resource: https://developers.google.com/youtube/v3/docs/channels.
       */
      const playlistId = item.contentDetails.relatedPlaylists.uploads;
      let nextPageToken = null;
      do {
        // @see: https://developers.google.com/youtube/v3/docs/playlistItems/list
        const playlistResponse = YouTube.PlaylistItems.list('snippet', {
          playlistId: playlistId,
          maxResults: 25,
          pageToken: nextPageToken
        });
        if (!playlistResponse || playlistResponse.items.length === 0) {
          Logger.log('No Playlist found.');
          break;
        }
        for (let j = 0; j < playlistResponse.items.length; j++) {
          const playlistItem = playlistResponse.items[j];
          Logger.log('[%s] Title: %s',
              playlistItem.snippet.resourceId.videoId,
              playlistItem.snippet.title);
        }
        nextPageToken = playlistResponse.nextPageToken;
      } while (nextPageToken);
    }
  } catch (err) {
    // TODO (developer) - Handle exception
    Logger.log('Failed with err %s', err.message);
  }
}

الاشتراك في القناة

يشترك هذا النموذج المستخدم في قناة Google Developers على YouTube.

Advanced/youtube.gs
/**
 * This sample subscribes the user to the Google Developers channel on YouTube.
 * @see https://developers.google.com/youtube/v3/docs/subscriptions/insert
 */
function addSubscription() {
  // Replace this channel ID with the channel ID you want to subscribe to
  const channelId = 'UC_x5XG1OV2P6uZZ5FSM9Ttw';
  const resource = {
    snippet: {
      resourceId: {
        kind: 'youtube#channel',
        channelId: channelId
      }
    }
  };

  try {
    const response = YouTube.Subscriptions.insert(resource, 'snippet');
    Logger.log('Added subscription for channel title : %s', response.snippet.title);
  } catch (e) {
    if (e.message.match('subscriptionDuplicate')) {
      Logger.log('Cannot subscribe; already subscribed to channel: ' +
        channelId);
    } else {
      // TODO (developer) - Handle exception
      Logger.log('Error adding subscription: ' + e.message);
    }
  }
}