מחזירה אוסף של פריטים בפלייליסט שתואמים לפרמטרים של בקשת ה-API. אפשר לאחזר את כל פריטי הפלייליסט מפלייליסט מסוים או לאחזר פריט אחד או יותר בפלייליסט לפי המזהים הייחודיים שלהם.
ההשפעה של המכסה: לקריאה לשיטה הזו יש עלות מכסה של יחידה אחת.
תרחישים נפוצים לדוגמה
בקשה
בקשת HTTP
GET https://www.googleapis.com/youtube/v3/playlistItems
פרמטרים
בטבלה הבאה מפורטים הפרמטרים שהשאילתה הזו תומכת בהם. כל הפרמטרים המפורטים הם פרמטרים של שאילתות.
פרמטרים | ||
---|---|---|
הפרמטרים הנדרשים | ||
part |
string הפרמטר part מציין רשימה מופרדת בפסיקים של מאפייני משאב playlistItem אחד או יותר שייכללו בתגובה של ה-API.אם הפרמטר מזהה נכס שמכיל נכסי צאצא, מאפייני הצאצאים ייכללו בתגובה. לדוגמה, במשאב playlistItem , המאפיין snippet מכיל מספר שדות, כולל המאפיינים title , description , position ו-resourceId . לכן, אם מגדירים part=snippet , תגובת ה-API תכלול את כל המאפיינים האלה.הרשימה הבאה מכילה את שמות part שאפשר לכלול בערך הפרמטר:
|
|
מסננים (יש לציין בדיוק אחד מהפרמטרים הבאים) | ||
id |
string הפרמטר id מציין רשימה מופרדת בפסיקים של מזהה פריט ייחודי אחד או יותר בפלייליסט. |
|
playlistId |
string הפרמטר playlistId מציין את המזהה הייחודי של הפלייליסט שאליו רוצים לאחזר את הפריטים. חשוב לשים לב שלמרות שזה פרמטר אופציונלי, כל בקשה לאחזור פריטים בפלייליסט חייבת לציין ערך לפרמטר id או לפרמטר playlistId . |
|
פרמטרים אופציונליים | ||
maxResults |
unsigned integer הפרמטר maxResults מציין את מספר הפריטים המקסימלי שצריך להחזיר בקבוצת התוצאות. הערכים הקבילים הם 0 עד 50 , כולל. ערך ברירת המחדל הוא 5 . |
|
onBehalfOfContentOwner |
string ניתן להשתמש בפרמטר הזה רק במסגרת בקשה מורשית תקינה. הערה: הפרמטר הזה מיועד אך ורק לשותפי תוכן של YouTube. הפרמטר onBehalfOfContentOwner מציין שפרטי הכניסה של ההרשאה של הבקשה מזהים משתמש YouTube CMS שפועל בשם בעלי התוכן שצוין בערך הפרמטר. הפרמטר הזה מיועד לשותפי תוכן של YouTube שהם הבעלים והמנהלים של ערוצי YouTube רבים ושונים. היא מאפשרת לבעלי תוכן לבצע אימות פעם אחת ולקבל גישה לכל נתוני הסרטונים והערוץ, בלי שיצטרכו לספק פרטי כניסה לאימות עבור כל ערוץ בנפרד. חשבון ה-CMS שאיתו המשתמש מבצע אימות חייב להיות מקושר לבעלי התוכן שצוינו ב-YouTube. |
|
pageToken |
string הפרמטר pageToken מזהה דף ספציפי בקבוצת התוצאות שצריך להחזיר. בתגובת ה-API, המאפיינים nextPageToken ו-prevPageToken מזהים דפים אחרים שניתן לאחזר. |
|
videoId |
string הפרמטר videoId מציין שהבקשה צריכה להחזיר רק את פריטי הפלייליסט שמכילים את הסרטון שצוין. |
גוף הבקשה
אין לציין את גוף הבקשה בקריאה לשיטה הזו.
תשובה
אם הפעולה בוצעה בהצלחה, השיטה הזו מחזירה גוף תגובה עם המבנה הבא:
{ "kind": "youtube#playlistItemListResponse", "etag": etag, "nextPageToken": string, "prevPageToken": string, "pageInfo": { "totalResults": integer, "resultsPerPage": integer }, "items": [ playlistItem Resource ] }
תכונות
הטבלה הבאה מגדירה את המאפיינים שיופיעו במשאב הזה:
תכונות | |
---|---|
kind |
string מזהה את הסוג של משאב ה-API. הערך יהיה youtube#playlistItemListResponse . |
etag |
etag ה-e של המשאב הזה. |
nextPageToken |
string האסימון שיכול לשמש כערך של הפרמטר pageToken כדי לאחזר את הדף הבא בקבוצת התוצאות. |
prevPageToken |
string האסימון שיכול לשמש כערך הפרמטר pageToken כדי לאחזר את הדף הקודם בקבוצת התוצאות. |
pageInfo |
object האובייקט pageInfo כולל את פרטי החלוקה לדפים של קבוצת התוצאות. |
pageInfo.totalResults |
integer המספר הכולל של התוצאות בקבוצת התוצאות. |
pageInfo.resultsPerPage |
integer מספר התוצאות שכלולות בתגובת ה-API. |
items[] |
list רשימה של פריטים בפלייליסט שעומדים בקריטריונים של הבקשה. |
דוגמאות
הערה: יכול להיות שדוגמאות הקוד הבאות לא מייצגות את כל שפות התכנות הנתמכות. כדי לקבל רשימה של שפות נתמכות, אפשר לעיין במסמכי התיעוד של ספריות הלקוח.
Go
דוגמת הקוד הזו מפעילה את השיטהplaylistItems.list
של ה-API כדי לאחזר רשימה של סרטונים שהועלו לערוץ המשויך לבקשה. בנוסף, הקוד מפעיל את השיטה channels.list
, שבה הפרמטר mine
מוגדר ל-true
כדי לאחזר את מזהה הפלייליסט שמזהה את הסרטונים שהועלו בערוץ.
בדוגמה הזו נשתמש בספריית הלקוח של Go.
package main import ( "fmt" "log" "google.golang.org/api/youtube/v3" ) // Retrieve playlistItems in the specified playlist func playlistItemsList(service *youtube.Service, part string, playlistId string, pageToken string) *youtube.PlaylistItemListResponse { call := service.PlaylistItems.List(part) call = call.PlaylistId(playlistId) if pageToken != "" { call = call.PageToken(pageToken) } response, err := call.Do() handleError(err, "") return response } // Retrieve resource for the authenticated user's channel func channelsListMine(service *youtube.Service, part string) *youtube.ChannelListResponse { call := service.Channels.List(part) call = call.Mine(true) response, err := call.Do() handleError(err, "") return response } func main() { client := getClient(youtube.YoutubeReadonlyScope) service, err := youtube.New(client) if err != nil { log.Fatalf("Error creating YouTube client: %v", err) } response := channelsListMine(service, "contentDetails") for _, channel := range response.Items { playlistId := channel.ContentDetails.RelatedPlaylists.Uploads // Print the playlist ID for the list of uploaded videos. fmt.Printf("Videos in list %s\r\n", playlistId) nextPageToken := "" for { // Retrieve next set of items in the playlist. playlistResponse := playlistItemsList(service, "snippet", playlistId, nextPageToken) for _, playlistItem := range playlistResponse.Items { title := playlistItem.Snippet.Title videoId := playlistItem.Snippet.ResourceId.VideoId fmt.Printf("%v, (%v)\r\n", title, videoId) } // Set the token to retrieve the next page of results // or exit the loop if all results have been retrieved. nextPageToken = playlistResponse.NextPageToken if nextPageToken == "" { break } fmt.Println() } } }
.NET
דוגמת הקוד הבאה מפעילה את השיטהplaylistItems.list
של ה-API כדי לאחזר רשימה של סרטונים שהועלו לערוץ המשויך לבקשה. בנוסף, הקוד מפעיל את השיטה channels.list
, שבה הפרמטר mine
מוגדר ל-true
כדי לאחזר את מזהה הפלייליסט שמזהה את הסרטונים שהועלו בערוץ.
בדוגמה הזו נשתמש בספריית הלקוח.NET.
using System; using System.IO; using System.Reflection; using System.Threading; using System.Threading.Tasks; using Google.Apis.Auth.OAuth2; using Google.Apis.Services; using Google.Apis.Upload; using Google.Apis.Util.Store; using Google.Apis.YouTube.v3; using Google.Apis.YouTube.v3.Data; namespace Google.Apis.YouTube.Samples { /// <summary> /// YouTube Data API v3 sample: retrieve my uploads. /// Relies on the Google APIs Client Library for .NET, v1.7.0 or higher. /// See https://developers.google.com/api-client-library/dotnet/get_started /// </summary> internal class MyUploads { [STAThread] static void Main(string[] args) { Console.WriteLine("YouTube Data API: My Uploads"); Console.WriteLine("============================"); try { new MyUploads().Run().Wait(); } catch (AggregateException ex) { foreach (var e in ex.InnerExceptions) { Console.WriteLine("Error: " + e.Message); } } Console.WriteLine("Press any key to continue..."); Console.ReadKey(); } private async Task Run() { UserCredential credential; using (var stream = new FileStream("client_secrets.json", FileMode.Open, FileAccess.Read)) { credential = await GoogleWebAuthorizationBroker.AuthorizeAsync( GoogleClientSecrets.Load(stream).Secrets, // This OAuth 2.0 access scope allows for read-only access to the authenticated // user's account, but not other types of account access. new[] { YouTubeService.Scope.YoutubeReadonly }, "user", CancellationToken.None, new FileDataStore(this.GetType().ToString()) ); } var youtubeService = new YouTubeService(new BaseClientService.Initializer() { HttpClientInitializer = credential, ApplicationName = this.GetType().ToString() }); var channelsListRequest = youtubeService.Channels.List("contentDetails"); channelsListRequest.Mine = true; // Retrieve the contentDetails part of the channel resource for the authenticated user's channel. var channelsListResponse = await channelsListRequest.ExecuteAsync(); foreach (var channel in channelsListResponse.Items) { // From the API response, extract the playlist ID that identifies the list // of videos uploaded to the authenticated user's channel. var uploadsListId = channel.ContentDetails.RelatedPlaylists.Uploads; Console.WriteLine("Videos in list {0}", uploadsListId); var nextPageToken = ""; while (nextPageToken != null) { var playlistItemsListRequest = youtubeService.PlaylistItems.List("snippet"); playlistItemsListRequest.PlaylistId = uploadsListId; playlistItemsListRequest.MaxResults = 50; playlistItemsListRequest.PageToken = nextPageToken; // Retrieve the list of videos uploaded to the authenticated user's channel. var playlistItemsListResponse = await playlistItemsListRequest.ExecuteAsync(); foreach (var playlistItem in playlistItemsListResponse.Items) { // Print information about each video. Console.WriteLine("{0} ({1})", playlistItem.Snippet.Title, playlistItem.Snippet.ResourceId.VideoId); } nextPageToken = playlistItemsListResponse.NextPageToken; } } } } }
Ruby
הדוגמה הזו מפעילה את השיטהplaylistItems.list
של ה-API כדי לאחזר רשימה של סרטונים שהועלו לערוץ המשויך לבקשה. בנוסף, הקוד מפעיל את השיטה channels.list
עם הערך true
של הפרמטר mine
, כדי לאחזר את מזהה הפלייליסט שמזהה את הסרטונים שהועלו בערוץ.
בדוגמה הזו נשתמש בספריית הלקוח של Ruby.
#!/usr/bin/ruby require 'rubygems' gem 'google-api-client', '>0.7' require 'google/api_client' require 'google/api_client/client_secrets' require 'google/api_client/auth/file_storage' require 'google/api_client/auth/installed_app' # This OAuth 2.0 access scope allows for read-only access to the authenticated # user's account, but not other types of account access. YOUTUBE_READONLY_SCOPE = 'https://www.googleapis.com/auth/youtube.readonly' YOUTUBE_API_SERVICE_NAME = 'youtube' YOUTUBE_API_VERSION = 'v3' def get_authenticated_service client = Google::APIClient.new( :application_name => $PROGRAM_NAME, :application_version => '1.0.0' ) youtube = client.discovered_api(YOUTUBE_API_SERVICE_NAME, YOUTUBE_API_VERSION) file_storage = Google::APIClient::FileStorage.new("#{$PROGRAM_NAME}-oauth2.json") if file_storage.authorization.nil? client_secrets = Google::APIClient::ClientSecrets.load flow = Google::APIClient::InstalledAppFlow.new( :client_id => client_secrets.client_id, :client_secret => client_secrets.client_secret, :scope => [YOUTUBE_READONLY_SCOPE] ) client.authorization = flow.authorize(file_storage) else client.authorization = file_storage.authorization end return client, youtube end def main client, youtube = get_authenticated_service begin # Retrieve the "contentDetails" part of the channel resource for the # authenticated user's channel. channels_response = client.execute!( :api_method => youtube.channels.list, :parameters => { :mine => true, :part => 'contentDetails' } ) channels_response.data.items.each do |channel| # From the API response, extract the playlist ID that identifies the list # of videos uploaded to the authenticated user's channel. uploads_list_id = channel['contentDetails']['relatedPlaylists']['uploads'] # Retrieve the list of videos uploaded to the authenticated user's channel. next_page_token = '' until next_page_token.nil? playlistitems_response = client.execute!( :api_method => youtube.playlist_items.list, :parameters => { :playlistId => uploads_list_id, :part => 'snippet', :maxResults => 50, :pageToken => next_page_token } ) puts "Videos in list #{uploads_list_id}" # Print information about each video. playlistitems_response.data.items.each do |playlist_item| title = playlist_item['snippet']['title'] video_id = playlist_item['snippet']['resourceId']['videoId'] puts "#{title} (#{video_id})" end next_page_token = playlistitems_response.next_page_token end puts end rescue Google::APIClient::TransmissionError => e puts e.result.body end end main
שגיאות
בטבלה הבאה מפורטות הודעות השגיאה שה-API עלול להחזיר בתגובה לקריאה לשיטה הזו. פרטים נוספים זמינים במסמכים בנושא הודעת שגיאה.
סוג השגיאה | פרטי השגיאה | תיאור |
---|---|---|
forbidden (403) |
playlistItemsNotAccessible |
לבקשה אין הרשאה מתאימה לאחזר את הפלייליסט שצוין. |
forbidden (403) |
watchHistoryNotAccessible |
אי אפשר לאחזר נתונים של היסטוריית צפייה באמצעות ה-API. |
forbidden (403) |
watchLaterNotAccessible |
לא ניתן לאחזר באמצעות ה-API פריטים מפלייליסטים 'לצפייה בהמשך'. |
notFound (404) |
playlistNotFound |
לא ניתן למצוא את הפלייליסט שזוהה עם הפרמטר playlistId של הבקשה. |
notFound (404) |
videoNotFound |
לא ניתן למצוא את הסרטון שזוהה עם הפרמטר videoId של הבקשה. |
required (400) |
playlistIdRequired |
בקשת ההרשמה לא מציינת ערך למאפיין playlistId הנדרש. |
invalidValue (400) |
playlistOperationUnsupported |
ממשק ה-API לא תומך באפשרות ליצור רשימה של סרטונים בפלייליסט שצוין. לדוגמה: אי אפשר להוסיף סרטון לפלייליסט 'לצפייה בהמשך'. |
רוצה לנסות?
משתמשים ב-APIs Explorer כדי לקרוא ל-API הזה ולראות את הבקשה והתגובה של ה-API.