Youtube API 3获取最新视频

Pro*_*oqb 11 youtube-api youtube-data-api

所以我试图从用户上传中获取10个最新视频.

现在唯一的问题是播放列表请求中可见的唯一日期是已发布的,这是视频上传的日期 - 而不是公开日期,这会产生巨大的差异.

我注意到我可以通过视频请求获取正确的日期,但它似乎并不是最好的地方.

让我告诉你一个我正在处理的事情的例子.

我们来看看Maroon5频道吧.

forUserName: Maroon5VEVO

获取https://www.googleapis.com/youtube/v3/channels?part=contentDetails&forUsername=Maroon5VEVO&key= {YOUR_API_KEY}

https://developers.google.com/youtube/v3/docs/channels/list#try-it

这是我们抓住的地方:

uploadsId: UUN1hnUccO4FD5WfM7ithXaw

所以我们可以查询:

获取https://www.googleapis.com/youtube/v3/playlistItems?part=snippet&playlistId=UUN1hnUccO4FD5WfM7ithXaw&maxResults=50&key= {YOUR_API_KEY}

https://developers.google.com/youtube/v3/docs/playlistItems/list#try-it

然后我们可以看看一些视频.

让我们抓住最新的一个.对我来说就是这个:

"title":"Maroon 5 - 今年夏天会像A ......(明确的)一样受伤","videoId":"Wa64gOwuIyE"

最重要的是:

"publishedAt": "2015-06-01T17:41:58.000Z",

现在,让我们通过运行此查询来获取此视频的更多详细信息:

获取https://www.googleapis.com/youtube/v3/videos?part=snippet&id=Wa64gOwuIyE&key= {YOUR_API_KEY}

https://developers.google.com/youtube/v3/docs/videos/list#try-it

在这里,我们得到更详细的视图,日期不同!

"已发表": "2015-06-01T20:00:01.000Z",

这意味着播放列表中已发布的日期实际上是上传日期 - 而不是视频公开时的日期.

在我们的10个最新项目列表中,我们想要最新发布的视频,而不是最新上传的视频.

如果您知道如何处理它,请分享.

这是我现在的片段(使用错误的已发布日期)

 $.get(
        "https://www.googleapis.com/youtube/v3/playlistItems",{
        part : 'snippet',
        maxResults : 10,
        playlistId : UPLOADS_PID,
        key: YOUR_API_KEY},
        function(data) {

            $.each( data.items, function(i, item ) {                

                (...)

            });
        }
    );
Run Code Online (Sandbox Code Playgroud)

Sau*_*nam 25

我相信你可以使用/搜索端点.如果您想从用户上传中抓取10个最新视频,则可以使用频道ID而不是播放列表ID.

请求:

GET https://www.googleapis.com/youtube/v3/search?part=snippet&channelId={CHANNEL_ID}&maxResults=10&order=date&type=video&key={YOUR_API_KEY}
Run Code Online (Sandbox Code Playgroud)

  • 它可能会占用超过 100 个配额,如果您担心配额;)请尝试视频方法,它需要 1 (4认同)
  • 遗憾的是,使用搜索并不总是返回所有结果。 (2认同)