如何从 YouTube 上正在进行的直播中查找最新帧?

问题描述 投票:0回答:1

目前我正在尝试检索 YouTube 上正在进行的直播的最新帧,但不知道如何执行此操作。

我自己做的最好的事情就是向

https://www.googleapis.com/youtube/v3/search?part=snippet&channelId=${channelId}&eventType=live&type=video&key=${apiKey}
发出 GET 请求,但似乎没有返回任何对我有用的东西。

使用浏览器的开发者工具,我注意到 YouTube 向

https://rr3---sn-5hnednss.googlevideo.com/videoplayback
发出了 GET 请求,以获得我认为正是我需要的内容:正在进行的直播的最新帧。

问题是,我不知道如何使用该端点,并且似乎无法在网上找到有关它的文档。

有人知道从这里去哪里吗?

api youtube stream live
1个回答
1
投票

使用 yt-dlpffmpeg,您可以通过执行以下命令来获取 YouTube 视频的最后一帧:

ffmpeg -sseof -3 -i "$(yt-dlp -g VIDEO_ID | head -n 1)" -update 1 last.jpg

这将查找输入的最后三秒并输出所有帧。但由于设置了

-update 1
,每一帧都会被覆盖到同一个文件中,只留下最后一帧。

来源

yt-dlp -g VIDEO_ID | head -n 1
将从 Google 服务器检索实际视频 URL。

您可以使用这个已经播放的 YouTube 直播视频 ID RGBK6aHC9Yg 进行测试,因为最后一帧是有趣,因为与前几秒不同的是,它是黑色的,并带有一些文本。

对于正在进行的直播,您可以通过执行以下命令检索第一个接收帧:

ffmpeg -i "$(yt-dlp -g VIDEO_ID | head -n 1)" -vframes 1 last.jpg

据我使用vKVBgsOj2pc测试,检索到的帧比直播上显示的日期晚了10秒。

© www.soinside.com 2019 - 2024. All rights reserved.