17个稳定版本
1.3.8 | 2024年6月26日 |
---|---|
1.3.6 | 2024年3月16日 |
0.4.3 |
|
#74 in Web编程
每月下载量285次
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