Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
55 changes: 52 additions & 3 deletions advanced/youtube.gs
Original file line number Diff line number Diff line change
Expand Up @@ -26,10 +26,9 @@ function searchByKeyword() {
maxResults: 25
});

for (var i = 0; i < results.items.length; i++) {
var item = results.items[i];
results.items.forEach(function(item) {
Logger.log('[%s] Title: %s', item.id.videoId, item.snippet.title);
}
});
}
// [END apps_script_youtube_search]

Expand Down Expand Up @@ -100,3 +99,53 @@ function addSubscription() {
}
}
// [END apps_script_youtube_subscription]

// [START apps_script_youtube_slides]
/**
* Creates a slide presentation with 10 videos from the YouTube search `YOUTUBE_QUERY`.
* The YouTube Advanced Service must be enabled before using this sample.
*/
var PRESENTATION_TITLE = 'San Francisco, CA';
var YOUTUBE_QUERY = 'San Francisco, CA';

/**
* Gets a list of YouTube videos.
* @param {String} query - The query term to search for.
* @return {object[]} A list of objects with YouTube video data.
* @ref https://developers.google.com/youtube/v3/docs/search/list
*/
function getYouTubeVideosJSON(query) {
var youTubeResults = YouTube.Search.list('id,snippet', {
q: query,
type: 'video',
maxResults: 10
});

return youTubeResults.items.map(function(item) {
return {
url: 'https://youtu.be/' + item.id.videoId,
title: item.snippet.title,
thumbnailUrl: item.snippet.thumbnails.high.url
};
});
}

/**
* Creates a presentation where each slide features a YouTube video.
* Logs out the URL of the presentation.
*/
function createSlides() {
var youTubeVideos = getYouTubeVideosJSON(YOUTUBE_QUERY);
var presentation = SlidesApp.create(PRESENTATION_TITLE);
presentation.getSlides()[0].getPageElements()[0].asShape()
.getText().setText(PRESENTATION_TITLE);

// Add slides with videos and log the presentation URL to the user.
youTubeVideos.forEach(function(video) {
var slide = presentation.appendSlide();
slide.insertVideo(video.url,
0, 0, presentation.getPageWidth(), presentation.getPageHeight());
});
Logger.log(presentation.getUrl());
}
// [END apps_script_youtube_slides]