目前我正在尝试检索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秒。