Renvoie une collection d'éléments de playlist correspondant aux paramètres de la requête API. Vous pouvez récupérer tous les éléments d'une playlist spécifiée ou un ou plusieurs éléments de playlist à l'aide de leurs identifiants uniques.
Impact sur le quota : un appel à cette méthode coûte 1 unité de quota.
Cas d'utilisation courants
Requête
Requête HTTP
GET https://www.googleapis.com/youtube/v3/playlistItems
Paramètres
Le tableau suivant présente les paramètres compatibles avec cette requête. Tous les paramètres listés sont des paramètres de requête.
| Paramètres | ||
|---|---|---|
| Paramètres obligatoires | ||
part |
stringLe paramètre part spécifie une liste d'une ou plusieurs propriétés de ressource playlistItem séparées par une virgule que la réponse de l'API inclura.Si le paramètre identifie une propriété contenant des propriétés enfants, ces dernières 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 part noms que vous pouvez inclure dans la valeur du paramètre :
|
|
| Filtres (spécifiez exactement l'un des paramètres suivants) | ||
id |
stringLe paramètre id spécifie une liste d'un ou plusieurs ID d'éléments de playlist uniques séparés par une virgule. |
|
playlistId |
stringLe paramètre playlistId spécifie l'identifiant unique de la playlist pour laquelle vous souhaitez récupérer des éléments. Notez que même s'il s'agit d'un paramètre facultatif, chaque requête visant à récupérer 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 integerLe paramètre maxResults spécifie le nombre maximal d'éléments à renvoyer dans l'ensemble de résultats. Les valeurs acceptables sont comprises entre 0 et 50 inclus. La valeur par défaut est 5. |
|
onBehalfOfContentOwner |
stringCe paramètre ne peut être utilisé que dans une requête correctement autorisée. Remarque : Ce paramètre est exclusivement destiné aux partenaires de contenu YouTube. Le paramètre onBehalfOfContentOwner indique que les identifiants d'autorisation de la requête identifient un utilisateur du CMS YouTube qui agit au nom du propriétaire du 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 de nombreuses chaînes YouTube différentes. Il permet aux propriétaires de contenu de s'authentifier une seule fois et d'accéder à toutes leurs données de vidéos et de chaînes, 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 du contenu YouTube spécifié. |
|
pageToken |
stringLe 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 pourraient être récupérées. |
|
videoId |
stringLe paramètre videoId spécifie 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 |
stringIdentifie le type de ressource de l'API. La valeur sera youtube#playlistItemListResponse. |
etag |
etagL'Etag de cette ressource. |
nextPageToken |
stringLe jeton qui peut être utilisé comme valeur du paramètre pageToken pour récupérer la page suivante dans l'ensemble de résultats. |
prevPageToken |
stringLe jeton qui peut être utilisé comme valeur du paramètre pageToken pour récupérer la page précédente dans l'ensemble de résultats. |
pageInfo |
objectL'objet pageInfo encapsule les informations de pagination pour l'ensemble de résultats. |
pageInfo.totalResults |
integerLe nombre total de résultats dans l'ensemble de résultats. |
pageInfo.resultsPerPage |
integerLe nombre de résultats inclus dans la réponse de l'API. |
items[] |
listListe des éléments de playlist correspondant aux critères de la requête. |
Exemples
Remarque : Les exemples de code suivants ne représentent peut-être pas tous les langages de programmation compatibles. Pour obtenir la liste des langages compatibles, consultez la documentation des bibliothèques clientes.
Go
Cet exemple de code appelle la méthodeplaylistItems.list de l'API pour récupérer une liste de
vidéos mises en ligne sur la chaîne associée à la requête. Le code appelle également la channels.list
méthode avec le mine paramètre défini sur true pour 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 une liste de 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 pour 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 une liste de 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 pour 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 à 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 requête n'est pas correctement autorisée à 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 |
La playlist identifiée avec le paramètre playlistId de la requête est introuvable. |
notFound (404) |
videoNotFound |
La vidéo identifiée avec le paramètre videoId de la requête est introuvable. |
required (400) |
playlistIdRequired |
La requête d'abonnement ne spécifie pas de valeur pour la propriété obligatoire playlistId. |
invalidValue (400) |
playlistOperationUnsupported |
L'API n'est pas compatible avec la possibilité de lister des vidéos dans la playlist spécifiée. Par exemple, vous ne pouvez pas lister une vidéo dans votre playlist "À regarder plus tard". |
Essayer
Utilisez l'APIs Explorer pour appeler cette API et afficher la requête et la réponse de l'API.