从 Youtube Live API 中获取当前流 URL

Posted

技术标签:

【中文标题】从 Youtube Live API 中获取当前流 URL【英文标题】:Get current stream URL out of Youtube Live API 【发布时间】:2015-09-21 12:57:23 【问题描述】:

目前有什么方法可以从 Youtube Live API 中获取直播 URL?我可以获取 id,但似乎无法将其更改为 URL。

没关系,但我使用的是 Python youtube 客户端。

【问题讨论】:

您是如何获得 ID 的?我想你可以通过将 ID 附加到“youtube.com/watch?v=”来获取 URL,这不起作用吗?另外,你打算用这个 URL 做什么? 我试过了,根本没用。我正在使用官方的 youtube 库。这段代码几乎是逐字逐句:[link]developers.google.com/youtube/v3/live/docs/liveBroadcasts/list 你得到了什么ID? hWbNrHQHvKK6paclLp7WYw1424300727241016 【参考方案1】:

[已编辑] 我相信您得到的是 stream ID 而不是 broadcast ID。查看sample code,了解如何获取您频道的broadcast ID

...

print "%s (%s)" % (broadcast["sn-p"]["title"], broadcast["id"])

...

print "%s (%s)" % (stream["sn-p"]["title"], stream["id"])

虽然两者都获得id 值,但它们是两个不同的对象,因此它们应该为您提供两个不同的 ID。将broadcast ID 附加到我在 cmets 中提到的 URL 将为您提供流的 URL。

更新:如果您通过 YouTube 频道创建了直播活动,您只需使用 liveBroadcasts 列表即可获取 id,这也是您可以使用的视频 ID获取网址。如果您通过 insert() 创建了直播,则还必须使用 insert() 创建直播并使用 bind() 将其绑定到直播,然后才能使用liveBroadcasts 列表获取 ID。

【讨论】:

更多直播和直播的区别,请查看here。 我链接到了错误的文档,我实际上是在使用直播API,但是id仍然无法插入url并工作。 我使用了 liveBroadcasts.list 的 API 资源管理器,并且能够成功获取我的流 ID。我验证了我的帐户,指定snippet,id,contentDetails 为“part”,true 为“mine”。然后,我可以将该 ID 附加到“youtube.com/watch?v=" 以获取我的流在直播和完成时的视频 URL。 我认为你得到的ID是流ID,而不是我之前提到的广播ID。您是否使用 insert() 创建了 liveStream?如果是这样,您接下来应该通过 insert() 创建一个 liveBroadcast,然后将它绑定到您的 liveStream,这样您就可以调用 liveBroadcast.list 来获取 ID,该 ID 与视频 ID 相同。这可用于获取流的 URL。 嘿,谢谢伙计,我把你在脑海中说的话颠倒了,但现在我已经把它理顺了,它完全有效!谢谢!

以上是关于从 Youtube Live API 中获取当前流 URL的主要内容,如果未能解决你的问题,请参考以下文章