Youtube api v3获取用户视频列表

vie*_*one 62 youtube youtube-api youtube-data-api

使用Youtube api v2,可以轻松获取视频.只需发送如下查询:

http://gdata.youtube.com/feeds/mobile/videos?max-results=5&alt=rss&orderby=published&author=OneDirectionVEVO

Youtube api v2还有一个用于构建查询的交互式演示页面:http: //gdata.youtube.com/demo/index.html

有了Youtube api v3,我不知道相应的方式.请指教我用api v3的方式.

谢谢!

Vin*_*nto 120

信道#列表方法将返回一个带有JSON关于信道的某些信息,包括为"上传"播放列表中的播放列表ID:

https://www.googleapis.com/youtube/v3/channels?part=contentDetails&forUsername=OneDirectionVEVO&key={YOUR_API_KEY}
Run Code Online (Sandbox Code Playgroud)

使用播放列表ID,您可以使用playlistItems #list方法获取视频:

https://www.googleapis.com/youtube/v3/playlistItems?part=snippet&playlistId=UUbW18JZRgko_mOGm5er8Yzg&key={YOUR_API_KEY}
Run Code Online (Sandbox Code Playgroud)

您可以在文档页面的末尾测试这些内容.

  • 我找到了.从https://developers.google.com/youtube/v3/docs/search/list,我可以使用查询https://www.googleapis.com/youtube/v3/search?part=snippet&channelId=UCbW18JZRgko_mOGm5er8Yzg&order=date&type=视频&videoSyndicated =真关键= {} YOUR_API_KEY (8认同)
  • 我对YOUR_API_KEY感到困惑 - 在玩完之后我得到了 - https://console.developers.google.com - >您的API项目 - > API&auth - >凭据 - >公共API访问 - >服务器密钥 (5认同)
  • 哇!两个json打电话看我自己的视频? (4认同)
  • @orbitory显然排序是一项缺失的功能,请参阅此问题https://code.google.com/p/gdata-issues/issues/detail?id=6869以及此处可能的"解决方案":http://stackoverflow.com /问题/ 22893328 /分拣的YouTube-API的结果 - 从 - 播放列表 (3认同)

Bra*_*rad 22

这应该做到这一点.此代码只获取并输出标题,但您可以获得所需的任何详细信息

// Get Uploads Playlist
$.get(
   "https://www.googleapis.com/youtube/v3/channels",{
   part : 'contentDetails', 
   forUsername : 'USER_CHANNEL_NAME',
   key: 'YOUR_API_KEY'},
   function(data) {
      $.each( data.items, function( i, item ) {
          pid = item.contentDetails.relatedPlaylists.uploads;
          getVids(pid);
      });
  }
);

//Get Videos
function getVids(pid){
    $.get(
        "https://www.googleapis.com/youtube/v3/playlistItems",{
        part : 'snippet', 
        maxResults : 20,
        playlistId : pid,
        key: 'YOUR_API_KEY'},
        function(data) {
            var results;
            $.each( data.items, function( i, item ) {
                results = '<li>'+ item.snippet.title +'</li>';
                $('#results').append(results);
            });
        }
    );
}


<!--In your HTML -->
<ul id="results"></ul>
Run Code Online (Sandbox Code Playgroud)


App*_*l3s 5

如果考虑配额成本,遵循这个简单的算法可能会有所帮助。

首先从https://www.youtube.com/feeds/videos.xml?channel_id=获取数据......这是一个简单的 XML 提要,它会给你视频 ID,但你不能指定更多的“部分”(统计, 等等)。

使用该列表中的视频 ID,对 /videos API 端点进行查询,该端点允许使用逗号分隔的视频 ID 列表,该列表应仅产生 1 个配额成本,加上 0-2 的任何其他部分参数。正如@chrismcp 指出的那样,使用 /search 端点更简单,但配额成本为 100,可以快速累加。

当您进行第二次调用时,这里需要考虑资源(cpu、内存等),但我相信在许多情况下这可能是一种有用的方法。