Comment répertorier les vidéos téléchargées de l'utilisateur dans l'API V3?
La première étape consiste à obtenir l'ID de canal pour cet utilisateur. Nous pouvons le faire sur demande auprès du service Channels
. Voici un exemple JS.
var request = gapi.client.youtube.channels.list({
// mine: true indicates that we want to retrieve the channel for the authenticated user.
mine: true,
part: 'contentDetails'
});
request.execute(function(response) {
playlistId = response.result.channels[0].contentDetails.uploads;
});
Une fois que nous avons obtenu l'ID de la liste de lecture, nous pouvons l'utiliser pour rechercher la liste des vidéos téléchargées à partir du service PlaylistItems
.
var request = gapi.client.youtube.playlistItems.list({
playlistId: playlistId,
part: 'snippet',
});
request.execute(function(response) {
// Go through response.result.playlistItems to view list of uploaded videos.
});
Si vous utilisez le client, la réponse de Greg est correcte. Pour faire la même chose avec les requêtes de base, vous effectuez les 2 requêtes suivantes:
OBTENIR https://www.googleapis.com/youtube/v3/channels
avec paramètres:
part=contentDetails
mine=true
key={YOUR_API_KEY}
et en-tête:
Authorization: Bearer {Your access token}
De cela, vous obtiendrez une réponse JSON comme ceci:
{
"kind": "youtube#channelListResponse",
"etag": "\"some-string\"",
"pageInfo": {
"totalResults": 1,
"resultsPerPage": 1
},
"items": [
{
"id": "some-id",
"kind": "youtube#channel",
"etag": "\"another-string\"",
"contentDetails": {
"relatedPlaylists": {
"likes": "channel-id-for-your-likes",
"favorites": "channel-id-for-your-favorites",
"uploads": "channel-id-for-your-uploads",
"watchHistory": "channel-id-for-your-watch-history",
"watchLater": "channel-id-for-your-watch-later"
}
}
}
]
}
À partir de cela, vous voulez analyser l'ID de canal "uploads".
OBTENIR https://www.googleapis.com/youtube/v3/playlistItems
avec paramètres:
part=snippet
maxResults=50
playlistId={YOUR_UPLOAD_PLAYLIST_ID}
key={YOUR_API_KEY}
et en-têtes:
Authorization: Bearer {YOUR_TOKEN}
De cela, vous recevrez une réponse JSON comme celle-ci:
{
"kind": "youtube#playlistItemListResponse",
"etag": "\"some-string\"",
"pageInfo": {
"totalResults": 1,
"resultsPerPage": 50
},
"items": [
{
"id": "some-id",
"kind": "youtube#playlistItem",
"etag": "\"another-string\"",
"snippet": {
"publishedAt": "some-date",
"channelId": "the-channel-id",
"title": "video-title",
"thumbnails": {
"default": {
"url": "thumbnail-address"
},
"medium": {
"url": "thumbnail-address"
},
"high": {
"url": "thumbnail-address"
}
},
"playlistId": "upload-playlist-id",
"position": 0,
"resourceId": {
"kind": "youtube#video",
"videoId": "the-videos-id"
}
}
}
]
}
Avec cette méthode, vous devriez pouvoir obtenir les informations en utilisant n'importe quelle langue ou même simplement en boucle. Si vous voulez plus que les 50 premiers résultats, vous devrez effectuer plusieurs requêtes à l'aide de la deuxième demande et transmettre les demandes de page. Plus d'informations à ce sujet sur: http://developers.google.com/youtube/v3/docs/playlistItems/list