从 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的主要内容,如果未能解决你的问题,请参考以下文章

Youtube api有点延迟

获取 YouTube 直播活动的当前持续时间

Youtube API v3 - 获取“Live Now” rtmp 和 streamkey

如何从 YouTube Analytics API 获取属于当前用户的每个视频的指标?

FFMPEG音频问题Youtube Live

Youtube 数据 API : 获取媒体流和播放 (JAVA)