简体中文
配置层级
全局设置用于默认值,平台设置用于某个平台,模板用于一组主播,主播覆盖用于个别例外。
继承顺序
配置按以下顺序应用,优先级从低到高:
- 全局
- 平台
- 模板(已分配时)
- 主播
例如,全局输出格式为 flv,模板设为 mp4,使用该模板的主播就录制为 MP4。某个主播显式设为 flv 时,则使用 FLV。删除该覆盖后重新继承模板。
创建并使用模板
- 创建包含一组主播共用设置的模板。
- 创建或编辑主播时,为其分配模板。
- 除非该主播需要不同的值,否则保留字段继承。
- 修改模板即可更新这一组主播;正在录制的会话请参考下方生效规则。
模板也可为管道、凭据选择和平台选项(提取器设置)提供平台专属覆盖。对该平台的主播,这些覆盖优先于模板自身的管道,并合并到其平台选项中。模板内无法按平台覆盖其他设置。
需要注意的合并规则
- 已提供的标量值覆盖下层,省略的值继承下层。
- 管道覆盖替换整个管道,不逐步骤合并。
- 空的画质、格式和 CDN 偏好列表保留下层偏好;CDN 黑名单合并。
- 平台选项逐键合并并忽略
null覆盖;引擎覆盖使用 JSON Merge Patch,null会删除相应键。
支持的 JSON 字段、凭据来源选择和 API 示例见覆盖配置参考。时间安排及夏令时规则见录制时间安排。
修改何时影响正在进行的录制
通过界面或 API 修改设置不需要重启服务,但部分设置只在下一次下载时生效。
正在进行的下载会采纳:
min_segment_size_bytes,以及分段管道和会话完成管道的定义——每个分段结束时都会重新从 合并配置读取。在配置中清空某个管道并不会让已经在跑的会话也清空它:这次重读只会替换 「有值」的管道。- 保存全局设置后的
max_concurrent_downloads、排队刷新阈值、GPU 探测间隔和管道 工作线程并发数。 - 新的监控间隔,应用于每个在线主播——但仅当
streamer_check_delay_ms、offline_check_delay_ms或offline_check_count确实发生了变化。已经到达检查时间的主播 会先完成那次检查,之后才应用新的间隔。
它不会采纳 output_folder、output_filename_template、output_file_format、 max_download_duration_secs 和 max_part_size_bytes。这些值在下载开始时解析一次,此后 在整个下载期间保持不变,分段轮换也不例外——轮换出的分段沿用开始时确定的基础文件名。修改 它们只对该主播的下一次下载生效,而不是当前下载的下一个分段。
已经排队的管道任务会继续沿用创建时携带的 DAG 定义。
此节内容已移至配置层级.
此节内容已移至配置解析.
此节内容已移至覆盖配置参考.
此节内容已移至覆盖配置参考.
此节内容已移至覆盖配置参考.
此节内容已移至覆盖配置参考.
此节内容已移至覆盖配置参考.
此节内容已移至覆盖配置参考.
此节内容已移至覆盖配置参考.
此节内容已移至覆盖配置参考.
此节内容已移至覆盖配置参考.
此节内容已移至覆盖配置参考.
此节内容已移至覆盖配置参考.
此节内容已移至覆盖配置参考.
此节内容已移至覆盖配置参考.
此节内容已移至配置层级.
此节内容已移至录制时间安排.
账号配置与选择
每个凭据配置保存一个平台上一个账号的完整 Cookie,以及平台支持的刷新或登录材料。不同账号应分别保存,不能拼接 Cookie。凭据配置归属于所在平台,并在平台页面中管理。平台、模板中该平台的覆盖以及该平台上的任意主播,都可以从该平台的凭据中选择;选择不能引用其他平台的凭据。Cookie、令牌和账号登录信息不再保存在配置本身中。
| 选择方式 | 行为 |
|---|---|
| 继承(或未设置) | 继续查找下层;在平台层表示不使用账号。 |
| 无凭据 | 停止继承,不使用已保存的账号凭据或自动重新登录。 |
| 固定 | 只使用指定账号,刷新和重新登录都写回该账号。 |
| 优先池(默认) | 从保存顺序中第一个可用账号开始,其余账号作为备用。 |
| 轮询池 | 按保存顺序,把独立检查分配给可用账号。各账号通过不同代理连接时最有用。 |
解析依次检查主播、模板中精确平台名对应的覆盖、平台,并使用第一个非继承的选择。账号池整体替换继承池,不合并列表。全局配置不保存账号。账号池可启用故障切换,总尝试次数为 1 到 10;禁用和无效的账号会跳过。推荐使用优先池:固定一个主账号并自动切换备用账号,比把每次检查分散到所有账号更不易触发平台的风控检测。固定模式不会切换账号,凭据不可用时不会隐式改用匿名访问。
一次录制的提取、下载启动和弹幕采集使用同一账号,普通轮询不会改变正在录制的账号。恢复过程切换账号后,弹幕采集也会改用新账号重新连接。账号或材料变化后,下一次尝试必须重新提取媒体;修改策略或禁用凭据本身不会立刻停止正在运行的引擎。需要立即停止时使用现有停止/禁用主播操作。凭据耗尽会退避重试,不计入通用主播错误,也不会因此进入临时禁用。正在等待凭据的录制会在账号被修改、重新启用或重新登录,或账号选择变更后立即重新开始,无需等到下一次检查。
没有可用账号时,账号状态会说明原因:所有可用账号都需要重新登录,或所选账号均已停用。
最近一次检查找不到可用账号的主播,其卡片会显示 账号需要登录 或 账号已停用,而不是 离线,并附有前往该平台账号的链接;正在录制的主播仍显示 直播。下一次用到账号的检查完成后,该提示即消失。顶部栏还会统计需要重新登录的已启用账号,以及被平台拒绝后自动刷新已连续失败三次的已启用账号,并按平台列出。已停用的账号不计入。只有平台能报告登录过期时才会标记;其他情况下账号会继续使用,也不会因此出现这两种提示。
保存凭据配置立即生效;在尚未保存的配置表单中选中它之后,仍需保存该表单。提交新材料会整体替换材料包,其中未提供的令牌会被清除;不提交材料的编辑则保留已保存的秘密。普通凭据界面只显示是否存在及状态,不返回秘密值。账号列表的每一行概括账号的使用者和使用时间,或说明它需要处理的原因。展开某一行会列出选用该账号的平台、模板和主播,以及正在用它录制的主播,并链接到对应页面;还会显示账号最近一次使用(最多每隔几分钟更新一次)、检查和刷新的时间,连续刷新失败的次数及原因,对斗鱼等会自动续期的账号还会显示下次续期的时间。删除仍被选用或正在录制的账号时,会改为列出这些配置和录制。主播被删除时,其自身的选择随之结束;修改 URL 使主播移到另一个平台时,主播会在新平台上改为继承,如需单独的账号,请在新平台上重新选择。
Streamlink 账号
没有内置提取器的网站(如 YouTube、Kick)上的主播都属于 Streamlink 平台。由于这一个平台覆盖许多互不相关的网站,其账号按网站或按主播选择:
- 在 Streamlink 平台页面添加凭据配置,并填写每个账号适用的 网站,例如
youtube.com。网站也包括其子域名:youtube.com包括www.youtube.com和m.youtube.com,但不包括notyoutube.com。可以直接粘贴完整 URL,开头的www.会被去掉,每个网站只能属于一个账号。 - 继承的主播使用网站覆盖其 URL 的账号。若有两个网站都覆盖它,更具体的网站优先,因此
m.youtube.com优先于youtube.com。没有这样的账号时,主播以未登录状态录制。 - 主播也可以在设置中改为选择 不使用身份验证 或一个 固定账号。如果该固定账号是为其他网站设置的,设置页面会发出警告,因为它的 Cookie 会被发送到该主播所在的网站。
- Streamlink 平台本身以及模板中针对它的覆盖都不能选择账号,也不能使用账号池,因此不会自动切换到其他账号。
- Streamlink 会收到凭据配置中的 Cookie,并按账号的代理设置连接。账号不会被自动检查或刷新,登录失败也不会把它标记为无效。
- 写在 Streamlink 引擎或提取器
extra_args中的凭据会原样传给 Streamlink。它们不受凭据配置管理,不会被检查,并作用于使用这些设置的所有主播。
提取器设为 Streamlink 的 Twitch 主播仍属于 Twitch 平台,照常使用 Twitch 账号;其凭据配置中的 Cookie 和访问令牌会传给 Streamlink。
从配置中的 Cookie 升级
旧版本直接在平台、模板和主播配置中保存 Cookie、令牌和登录信息(Twitch OAuth 令牌、抖音 TTWID、斗鱼设备 ID、SOOP 用户名和密码)。升级后首次启动时会自动转换:
- 每个自带凭据的平台、模板或主播,都会在所在平台上得到一个以其名称加“(migrated)”命名的凭据配置,并以固定方式选择它。该配置包含其录制此前实际使用的内容,包括平台的 SOOP 登录信息。
- 同一平台上相同的凭据共用一个配置。
- 模板的 Cookie 只会为使用该模板的主播所在的平台转换。
- 由于 Streamlink 账号不会被所有网站共用,Streamlink 平台上的 Cookie,或被 Streamlink 主播使用的模板 Cookie,会变成这些主播中尚无自有账号者各自的固定选择。导入备份时同样处理,包括 Streamlink 平台或模板上的选择;导入的账号池在该平台上只保留第一个账号。
- 空的 Cookie 字段视为未设置:该作用域改为继承。
- 不是有效账号材料的凭据会被丢弃,并在日志中记录警告。
升级前请先备份;回退到旧版本需要该备份。参见备份与回滚。
代理
在 设置 → 代理 中保存要用的代理,然后为每个作用域和账号选择连接方式:直连、使用服务器的系统代理,或通过已保存的代理。
已保存的代理
已保存的代理包含名称和地址:http、https、socks5 或 socks5h,写成不带路径的 scheme://host:port,用户名和密码可选,填在各自的栏中。地址和用户名决定了平台看到的出口,因此同一组地址和用户名只能保存一次;再次保存时会提示改用已有的代理。名称不能重复(不区分大小写)。
列表显示每个代理的地址、用户名以及有多少设置在使用它;展开某一行可查看具体是哪些。密码从不显示:编辑时把密码留空即保留原密码。测试 会通过该代理请求一次某个平台的首页或其他地址,报告是否有响应,以及 HTTP 状态和耗时;编辑器中也可以在保存前测试。除代理拒绝登录信息之外,任何响应都算可访问。测试私有网络上的地址需要开启 允许私有网络流代理目标。页面还会显示服务器启动时检测到的系统代理。
仍被设置或账号使用的代理不能删除,删除对话框会列出这些使用者。正在移除的模板会在使用它的录制结束后释放其代理。
更改会立即保存,并在下一次检查、提取或连接时生效;正在进行的工作保持原有连接。修改代理的地址或用户名,等同于修改选用它的账号的凭据:这些账号会重新检查,使用它们的录制会在下一次重新提取时切换。重命名代理或只修改密码则不会。
选择连接方式
全局设置在 网络与系统 中选择 默认代理:直连、系统代理 或已保存的代理。平台、模板和主播在各自的 代理 标签页中选择,另外还可选 继承。最具体的非继承选择生效:依次为主播、模板、平台、全局。模板选择继承时,各主播沿用其所在平台的设置。
所选连接用于直播检查和解析、所有引擎的下载、弹幕,以及通过 服务器代理 的播放。
- 直连 完全不使用代理。FFmpeg 和 Streamlink 启动时会去掉
HTTP_PROXY、HTTPS_PROXY、ALL_PROXY和NO_PROXY环境变量,因此它们也会直接连接。 - 系统代理 使用服务器的上述环境变量。弹幕使用服务器启动时
HTTPS_PROXY、ALL_PROXY、HTTP_PROXY中第一个已设置的变量,并直接连接NO_PROXY中列出的主机。这些变量都未设置时,系统代理等同于直连。在桌面应用中,操作系统的代理设置只对应用内部发出的部分请求生效,从不作用于 FFmpeg、Streamlink 或弹幕;如需覆盖所有连接,请改为保存该代理。 - 已保存的代理 用于上述所有连接。FFmpeg 仅支持
http代理:通过https或 SOCKS 代理的 FFmpeg 录制会失败并给出相应错误,设置界面也会提示。此时请使用http代理,或改用 Mesio 或 Streamlink 引擎。
设置所选的代理已不存在时,相关请求会失败,而不会改为直连。
通知渠道、浏览器推送以及 rclone、BaiduPCS-Go 等上传工具不使用这些设置,而是沿用服务器的环境变量。
账号代理设置
每个账号都有自己的代理设置,在添加或编辑账号时选择:跟随录制的代理(默认)、直连、系统代理 或已保存的代理。账号自己的选择优先于主播、模板和平台,作用于用该账号进行的所有操作:账号检查、刷新、续期和扫码登录,直播检查和解析,下载、弹幕和播放。跟随录制的账号,其连接方式与使用它的录制相同;账号自身的检查、刷新、续期和扫码登录则使用平台的设置,平台未设置时使用全局设置。账号列表中会用图标标出设置了独立代理的账号。
修改账号的代理设置等同于修改其凭据:账号会重新检查,使用它的录制会在下一次重新提取时切换。
按连接限流
平台限流针对的是连接而不是账号。直连、系统代理以及每个已保存的代理各算一条连接;未设置代理环境变量时,系统代理与直连算同一条连接。平台限制请求时,只有该平台在这条连接上的请求会暂停,无论是哪个设置或账号选择了它。启用故障切换的账号池随后会改用另一条连接上的账号,跳过使用被限流连接的账号,并把连接仍在暂停中的账号放到最后尝试。每次暂停都会发送“平台限流”通知,并注明是哪条连接。修改已保存代理的地址或用户名会解除其暂停。
从旧版代理设置升级
旧版本在全局、平台、模板和主播设置中保存代理地址和登录信息。升级后首次启动时会自动转换:
- 每组不同的地址和用户名会成为一个已保存的代理,以其
host:port命名,名称已被占用时追加2、3……,原先使用它的设置都会改选它。写在地址中的登录信息会移到用户名和密码栏,没有协议的地址会补上http://。地址和用户名相同的设置共用一个代理;密码不同时保留最先找到的那个。 - 使用系统代理 会变为 系统代理。在平台、模板或主播上,已关闭的代理会变为 直连,没有代理设置的则变为 继承。
- 任何引擎都无法使用的地址(如
socks4)会变为 直连,并在日志中给出警告。 - 已关闭或为空的全局代理,在这次启动时设置了
HTTP_PROXY、HTTPS_PROXY或ALL_PROXY时会变为 系统代理,否则变为 直连。这样 FFmpeg 和 Streamlink 的下载会像以前一样继续使用环境变量中的代理;直播检查、Mesio 下载和弹幕现在也会使用它。如不希望如此,之后请改选 直连。全新安装在首次启动时也按同样规则选择默认值。
由于 直连 现在会让 FFmpeg 和 Streamlink 不再使用环境变量中的代理,原先关闭了代理的平台、模板或主播,其下载也不再经过该代理。如需经过,请在那里选择 系统代理。
升级前请先备份;回退到早期版本需要该备份。导入旧备份时也按同样规则转换,但不适用环境变量规则;详见备份中的代理。