5分钟快速跑通DouyinLiveRecorder:44个平台的免费直播录制实战指南

5分钟快速跑通DouyinLiveRecorder:44个平台的免费直播录制实战指南

【免费下载链接】DouyinLiveRecorder 可循环值守和多人录制的直播录制软件,支持抖音、TikTok、Youtube、快手、虎牙、斗鱼、B站、小红书、pandatv、sooplive、flextv、popkontv、twitcasting、winktv、百度、微博、酷狗、17Live、Twitch、Acfun、CHZZK、shopee等40+平台直播录制 【免费下载链接】DouyinLiveRecorder 项目地址: https://gitcode.com/gh_mirrors/do/DouyinLiveRecorder

凌晨两点,赛事直播结束,平台回放还没上架,你想留的那段操作已经没了。DouyinLiveRecorder 的做法是:把直播间地址写进一个配置文件,它 7x24 循环盯住房间,主播一开播就自动把整场直播录下来,覆盖 44 个国内外平台。

快速认识:44个平台、7个依赖、v4.0.2

一句话定位:基于 Python + FFmpeg 的开源直播录制工具,循环值守你指定的房间列表,自动检测开播、解析直播源并落盘。三个可验证的数据:

  • 版本 v4.0.2(main.py 第 39 行),最后一次代码更新 2025-01-25,改动是 mp4 转 h264 重编码与更新 FFmpeg
  • README 已勾选支持 44 个平台,从抖音、B站、虎牙到 Twitch、YouTube、Shopee
  • requirements.txt 仅 7 个运行时依赖,核心 Python 代码约 7000 行

README 的提交日志收录了 2023-07 到 2024-11 共 41 次更新记录,内容以修复平台解析和新增平台为主——开源的更新节奏直接体现在对平台改版的响应速度上。

先跑起来:源码或Docker二选一

两条路径,结果一样:直播间地址写在 config/URL_config.ini(一行一个),录好的文件自动落到 downloads/ 目录。

路径一,源码运行(需 Python ≥3.10):

git clone https://gitcode.com/gh_mirrors/do/DouyinLiveRecorder
cd DouyinLiveRecorder && pip3 install -r requirements.txt

Linux 还要装 FFmpeg(apt install ffmpeg,macOS 用 brew),然后:

python3 main.py

路径二,Docker(镜像基于 python:3.11-slim,已内置 FFmpeg 和 Node.js 20,最省事):

docker-compose up -d

docker-compose.yaml 把 config/、logs/、downloads/、backup_config/ 四个目录都映射到了宿主机,配置改在宿主机上生效。第一个录制文件会出现在 downloads/平台名/主播名/ 的层级目录里,文件夹按主播名区分(保存文件夹是否以作者区分 = 是)。

核心机制:巡逻线程、JS签名与重连录制

每个房间配一个巡逻线程

main.py 为 URL_config.ini 里的每条地址启动一个常驻线程,按 循环时间(秒)(config.ini 默认 300 秒)轮询房间状态。stream.py 里用接口返回的 status 字段判断——注释写得很直白:"2 是正在直播、4 是未开播",一旦变成 2 就取流地址交给 FFmpeg。相当于每个房间配了一名巡逻的保安:灯没亮就继续走,灯一亮立刻按下录制键。

X-Bogus 这类签名由 JavaScript 盖出来

不少平台接口要求请求带上签名参数才肯吐真实直播流。项目用 PyExecJS 加载 x-bogus.js 执行签名函数(见 room.py 的 get_xbogus):

xbogus = execjs.compile(open(f'{JS_SCRIPT_PATH}/x-bogus.js').read()).call('sign', query, ua)

把它理解成办通行证盖章:javascript/ 目录下的 5 个 JS 文件就是"盖章机",这也是 Dockerfile 里专门装 Node.js 20 的原因——Python 只负责流程,签名逻辑隔离在 JS 里跑。

FFmpeg 自动重拨,录像带式落盘

main.py 组装的 FFmpeg 命令带了两道保险:-reconnect_delay_max 60 加 -reconnect_streamed、-reconnect_at_eof,断流后 60 秒内自动重连,像话务员掉线自动重拨;落盘默认走 视频保存格式 = ts,配合 视频分段时间(秒) = 1800 每 30 分钟切一段。录像带的比喻很贴切:每段是独立的"带子",中途断掉只损失正在写的那一段,之前的都完整。录制完成后自动转为mp4格式 = 是 会在下播后自动把 ts 转成 mp4。

进阶玩法:画质前缀、磁盘阈值与开播推送

目标:单独控制某个房间的画质。 在 URL_config.ini 的地址前加画质前缀,例如 超清,https://live.douyin.com/745964462470(前后用逗号分隔,中英文逗号均可),可选词共 6 个:原画、蓝光、超清、高清、标清、流畅,main.py 里会按这个白名单校验,不识别的前缀按默认原画处理。效果:该房间按超清录制,其余房间仍走全局默认。

目标:7x24 挂着跑,硬盘不被写满。 录制空间剩余阈值(gb) = 1.0 表示剩余空间低于 1GB 时程序直接停止新录制并退出(main.py 的 check_disk_capacity 检查);容器部署时 restart: always 让 Docker 在退出后自动拉起。两者配合,服务器可以放心挂机。

目标:主播一开播就收到通知。 在 config.ini 的 推送配置 段填 直播状态推送渠道 = 钉钉 和 钉钉推送接口链接(webhook 地址),msg_push.py 支持微信、钉钉、TG、邮箱、Bark、ntfy 6 个渠道,多地址用逗号分隔批量推送。只想要提醒不想录?只推送通知不录制 = 是,程序退化成纯开播监视器。

选型参考:和录屏软件、平台回放比什么

对比维度DouyinLiveRecorder录屏软件(OBS 等)平台自带回放
启动方式填 URL 后全程无人值守每场都要手动打开并点开始只能下播后被动观看
对平台改版的响应开源仓库持续修复(20241130 一版修了 YY、花椒、小红书 3 个平台)不解析直播流,天然不受影响取决于平台策略,部分平台无回放
长直播处理1800 秒自动分段 + 下播自动转 mp4依赖额外插件配置单文件,无法控制
磁盘保护剩余 1GB 阈值自动停止无平台侧管理
海外平台(14 个)内置代理平台列表需自行搭代理基本不可行

适用边界:目标是"长期盯住特定主播、多平台混录"时,它是三者里唯一零人工操作的;只是偶尔录本地屏幕的话,录屏软件更直接,不必引入 FFmpeg 依赖链。

避坑清单:从现象到处理

  1. 手动中断后 mp4 文件打不开 → 中断时文件头没写回 → 保持默认的 ts 格式(每段独立),或依赖下播后自动转 mp4;README 明确建议用 ts。
  2. 录 TikTok、Twitch 没反应,日志刷"网络异常,请检查网络" → 海外平台没走代理 → 设 是否使用代理ip(是/否) = 是 并填 代理地址,再确认平台关键词在 使用代理录制的平台 列表里(默认已含 tiktok、twitch 等 13 个)。
  3. 启动即提示"缺少ffmpeg无法进行录制"然后退出 → 系统没装 FFmpeg → Linux 执行 apt install ffmpeg,或直接 docker-compose up -d,镜像自带。
  4. 抖音房间在播但解析失败 → config.ini 里 抖音cookie 过期(该字段注释写着"录制抖音必填")→ 更新 Cookie 段的抖音 cookie。
  5. 解析失败率飙升、疑似被限流 → 轮询太频繁 → 调大 循环时间(秒)(默认 300,README 明确建议长循环避免封 IP);线程数还会随错误率从 3 自动降档(adjust_max_request)。

上手行动

打开 config/URL_config.ini,填入第一个要录的直播间地址,执行 python3 main.py,下一场直播会自动出现在 downloads/。 服务器部署则换成一条命令:docker-compose up -d。

【免费下载链接】DouyinLiveRecorder 可循环值守和多人录制的直播录制软件,支持抖音、TikTok、Youtube、快手、虎牙、斗鱼、B站、小红书、pandatv、sooplive、flextv、popkontv、twitcasting、winktv、百度、微博、酷狗、17Live、Twitch、Acfun、CHZZK、shopee等40+平台直播录制 【免费下载链接】DouyinLiveRecorder 项目地址: https://gitcode.com/gh_mirrors/do/DouyinLiveRecorder

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值