【问题标题】:Listing my YouTube Channels Videos *without* ended live stream and without OAuth列出我的 YouTube 频道视频*没有*结束的直播和没有 OAuth
【发布时间】: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


【解决方案1】:

我没有发现任何问题。
我认为您的问题是您无法看到新上传的内容。
如果是这样,那么可能仍在为网络格式化的系统中。
因为文件比较大,所以需要一段时间。

在此回复时,您有 4 个视频。 3 很长,1 是一个名为“PlanMixPlay - Teaser 1”的介绍/演示。

如果这是您的要求,要从代码中的结果中删除此视频,只需在您的 for 循环中添加广告即可。

if($video_ID == 'IyN5LuvvQlw'){
    break;
 }

【讨论】:

  • YouTube 似乎最终会从 API 返回的数据中删除挥之不去的“直播”列表。所以到目前为止 - API 只返回正确的 4 个视频。不幸的是,我希望它会在我下一个周日结束直播时回来。因此,尽管我很感激您的努力,但您的回答并不能解决我的问题。预告片有一个固定且永久的视频 ID - 您的建议将删除它 - 但我的问题不在于预告片,而在于逗留的直播 ID,它每次都是新的和未知的,消除了过滤它的选项通过其 ID。
  • 在“snipet”属性下有一个“liveBroadcastContent”属性可能会有所帮助。但我从来没有用过,也没有看过直播。
  • 认为我看了这个没有任何成功,但我会在不久的将来再试一次。我的理解是,如果没有答案被投票,这个问题的赏金就会消失。尽管我的问题仍未解决,但只有 4 小时的时间,而且您确实付出了努力来寻找解决方案 - 所以我会奖励给您。
  • @Gazoo 。谢谢,虽然我很抱歉我没有更多的帮助。也许您需要分阶段查看信息,看看是否有帮助。可能是响应中的某种“标志”,仅存在很短的时间。
猜你喜欢
  • 2019-04-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-04-05
  • 2018-08-22
  • 1970-01-01
  • 2019-10-22
相关资源
最近更新 更多