javascript 有没有办法在Youtube或Twitch上截取直播的截图?

00jrzges  于 2023-10-14  发布在  Java
关注(0)|答案(2)|浏览(114)

我想让我的软件定期(每5分钟左右)采取的实时流,目前正在发生的截图。我在Youtube和Twitch上都标记了这个问题,因为这两个网站上都有这个问题,所以一个适合这两个网站的答案是完美的。
我已经研究了一些旧的库,如youtube-dl和livestreamer,但它们是CLI,下载一个文件,然后需要用视频播放器读取。

ffscu2ro

ffscu2ro1#

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

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

yt-dlp -g VIDEO_ID | head -n 1将从Google服务器检索实际视频URL。
据我用ydYDqZQpim8测试,检索到的帧比直播上显示的时间晚不到2秒。

oxiaedzo

oxiaedzo2#

对于Twitch,您可以使用Get Streams API获取流的当前缩略图。
Twitch已经为你提供了截图,所以你可以只使用缩略图。
因此,对Get Streams的响应示例

{
  "data": [
    {
      "id": "41375541868",
      "user_id": "459331509",
      "user_login": "auronplay",
      "user_name": "auronplay",
      "game_id": "494131",
      "game_name": "Little Nightmares",
      "type": "live",
      "title": "hablamos y le damos a Little Nightmares 1",
      "viewer_count": 78365,
      "started_at": "2021-03-10T15:04:21Z",
      "language": "es",
      "thumbnail_url": "https://static-cdn.jtvnw.net/previews-ttv/live_user_auronplay-{width}x{height}.jpg",
      "tag_ids": [
        "d4bb9c58-2141-4881-bcdc-3fe0505457d1"
      ],
      "is_mature": false
    },

只要抓住thumbnail_url,并在最后抛出一个缓存破坏者,你就有了一个图像。不需要FFMPEG或yt-dl schnanigans

相关问题