YouTube

動画の詳細情報を更新

function updateYouTubeVideo() {
 
// 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 ID 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');

    console
.log('Video with ID = %s and Title = %s was successfully updated.',
        video
.snippet.resourceId.videoId, video.snippet.title);
 
}
}

チャンネルのお知らせメッセージを作成

function postChannelBulletin() {
 
var message = 'Thanks for subscribing to my channel!  This posting is ' +
               
'from Google Apps Script';

 
var videoId = 'INSERT_VIDEO_ID_HERE';
 
var resource = {
    snippet
: {
      description
: message
   
},
    contentDetails
: {
      bulletin
: {
        resourceId
: {
          kind
: 'youtube#video',
          videoId
: videoId
       
}
     
}
   
}
 
};

 
var response = YouTube.Activities.insert(resource, 'snippet,contentDetails');
  console
.log('Posted to channel bulletin successfully.');
}

アップロードされた動画のリストを取得

function retrieveVideoUploads() {
 
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];
        console
.log('[%s] Title: %s',
                   playlistItem
.snippet.resourceId.videoId,
                   playlistItem
.snippet.title);

     
}
      nextPageToken
= playlistResponse.nextPageToken;
   
}
 
}
}

キーワードで動画を検索

function searchVideosByKeyword() {
 
var results = YouTube.Search.list('id,snippet', {q: 'dogs', maxResults: 25});
 
for (var i in results.items) {
   
var item = results.items[i];
    console
.log('[%s] Title: %s', item.id.videoId, item.snippet.title);
 
}
}

トピックで動画を検索

function searchVideosByFreebaseTopic() {
 
// See https://developers.google.com/youtube/v3/guides/searching_by_topic
 
// for more details.

 
// Insert Your Freebase topic ID here. The Freebase ID used in this example
 
// corresponds to the Freebase entry for Google. See
 
// http://www.freebase.com/m/045c7b for more details.
 
var mid = '/m/045c7b';
 
var results = YouTube.Search.list('id,snippet',
     
{topicId: mid, maxResults: 25});
 
for (var i in results.items) {
   
var item = results.items[i];
    console
.log('[%s] Title: %s', item.id.videoId, item.snippet.title);
 
}
}

チャンネル登録

function subscribeToChannel() {
 
// Replace this channel ID with the channel ID you want to subscribe to.

 
var channelId = 'INSERT_YOUTUBE_CHANNEL_ID_HERE';
 
var resource = {
    snippet
: {
      resourceId
: {
        kind
: 'youtube#channel',
        channelId
: channelId
     
}
   
}
 
};

 
try {
   
var response = YouTube.Subscriptions.insert(resource, 'snippet');

    console
.log('Subscribed to channel ID %s successfully.', channelId);
 
} catch (e) {
   
if (e.message.match('subscriptionDuplicate')) {
      console
.log('Cannot subscribe; already subscribed to channel: ' +
          channelId
);
   
} else {
      console
.log('Error adding subscription: ' + e.message);
   
}
 
}
}