跳转到正文

斗鱼 ​

斗鱼 是中国主要的游戏直播平台。

URL 格式 ​

https://www.douyu.com/{房间号}

功能 ​

  • ✅ FLV 流
  • ✅ 弹幕采集
  • ✅ 多画质选项(通过 rate 进行选择)
  • ✅ 支持 CDN 选择
  • ✅ 互动玩法(互动直播)检测
  • ✅ Android App 提取与 AVC / HEVC 编码偏好
  • ✅ 二维码登录及自动续期

INFO

  • 认证说明:未使用已登录账号时为匿名播放,斗鱼可能把有多个画质的房间限制在原画以下(例如超清)。按认证中的说明添加的已登录账号会随 App 和 Web 方式的取流请求一起发送,可以解锁原画,详见未登录时录制。所选账号凭据配置中的有效 acf_did Cookie 会作为设备 ID。不保证能访问受限直播。
  • 推荐格式:斗鱼主要使用 FLV 格式进行直播录制。
  • 画质控制:可以通过 rate 设置来选择画质(0 为原画)。
  • CDN 切换:如果录制出现卡顿,可以在配置中指定首选 CDN。
  • 互动玩法:可以通过 disable_interactive_game 配置自动跳过“互动玩法”的录制。

认证 ​

斗鱼账号是斗鱼平台上的账号凭据配置。

未登录时录制 ​

斗鱼会限制未登录观众可获取的画质,两种提取方式受到的限制不同:

方式未登录使用已登录账号
App(默认)有多个画质的房间通常限制为超清,但录制不会中断原画
Web画质可能高于 App,但不一定是原画;斗鱼约每五分钟断开一次直播流,录像会被拆成许多短文件,断开处会有短暂缺失原画,不会每五分钟断开

要以最佳画质录制,请添加已登录账号。不使用账号时,除非您更看重画质而不介意录制中断,否则建议保持 App 方式。

二维码登录 ​

  1. 进入 设置 → 平台,打开 斗鱼
  2. 在 网络 标签页点击 添加账号,填写名称,保持选中 扫码登录 并点击 显示二维码(已有账号需要重新登录时,点击其所在行的 重新登录,或在 … 菜单中选择 扫码登录)
  3. 使用斗鱼 App 扫码并确认登录
  4. 登录完成后凭据配置即保存;要用它录制,点击账号列表上方的 更改,在 账号选择 中选中它并保存页面

登录会为该凭据配置生成新的设备 ID,App 播放随后将其作为 acf_did 使用。登录还会把斗鱼的长期登录凭证(LTP0)保存为该凭据配置的刷新令牌。使用该凭据配置的录制会在取流请求中带上其登录会话,可以解锁斗鱼仅向已登录用户提供的画质。

斗鱼的登录会话约六天有效。凭据配置的会话满四天后,会在下次使用该账号前用保存的登录凭证续期;在账号的 … 菜单中选择 刷新 可立即续期。续期失败时,账号继续使用当前会话,并发送“凭据刷新失败”通知,并在下次使用该账号时再次尝试,最早在一小时后。如果续期持续失败(例如在斗鱼上退出了所有设备的登录),请在该账号上点击 重新登录。

添加凭据配置并粘贴已登录浏览器会话的 Cookie。请复制浏览器中 www.douyu.com 的全部 Cookie,而不是其中几个:缺少部分 Cookie 时,App 方式会按未登录观众录制,画质较低。若要像扫码登录一样自动续期,Cookie 中须包含 dy_did,并且 passport.douyu.com 的 LTP0 Cookie 须填写在 刷新令牌 中或包含在 Cookie 里。两者缺一时,Cookie 会原样使用,直到斗鱼不再接受,该凭据配置也不提供 刷新。只含 acf_did Cookie 的凭据配置仅提供 App 设备 ID。

提取设置 ​

可以在斗鱼平台设置中配置以下选项,也可以在模板或主播配置中覆盖。未设置的选项继承上一配置层。

选项可选值 / 默认值行为
api_modeapp(默认)、webApp 使用 Android 播放接口;Web 保留旧提取实现,已弃用。
rate非负整数,默认 0请求画质:0 原画、3 超清、2 高清、1 标清。可用档位取决于房间。
cdnApp 默认 hw;Web 默认 ws-h5App 示例:hw、tct、hs、ws。App 请求会自动移除已有的 -h5 后缀。
codecavc(默认)、hevc优先选择 H.264/AVC 或 H.265/HEVC。HEVC 不可用时回退到 AVC。
device_name默认随机机型Android 机型,如 OnePlus 12。未设置时生成 ABC-DE12 格式的机型。
os_version默认 "14"与机型一起用于生成 App User-Agent 的 Android 版本。
device_id_modelocal(默认)、server、default没有有效的 acf_did Cookie 时,分别选择本地生成、向斗鱼注册或使用固定兼容 DID。
only_audiofalse(默认)通过旧 Web 方式请求不含视频的 AAC 音频,不受 api_mode 影响,忽略编码偏好。
request_retries默认 3,最小有效值 1房间元数据及 App 播放请求的最大尝试次数。
disable_interactive_gamefalse(默认)将互动玩法房间视为未开播。

平台专属 JSON 示例:

json
{
  "api_mode": "app",
  "rate": 0,
  "cdn": "hw",
  "codec": "hevc"
}

斗鱼可能调度到其他 CDN 或降低请求画质。解析后的直播流会报告实际返回的画质档位、CDN 和编码。App 播放失败时不会自动切换到 Web;如有需要,请明确选择 web。上述仅音频模式是兼容性例外。

App 机型、生成的 User-Agent 和设备 ID 在首次请求 App 播放时初始化,之后在重试及切换 CDN 时复用。离线检查和 Web 提取不会初始化 App 设备。设备选项仍在配置提取器时进行校验。服务端注册需要联网,超时为 5 秒,同一提取器会复用结果;注册失败会报错,不会静默切换身份。如需跨提取器实例或程序重启保持身份,请在账号凭据配置中填写有效的 acf_did Cookie。

默认的本地 DID 使用 Android 客户端基于毫秒时间戳的 MD5 算法。device_id_mode: "default" 使用 10000000000000000000000000001511。

基于 MIT 许可证发布。