Renvoie une collection d'éléments de playlist correspondant aux paramètres de requête de l'API. Vous pouvez récupérer tous les éléments d'une playlist spécifique, ou un ou plusieurs éléments d'une playlist en fonction de leur ID unique.
Impact sur les quotas:un appel à cette méthode entraîne un coût du quota de 1 unité.
Cas d'utilisation courants
Requête
Requête HTTP
GET https://www.googleapis.com/youtube/v3/playlistItems
Paramètres
Le tableau suivant répertorie les paramètres compatibles avec cette requête. Tous les paramètres répertoriés sont des paramètres de requête.
Paramètres | ||
---|---|---|
Paramètres obligatoires | ||
part |
string Le paramètre part spécifie une liste d'une ou de plusieurs propriétés de ressources playlistItem séparées par une virgule qui seront incluses dans la réponse de l'API.Si le paramètre identifie une propriété contenant des propriétés enfants, celles-ci seront incluses dans la réponse. Par exemple, dans une ressource playlistItem , la propriété snippet contient de nombreux champs, y compris les propriétés title , description , position et resourceId . Par conséquent, si vous définissez part=snippet , la réponse de l'API contiendra toutes ces propriétés.La liste suivante contient les noms part que vous pouvez inclure dans la valeur du paramètre:
|
|
Filtres (spécifiez exactement un des paramètres suivants) | ||
id |
string Le paramètre id spécifie une liste d'ID uniques d'élément de playlist, séparés par une virgule. |
|
playlistId |
string Le paramètre playlistId spécifie l'ID unique de la playlist pour laquelle vous souhaitez récupérer les éléments de la playlist. Bien qu'il s'agisse d'un paramètre facultatif, chaque demande de récupération des éléments de playlist doit spécifier une valeur pour le paramètre id ou le paramètre playlistId . |
|
Paramètres facultatifs | ||
maxResults |
unsigned integer Le paramètre maxResults spécifie le nombre maximal d'éléments à renvoyer dans l'ensemble de résultats. Les valeurs autorisées vont de 0 à 50 , inclus. La valeur par défaut est 5 . |
|
onBehalfOfContentOwner |
string Ce paramètre ne peut être utilisé que dans une demande autorisée correctement. Remarque:Ce paramètre est destiné exclusivement aux partenaires de contenu YouTube. Le paramètre onBehalfOfContentOwner indique que les identifiants d'autorisation de la demande identifient un utilisateur du CMS YouTube qui agit au nom du propriétaire de contenu spécifié dans la valeur du paramètre. Ce paramètre est destiné aux partenaires de contenu YouTube qui possèdent et gèrent un grand nombre de chaînes YouTube. Il permet aux propriétaires de contenu de s'authentifier une seule fois et d'accéder à toutes les données de leurs vidéos et de leur chaîne, sans avoir à fournir d'identifiants d'authentification pour chaque chaîne. Le compte CMS avec lequel l'utilisateur s'authentifie doit être associé au propriétaire de contenu YouTube spécifié. |
|
pageToken |
string Le paramètre pageToken identifie une page spécifique de l'ensemble de résultats à renvoyer. Dans une réponse de l'API, les propriétés nextPageToken et prevPageToken identifient d'autres pages qui peuvent être récupérées. |
|
videoId |
string Le paramètre videoId indique que la requête ne doit renvoyer que les éléments de playlist contenant la vidéo spécifiée. |
Corps de la requête
Ne fournissez pas de corps de requête lorsque vous appelez cette méthode.
Réponse
Si la requête aboutit, cette méthode renvoie un corps de réponse présentant la structure suivante :
{ "kind": "youtube#playlistItemListResponse", "etag": etag, "nextPageToken": string, "prevPageToken": string, "pageInfo": { "totalResults": integer, "resultsPerPage": integer }, "items": [ playlistItem Resource ] }
Propriétés
Le tableau suivant définit les propriétés qui apparaissent dans cette ressource:
Propriétés | |
---|---|
kind |
string Identifie le type de ressource d'API. La valeur est youtube#playlistItemListResponse . |
etag |
etag Etag de cette ressource. |
nextPageToken |
string Jeton pouvant être utilisé comme valeur du paramètre pageToken pour récupérer la page suivante dans l'ensemble de résultats. |
prevPageToken |
string Jeton pouvant être utilisé comme valeur du paramètre pageToken pour récupérer la page précédente dans l'ensemble de résultats. |
pageInfo |
object L'objet pageInfo encapsule les informations de pagination pour l'ensemble de résultats. |
pageInfo.totalResults |
integer Nombre total de résultats dans l'ensemble de résultats. |
pageInfo.resultsPerPage |
integer Nombre de résultats inclus dans la réponse de l'API. |
items[] |
list Liste des éléments de playlist correspondant aux critères de la demande. |
Exemples
Remarque:Les exemples de code suivants peuvent ne pas représenter tous les langages de programmation compatibles. Consultez la documentation sur les bibliothèques clientes pour obtenir la liste des langages compatibles.
Go
Cet exemple de code appelle la méthodeplaylistItems.list
de l'API pour récupérer la liste des vidéos mises en ligne sur la chaîne associée à la requête. Le code appelle également la méthode channels.list
avec le paramètre mine
défini sur true
afin de récupérer l'ID de playlist qui identifie les vidéos mises en ligne sur la chaîne.
Cet exemple utilise la bibliothèque cliente 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
L'exemple de code suivant appelle la méthodeplaylistItems.list
de l'API pour récupérer la liste des vidéos mises en ligne sur la chaîne associée à la requête. Le code appelle également la méthode channels.list
avec le paramètre mine
défini sur true
afin de récupérer l'ID de playlist qui identifie les vidéos mises en ligne sur la chaîne.
Cet exemple utilise la bibliothèque cliente.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
Cet exemple appelle la méthodeplaylistItems.list
de l'API pour récupérer la liste des vidéos mises en ligne sur la chaîne associée à la requête. Le code appelle également la méthode channels.list
avec le paramètre mine
défini sur true
afin de récupérer l'ID de playlist qui identifie les vidéos mises en ligne sur la chaîne.
Cet exemple utilise la bibliothèque cliente 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
Erreurs
Le tableau suivant identifie les messages d'erreur que l'API peut renvoyer en réponse à un appel de cette méthode. Pour en savoir plus, consultez la documentation sur les messages d'erreur.
Type d'erreur | Détails de l'erreur | Description |
---|---|---|
forbidden (403) |
playlistItemsNotAccessible |
La demande n'est pas autorisée pour récupérer la playlist spécifiée. |
forbidden (403) |
watchHistoryNotAccessible |
Les données de l'historique des vidéos regardées ne peuvent pas être récupérées via l'API. |
forbidden (403) |
watchLaterNotAccessible |
Les éléments des playlists "À regarder plus tard" ne peuvent pas être récupérés via l'API. |
notFound (404) |
playlistNotFound |
Impossible de trouver la playlist identifiée à l'aide du paramètre playlistId de la requête. |
notFound (404) |
videoNotFound |
Impossible de trouver la vidéo identifiée par le paramètre videoId de la requête. |
required (400) |
playlistIdRequired |
La demande d'abonnement ne spécifie pas de valeur pour la propriété playlistId requise. |
invalidValue (400) |
playlistOperationUnsupported |
L'API ne permet pas de lister des vidéos dans la playlist spécifiée. Par exemple, vous ne pouvez pas ajouter une vidéo à votre playlist "À regarder plus tard". |
Essayer
Utilisez APIs Explorer pour appeler cette API et afficher la requête et la réponse de l'API.