YouTube Hizmeti

YouTube hizmeti, Apps Komut Dosyası'nda YouTube Data API ve YouTube Live Streaming API'yı kullanmanıza olanak tanır. Bu API, kullanıcıların videolarını, oynatma listelerini, kanallarını ve canlı etkinliklerini yönetmelerine olanak tanır.

Referans

Bu hizmet hakkında ayrıntılı bilgi için aşağıdaki referans belgelerine bakın:

Apps Komut Dosyası'ndaki tüm gelişmiş hizmetler gibi YouTube hizmeti de genel API ile aynı nesneleri, yöntemleri ve parametreleri kullanır. Daha fazla bilgi için Yöntem imzaları nasıl belirlenir? bölümüne bakın.

Sorunları bildirmek ve diğer destek kaynaklarına ulaşmak için ilgili destek sayfalarına bakın:

Örnek kod

Aşağıdaki örnek kod, YouTube Data API'nin 3. sürümünü kullanmaktadır.

Anahtar kelimeye göre ara

Bu işlev köpeklerle ilgili videoları arar, ardından video kimliklerini ve başlığı günlüğe kaydeder. Bu örneğin, sonuçları 25 ile sınırladığını unutmayın. Daha fazla sonuç döndürmek için YouTube Data API referans belgelerinde gösterilen ek parametreleri iletin.

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) {
      console.log('Unable to search videos');
      return;
    }
    results.items.forEach((item)=> {
      console.log('[%s] Title: %s', item.id.videoId, item.snippet.title);
    });
  } catch (err) {
    // TODO (developer) - Handle exceptions from Youtube API
    console.log('Failed with an error %s', err.message);
  }
}

Yüklenenleri al

Bu işlev, kullanıcının yüklediği videoları getirir. Bunu aşağıdaki adımları uygulayarak yapar:

  1. Kullanıcının kanalını getirir
  2. Kullanıcının uploads oynatma listesini getirir
  3. Bu oynatma listesinde yinelenir ve video kimlikleri ile başlıkları günlüğe kaydeder
  4. Sonraki bir sonuç sayfası varsa, sonucu getirir ve 3. adıma geri döner
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) {
      console.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) {
          console.log('No Playlist found.');
          break;
        }
        for (let j = 0; j < playlistResponse.items.length; j++) {
          const playlistItem = playlistResponse.items[j];
          console.log('[%s] Title: %s',
              playlistItem.snippet.resourceId.videoId,
              playlistItem.snippet.title);
        }
        nextPageToken = playlistResponse.nextPageToken;
      } while (nextPageToken);
    }
  } catch (err) {
    // TODO (developer) - Handle exception
    console.log('Failed with err %s', err.message);
  }
}

Kanala abone ol

Bu örnek, kullanıcının YouTube'daki Google Developers kanalına abone olmasını sağlar.

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');
    console.log('Added subscription for channel title : %s', response.snippet.title);
  } catch (e) {
    if (e.message.match('subscriptionDuplicate')) {
      console.log('Cannot subscribe; already subscribed to channel: ' +
        channelId);
    } else {
      // TODO (developer) - Handle exception
      console.log('Error adding subscription: ' + e.message);
    }
  }
}