Youtube API 3 获取最新视频
Youtube API 3 get latest videos
所以我想从用户上传的视频中抓取 10 个最新视频。
现在唯一的问题是 playlistitems 请求中唯一可见的日期是 publishedAt,这是视频上传的日期
- 不是制作日期 public,这有很大的不同。
我注意到我可以通过 video 请求获取正确的日期,但它似乎不是最好的选择。
让我给你看一个我正在处理的例子。
让我们走 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 - This Summer's Gonna Hurt Like A ... (Explicit)",
"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
在这里我们可以看到更详细的视图,日期是……不同的!
"publishedAt": "2015-06-01T20:00:01.000Z",
这意味着播放列表中的 publishedAt 日期实际上是上传日期 - 而不是制作视频的时间 public。
在我们的 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 ) {
(...)
});
}
);
我相信您可以使用 /search 端点。如果您想从用户上传的视频中抓取 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}
所以我想从用户上传的视频中抓取 10 个最新视频。
现在唯一的问题是 playlistitems 请求中唯一可见的日期是 publishedAt,这是视频上传的日期 - 不是制作日期 public,这有很大的不同。
我注意到我可以通过 video 请求获取正确的日期,但它似乎不是最好的选择。
让我给你看一个我正在处理的例子。
让我们走 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 - This Summer's Gonna Hurt Like A ... (Explicit)", "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
在这里我们可以看到更详细的视图,日期是……不同的!
"publishedAt": "2015-06-01T20:00:01.000Z",
这意味着播放列表中的 publishedAt 日期实际上是上传日期 - 而不是制作视频的时间 public。
在我们的 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 ) {
(...)
});
}
);
我相信您可以使用 /search 端点。如果您想从用户上传的视频中抓取 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}