דוגמאות הקוד הבאות של Apps Script זמינות ל-YouTube Data API. אפשר להוריד את דוגמאות הקוד האלה מהתיקייה apps-script
במאגר דוגמאות הקוד של ממשקי ה-API של YouTube ב-GitHub.
אחזור ההעלאות שלי
הפונקציה הזו מאחזרת את הסרטונים שהמשתמש הנוכחי של הסקריפט העלאה. כדי לבצע את הפעולה הזו, נדרשים היקף הרשאת הקריאה/כתיבה ב-OAuth ל-YouTube וגם הרשאת משתמש. בסביבת זמן הריצה של Apps Script, בפעם הראשונה שמשתמש מפעיל סקריפט, מערכת Apps Script מבקשת מהמשתמש הרשאה לגשת לשירותים שהסקריפט קורא להם. אחרי שמעניקים הרשאות, הן מאוחסנות במטמון למשך תקופה מסוימת. המשתמש שמפעיל את הסקריפט יתבקש להביע הסכמה שוב כשההרשאות הנדרשות ישתנו, או כשהן יבוטלו על ידי הפונקציהScriptApp.invalidateAuth()
.הסקריפט הזה מבצע את הפעולות הבאות כדי לאחזר את הסרטונים שהועלו על ידי המשתמש הפעיל:
- אחזור הערוצים של המשתמש.
- אחזור הפלייליסט 'העלאות' של המשתמש.
- הפונקציה עוברת על הפלייליסט הזה ומתעדת את מזהי הסרטונים ואת השמות שלהם ביומן.
- אחזור אסימון לדף הבא, אם קיים כזה. אם יש כזה, מתבצע אחזור של הדף הבא. חוזרים על שלב 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; } } }
חיפוש לפי מילת מפתח
הפונקציה הזו מחפשת סרטונים שקשורים למילת המפתח'dogs'
. מזהי הסרטונים והכותרות של תוצאות החיפוש נרשמים ביומן של Apps Script.שימו לב שהדגימה הזו מגבילה את התוצאות ל-25. כדי להציג יותר תוצאות, מעבירים פרמטרים נוספים כפי שמתואר במאמר 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); } }
חיפוש לפי נושא
הפונקציה הזו מחפשת סרטונים שמשויכים לנושא מסוים ב-Freebase, ומתעדת את מזהי הסרטונים והשמות שלהם ביומן של Apps Script. בדוגמה הזו נעשה שימוש במזהה הנושא של Google Apps Script.שימו לב שהדגימה הזו מגבילה את התוצאות ל-25. כדי להציג יותר תוצאות, מעבירים פרמטרים נוספים כפי שמתואר במאמר 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); } }
הירשם לערוץ
הדוגמה הזו מאפשרת להירשם את המשתמש הפעיל לערוץ YouTube של Google Developers, שמוגדר על ידי 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); } } }
עדכון סרטון
הדוגמה הזו מאתרת את ההעלאות של המשתמש הפעיל, ולאחר מכן מעדכנת את התיאור של ההעלאה האחרונה על ידי הוספת מחרוזת./** * 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'); } }