web-dev-qa-db-fra.com

API YouTube v3 - Liste des vidéos téléchargées

Comment répertorier les vidéos téléchargées de l'utilisateur dans l'API V3?

33
efic1

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.
});
31
Greg Schechter

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:

  1. 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".

  2. 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

41
Chad Befus