有没有办法对 Youtube 或 Twitch 上的直播进行截图?

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

我想让我的软件定期(每 5 分钟左右)截取当前正在发生的直播的屏幕截图。我在 Youtube 和 Twitch 上都标记了这个问题,因为这两个网站都在直播,所以适用于其中任何一个的答案都是完美的。

我研究了一些较旧的库,例如 youtube-dl 和 livestreamer,但它们是 CLI,下载文件然后需要使用视频播放器读取。

javascript youtube screenshot twitch
2个回答
3
投票

使用 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秒。


0
投票

对于 Twitch,您可以使用获取流 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

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