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



目前我正在尝试检索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请求,因为我认为这正是我需要的:正在进行的直播的最新框架。

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

<标题>

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

使用yt-dlp和ffmpeg,您可以通过执行以下命令获得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秒。

相关内容

  • 没有找到相关文章