#低延迟 #twitch #直播 #播放器 #客户端 #HLS #录制

应用程序 twitch-hls-client

观看/录制Twitch流的最小CLI客户端

17个稳定版本

1.3.8 2024年6月26日
1.3.6 2024年3月16日
0.4.3 2023年7月2日

#74 in Web编程

Download history 184/week @ 2024-06-15 179/week @ 2024-06-22 7/week @ 2024-06-29 1/week @ 2024-07-06 284/week @ 2024-07-27 1/week @ 2024-08-03

每月下载量285次

GPL-3.0-or-later

72KB
2K SLoC

twitch-hls-client

twitch-hls-client 是一个用于观看/录制Twitch流的简单命令行客户端

功能

  • 低延迟和正常延迟流回放
  • 使用播放列表代理或turbo/订阅者令牌进行广告拦截
  • 通常比Twitch网页播放器的延迟更低
  • 体积小(最多使用3-4MB内存,具体取决于平台)

使用方法

观看

使用 -p 提供输出流的播放器,一个要观看的频道和一个流质量。

示例

$ twitch-hls-client -p mpv twitchchannel best
Fetching playlist for channel twitchchannel
Low latency streaming
Opening player: mpv -
 (+) Video --vid=1 (h264)
 (+) Audio --aid=1 (aac)
Using hardware decoding (vaapi).
VO: [gpu] 1920x1080 vaapi[nv12]
AO: [pipewire] 48000Hz stereo 2ch floatp
AV: 03:57:23 / 03:57:23 (100%) A-V:  0.000 Cache: 0.7s/482KB

录制

使用 -r 提供输出流的文件路径,一个要观看的频道和一个流质量。

示例

$ twitch-hls-client -r recording.mp4 twitchchannel best
Fetching playlist for channel twitchchannel
Low latency streaming
Recording to: recording.mp4

您还可以同时使用 -p-r
这是最基本的方法,但还有很多其他选项可以在这里查看 这里 或通过传递 --help

广告拦截播放列表代理

这些服务器可以用于使用 -s 拦截广告。它们通过从Twitch不提供广告的国家/地区请求主播放列表来实现

TTV-LOL-PRO v1服务器

  • https://lb-eu.cdn-perfprod.com/live/[channel] (欧洲)
  • https://lb-eu2.cdn-perfprod.com/live/[channel] (欧洲2)
  • https://lb-eu4.cdn-perfprod.com/live/[channel] (欧洲4)
  • https://lb-eu5.cdn-perfprod.com/live/[channel] (欧洲5)
  • https://lb-na.cdn-perfprod.com/live/[channel] (北美)
  • https://lb-as.cdn-perfprod.com/live/[channel] (亚洲)
  • https://lb-sa.cdn-perfprod.com/live/[channel] (南美)

luminous-ttv服务器

  • https://eu.luminous.dev/live/[channel] (欧洲)
  • https://eu2.luminous.dev/live/[channel] (欧洲2)
  • https://as.luminous.dev/live/[channel] (亚洲)

使用您的turbo/订阅者令牌

使用 --auth-token,您可以为获取主播放列表设置OAuth令牌。如果与OAuth令牌关联的Twitch账户订阅了turbo或您正在观看的特定频道,Twitch将不会展示广告。

要查找您的令牌,请在浏览器中打开Twitch网站,并打开浏览器的开发者工具(按F12)。点击 Application(Chrome)或 Storage(Firefox)选项卡,然后在左侧的 Cookies 下找到 https://www.twitch.tv。您的令牌是名为 auth-token 的cookie旁边的字符序列。

配置文件

几乎每个选项都可以通过配置文件设置。以下是一个设置所有可能值的示例配置文件(值是虚构的)

# This is a comment
player=../mpv/mpv
player-args=- --profile=low-latency
record=./recording.mp4
servers=https://eu.luminous.dev/live/[channel],https://lb-eu.cdn-perfprod.com/live/[channel]
debug=true
quiet=true
passthrough=false
print-streams=false
overwrite=false
no-low-latency=false
no-kill=false
force-https=true
force-ipv4=false
client-id=0123456789abcdef
auth-token=0123456789abcdef
never-proxy=channel1,channel2,channel3
codecs=av1,h265,h264
user-agent=Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:122.0) Gecko/20100101 Firefox/122.0
http-retries=3
http-timeout=10
quality=720p

根据您的平台,它将在以下位置查找配置文件(可以用 -c 覆盖)

平台 默认位置
Linux & BSD ${XDG_CONFIG_HOME:-${HOME}/.config}/twitch-hls-client/config
Windows %APPDATA%\twitch-hls-client\config
MacOS ${HOME}/Library/Application Support/twitch-hls-client/config
其他 ./twitch-hls-client/config

安装

GitHub为Linux和Windows构建了独立的二进制文件 在此处

或者,您可以通过安装 Rust工具链 并运行

cargo install --git https://github.com/2bc4/twitch-hls-client.git

NixOS

Flake包
# flake.nix

{
  inputs.twitch-hls-client.url = "github:2bc4/twitch-hls-client";
  # ...

  outputs = {nixpkgs, ...} @ inputs: {
    nixosConfigurations.HOSTNAME = nixpkgs.lib.nixosSystem {
      specialArgs = { inherit inputs; }; # this is the important part
      modules = [
        ./configuration.nix
      ];
    };
  } 
}
# configuration.nix

{inputs, pkgs, ...}: {
  programs.twitch-hls-client = {
    enable = true;
    package = inputs.twitch-hls-client.packages.${pkgs.system}.default;
  };
}
Flake Home-Manager
# twitch-hls-client.nix
{
  programs.twitch-hls-client = {
    enable = true;
    # ...

    # This is a example to use -c config file every time
    systemd.user.services.twitch-hls-client = {
      Unit = {
        Description = "Twitch HLS Client Service";
      };

      Service = {
        Type = "simple";
        ExecStart = "twitch-hls-client -c ${config.xdg.configHome}/twitch-hls-client/config";
        Restart = "always";
      };

      Install = {
        WantedBy = ["default.target"];
      };
    };
  };
}

可选构建时功能

  • colors - 启用终端颜色(默认启用)
  • debug-logging - 启用调试日志支持

使用mpv减少播放器延迟

如果您的互联网连接足够快以处理它,将这些值添加到您的配置中可以将延迟减少约1-2秒

player-args=- --profile=low-latency --no-cache

许可证

根据 GNU通用公共许可证第3版 分发,有关更多信息,请参阅 LICENSE

依赖关系

~8–16MB
~286K SLoC