Mã mẫu Apps Script

Các mã mẫu Apps Script sau đây có sẵn cho YouTube Data API. Bạn có thể tải các mã mẫu này xuống từ thư mục apps-script của Kho lưu trữ mã mẫu API YouTube trên GitHub.

Truy xuất nội dung tải lên của tôi

Hàm này truy xuất các video đã tải lên của người dùng tập lệnh hiện tại. Để thực thi, nó yêu cầu phạm vi đọc/ghi OAuth cho YouTube cũng như ủy quyền người dùng. Trong môi trường thời gian chạy của Apps Script, lần đầu tiên người dùng chạy tập lệnh, Apps Script sẽ nhắc người dùng cấp quyền truy cập vào các dịch vụ mà tập lệnh gọi. Sau khi được cấp quyền, các quyền này sẽ được lưu vào bộ nhớ đệm trong một khoảng thời gian nhất định. Người dùng chạy tập lệnh sẽ được nhắc cấp quyền một lần nữa sau khi các quyền cần thiết thay đổi hoặc khi họ không hợp lệ bởi hàm ScriptApp.invalidateAuth().

Tập lệnh này thực hiện các bước sau để truy xuất video do người dùng đang hoạt động tải lên: 1. Tìm nạp kênh của người dùng 2. Tìm nạp danh sách phát 3 "video tải lên" của người dùng. Lặp lại qua danh sách phát này và ghi lại mã video cũng như tiêu đề 4. Tìm nạp mã thông báo của trang tiếp theo (nếu có). Nếu có, hãy tìm nạp trang tiếp theo. CHUYỂN ĐẾN Bước 3
/**
 * This function retrieves the current script user's uploaded videos. To execute,
 * it requires the OAuth read/write scope for YouTube as well as user authorization.
 * In Apps Script's runtime environment, the first time a user runs a script, Apps
 * Script will prompt the user for permission to access the services called by the
 * script. After permissions are granted, they are cached for some periodF of time.
 * The user running the script will be prompted for permission again once the
 * permissions required change, or when they are invalidated by the
 * ScriptApp.invalidateAuth() function.
 *
 * This script takes the following steps to retrieve the active user's uploaded videos:
 *    1. Fetches the user's channels
 *    2. Fetches the user's 'uploads' playlist
 *    3. Iterates through this playlist and logs the video IDs and titles
 *    4. Fetches a next page token (if any). If there is one, fetches the next page. GOTO Step 3
 */
function retrieveMyUploads() {
  var results = YouTube.Channels.list('contentDetails', {mine: true});
  for(var i in results.items) {
    var item = results.items[i];
    // Get the playlist ID, which is nested in contentDetails, as described in the
    // Channel resource: https://developers.google.com/youtube/v3/docs/channels
    var playlistId = item.contentDetails.relatedPlaylists.uploads;

    var nextPageToken = '';

    // This loop retrieves a set of playlist items and checks the nextPageToken in the
    // response to determine whether the list contains additional items. It repeats that process
    // until it has retrieved all of the items in the list.
    while (nextPageToken != null) {
      var playlistResponse = YouTube.PlaylistItems.list('snippet', {
        playlistId: playlistId,
        maxResults: 25,
        pageToken: nextPageToken
      });

      for (var j = 0; j < playlistResponse.items.length; j++) {
        var playlistItem = playlistResponse.items[j];
        Logger.log('[%s] Title: %s',
                   playlistItem.snippet.resourceId.videoId,
                   playlistItem.snippet.title);

      }
      nextPageToken = playlistResponse.nextPageToken;
    }
  }
}

Tìm kiếm theo từ khóa

Hàm này tìm kiếm các video có liên quan đến từ khoá 'dogs'. ID video và tiêu đề của kết quả tìm kiếm được ghi vào nhật ký của Apps Script.

Xin lưu ý rằng mẫu này giới hạn kết quả ở mức 25. Để trả về nhiều kết quả hơn, hãy chuyển các tham số khác như được nêu tại đây: https://developers.google.com/youtube/v3/docs/search/list
/**
 * This function searches for videos related to the keyword 'dogs'. The video IDs and titles
 * of the search results are logged to Apps Script's log.
 *
 * Note that this sample limits the results to 25. To return more results, pass
 * additional parameters as documented here:
 *   https://developers.google.com/youtube/v3/docs/search/list
 */
function searchByKeyword() {
  var results = YouTube.Search.list('id,snippet', {q: 'dogs', maxResults: 25});
  for(var i in results.items) {
    var item = results.items[i];
    Logger.log('[%s] Title: %s', item.id.videoId, item.snippet.title);
  }
}

Tìm kiếm theo chủ đề

Hàm này tìm kiếm các video được liên kết với một chủ đề cụ thể trên Freebase, ghi lại ID và tiêu đề video của chúng vào nhật ký Apps Script. Ví dụ này sử dụng ID chủ đề cho Google Apps Script.

Xin lưu ý rằng mẫu này giới hạn kết quả ở mức 25. Để trả về nhiều kết quả hơn, hãy chuyển các tham số khác như được nêu tại đây: https://developers.google.com/youtube/v3/docs/search/list
/**
 * This function searches for videos that are associated with a particular Freebase
 * topic, logging their video IDs and titles to the Apps Script log. This example uses
 * the topic ID for Google Apps Script.
 *
 * Note that this sample limits the results to 25. To return more results, pass
 * additional parameters as documented here:
 *   https://developers.google.com/youtube/v3/docs/search/list
 */
function searchByTopic() {
  var mid = '/m/0gjf126';
  var results = YouTube.Search.list('id,snippet', {topicId: mid, maxResults: 25});
  for(var i in results.items) {
    var item = results.items[i];
    Logger.log('[%s] Title: %s', item.id.videoId, item.snippet.title);
  }
}

Đăng ký kênh

Mẫu này đăng ký người dùng đang hoạt động vào kênh YouTube của Google Developers, được chỉ định bởi channelId.
/**
 * This sample subscribes the active user to the Google Developers
 * YouTube channel, specified by the channelId.
 */
function addSubscription() {
  // Replace this channel ID with the channel ID you want to subscribe to
  var channelId = 'UC_x5XG1OV2P6uZZ5FSM9Ttw';
  var resource = {
    snippet: {
      resourceId: {
        kind: 'youtube#channel',
        channelId: channelId
      }
    }
  };

  try {
    var response = YouTube.Subscriptions.insert(resource, 'snippet');
    Logger.log(response);
  } catch (e) {
    if(e.message.match('subscriptionDuplicate')) {
      Logger.log('Cannot subscribe; already subscribed to channel: ' + channelId);
    } else {
      Logger.log('Error adding subscription: ' + e.message);
    }
  }
}

Cập nhật video

Mẫu này sẽ tìm nội dung tải lên của người dùng đang hoạt động, sau đó cập nhật nội dung mô tả gần đây nhất của nội dung tải lên bằng cách thêm chuỗi.
/**
 * This sample finds the active user's uploads, then updates the most recent
 * upload's description by appending a string.
 */
function updateVideo() {
  // 1. Fetch all the channels owned by active user
  var myChannels = YouTube.Channels.list('contentDetails', {mine: true});
  // 2. Iterate through the channels and get the uploads playlist ID
  for (var i = 0; i < myChannels.items.length; i++) {
    var item = myChannels.items[i];
    var uploadsPlaylistId = item.contentDetails.relatedPlaylists.uploads;

    var playlistResponse = YouTube.PlaylistItems.list('snippet', {
      playlistId: uploadsPlaylistId,
      maxResults: 1
    });

    // Get the videoID of the first video in the list
    var video = playlistResponse.items[0];
    var originalDescription = video.snippet.description;
    var updatedDescription = originalDescription + ' Description updated via Google Apps Script';

    video.snippet.description = updatedDescription;

    var resource = {
      snippet: {
        title: video.snippet.title,
        description: updatedDescription,
        categoryId: '22'
      },
      id: video.snippet.resourceId.videoId
    };
    YouTube.Videos.update(resource, 'id,snippet');
  }
}