【发布时间】:2017-07-28 18:12:57
【问题描述】:
我有一个 tiny insignificant YouTube 频道,我已经开始直播了。流结束后,我会得到一个可爱的视频(我有 3 个),我想从网站链接到该视频。我不知道如何使用 YouTube 的 v3 API 和简单的基于密钥的访问来获取所有已完成视频的列表(没有结束的直播)。
一个similar question has been posed here before,但我有很多要详细说明我的尝试,希望能引发其他人的想法。因此,我想我不妨提出一个新问题。这是我尝试过的:
尝试 1
首先,我尝试搜索与我的频道相关的所有内容,如下所示:
https://www.googleapis.com/youtube/v3/search?part=snippet&channelId=UC-uPZ7GJiC76pWl-9yyzUng&key={YOUR_API_KEY}
这只会返回频道上当前 3 个视频中的 2 个,尽管 totalResults 字段奇怪的是 5?!将 type 字段设置为 video 会将这个数字减少到 4,但不会增加返回的项目。
尝试 2
接下来,我发现实际上列出频道上传项目显然是通过此请求的方式:
https://www.googleapis.com/youtube/v3/playlistItems?part=snippet&playlistId=UU-uPZ7GJiC76pWl-9yyzUng&key={YOUR_API_KEY}
这很奇怪,返回了 4 个结果。经过进一步检查,其中一个结果似乎是指向已结束直播页面的链接,但返回数据中的 nothing (据我所知)允许我将其与结果视频。我提供了returned Json on a pastebin。到目前为止,我唯一的坏主意是publishedAt 字段,它似乎在流结束时就结束了,生成的视频当然会在稍后发布。但这种依赖方法过于脆弱,迫使我反复检查视频以确定哪个视频可能与直播混淆。
我也找不到任何 API 请求,它专门返回指向已结束直播的链接,以便我将其过滤掉。
旁注
如果我可以使用 OAuth,使用以下查询似乎可以满足我的需要:
https://www.googleapis.com/youtube/v3/search?part=snippet&forMine=true&type=video&key={YOUR_API_KEY}
仅限 3 个视频。但是,当仅通过简单的 API 密钥访问 YouTube API 时,forMine 标签是不可用的。
我对任何想法都持开放态度 - 在此先感谢!
【问题讨论】:
-
YouTube 似乎最终会从返回的数据中删除挥之不去的直播。所以不幸的是,一旦我结束直播,进行 API 调用目前不会出现我面临的问题。 :(
标签: youtube-data-api