全自动直播录制实战指南:LiveRecorder 多平台录播工具从入门到进阶
【免费下载链接】LiveRecorder基于Streamlink的全自动直播录制工具,已支持哔哩哔哩、斗鱼、虎牙、抖音、YouTube、Twitch等项目地址: https://gitcode.com/gh_mirrors/li/LiveRecorder
先花 30 秒认识它
LiveRecorder 是一款基于 Streamlink 的全自动直播录制工具,核心功能就一句话:把想录的主播加进配置,它替你 24 小时盯播,开播自动录、下播自动存。它原生支持哔哩哔哩、斗鱼、虎牙、抖音、YouTube、Twitch 等十余个平台,国内外的常见直播间都能覆盖。
为什么值得用?因为"手动录直播"这件事又累又容易错过:直播是实时的,开播时间不固定,你不可能一直守着。LiveRecorder 的思路是把"人肉值守"换成"程序轮询"——每隔几秒问一次平台"主播开播了吗",开播了就拉起 Streamlink 抓取最高画质直播流,再用 FFmpeg 封装成文件,全程无人值守。
一句话总结:它是你的"直播间代守人",你睡觉它盯梢,你上班它录像。
最小可用示例:5 分钟完成第一个直播间录制
开始之前,先确认两件事已经就绪:
- Python 3.8 及以上(源码运行需要)
- FFmpeg(负责把录制的流封装成视频文件,需加入系统 PATH)
然后按顺序执行:
git clone https://gitcode.com/gh_mirrors/li/LiveRecorder cd LiveRecorder python3 -m pip install . cp config.sample.json config.json这一步把项目拉下来、装好依赖,并复制出一份属于自己的配置文件。接着编辑config.json,先只保留一个主播试试水:
{ "user": [ { "platform": "Bilibili", "id": "15152878", "name": "鹿乃", "interval": 10, "format": "mp4" } ] }启动:
python3 live_recorder.py如果该主播正在直播,几秒内日志就会出现"正在录制";直播结束后,output目录里会多出一个命名类似[2026.08.18 12.30.00][Bilibili][鹿乃]直播间标题.mp4的文件——这就是你的第一个自动录制成果。
这段配置做了什么?platform声明平台、id是房间号、name用于文件命名、interval是检测间隔(秒)、format是最终封装格式。启动之后它会一直循环检测,不需要任何人工干预。
从入门到进阶的三级跳
第一跳:吃透基础配置
顶层三个字段决定了全局行为:
| 配置项 | 作用 | 示例 |
|---|---|---|
proxy | 全局代理,http 和 socks 都支持 | http://127.0.0.1:7890 |
output | 全局输出目录,默认output | recordings/videos |
user | 主播列表,核心所在 | 见下方表格 |
user数组里每一项代表一个直播间,字段含义如下:
| 字段 | 必填 | 说明 |
|---|---|---|
platform | ✅ | 平台英文名,必须首字母大写,如Bilibili、Youtube |
id | ✅ | 房间号或频道 ID,直播间网址里就能找到 |
name | ➖ | 主播名,用于区分录制文件,缺省用id |
interval | ➖ | 检测间隔,默认 10 秒 |
format | ➖ | 输出格式,如mp4/flv/ts/mkv,缺省保留平台原生格式 |
output/proxy/headers/cookies | ➖ | 单主播覆盖全局的同名配置,优先级更高 |
第二跳:玩转常用功能
多主播并发监控。user数组天然支持多个主播,程序会为每个主播各开一个检测任务,互不干扰。想同时盯 B站、斗鱼、YouTube,把它们的配置堆进数组即可,一次启动全部托管。
画质与格式控制。录制默认取最高画质;指定format后,录制结束会用 FFmpeg 以codec copy方式封装(只换容器不重新编码,画质零损失),并自动删除原始流文件,避免磁盘被临时文件占满。
输出文件命名。格式固定为[年.月.日 时.分.秒][平台][主播名]直播标题.格式。标题超过 50 字自动截断,文件名中不能使用的字符会被自动转成全角,在 Windows 上也不会报错。
第三跳:进阶玩法
代理分房间设置。每个主播可单独配置proxy(优先级高于全局),非常适合"看 B站直连、看 YouTube 走代理"的混合场景。
Cookie 解锁高画质。哔哩哔哩未登录用户只能看较低清晰度,填上登录后的SESSDATACookie 才能获取原画直播流:
"cookies": "SESSDATA=你的会话值; bili_jct=xxx"请求头兜底。个别平台会校验Referer等请求头,用headers字段补充即可。日志会按天写入logs目录并保留 3 天,方便事后回溯。
完整场景演示:同时盯住两位不同平台的主播
假设你要录两位主播:B站的鹿乃和 YouTube 的斑比鹿乃,希望 B站存成 mp4、YouTube 走代理。配置如下:
{ "proxy": "http://127.0.0.1:7890", "output": "recordings", "user": [ { "platform": "Bilibili", "id": "15152878", "name": "鹿乃", "format": "mp4", "cookies": "SESSDATA=xxx" }, { "platform": "Youtube", "id": "UCShXNLMXCfstmWKH_q86B8w", "name": "斑比鹿乃", "interval": 15 } ] }启动后,日志会依次出现两类信息:先是[Bilibili][鹿乃]正在检测直播状态这类轮询记录;一旦开播,就会看到获取到直播流链接→正在录制→ 下播后开始ffmpeg封装→停止录制的完整链路。
整个生命周期里,程序先调用平台官方 API 判断直播状态,再用 Streamlink 抓取best(最高画质)流写入文件,最后按你的format封装。两位主播互不干扰:YouTube 那路走了全局代理,B站那路用 Cookie 解锁了原画。
最终recordings目录下会躺着两个文件:[时间][Bilibili][鹿乃]xxx.mp4和[时间][Youtube][斑比鹿乃]xxx.ts。一个配置文件、一行启动命令,两个平台的直播就都被托管了。
高频踩坑清单:新手最容易踩的 5 个坑
1. 配置文件没生效。修改config.sample.json后必须重命名为config.json且与程序同目录,程序启动时只认这个名字。同时 JSON 是严格格式,多一个逗号都会直接报错,改完建议先用在线 JSON 校验工具过一遍。
2. B站短号不等于房间号。网页地址栏显示的多是短号而非真实房间号。用https://api.live.bilibili.com/xlive/web-room/v2/index/getRoomPlayInfo?room_id=短号请求一次,返回数据里的room_id才是要填的数字。
3. B站录出来只有低清。不加 Cookie 默认拿不到原画。在配置里补上SESSDATA(登录 B站后从浏览器 Cookie 中复制)即可解决。
4. TwitCasting 频繁报"协议错误"。该平台要求 10 秒内必须有请求,否则会断开 Keep-Alive 长连接。给它单独设置interval: 8(小于 10)就能稳定运行。
5. 录制中断或文件损坏。先确认 FFmpeg 已安装且全局可用;网络波动会导致录流超时,日志会给出警告并自动重试。还有两个项目已知特性提前告知:斗鱼偶发解析错误会自动重试录制;YouTube 单频道多开直播间时可能频繁中断,这是暂时无法修复的已知 bug。
横向对比:LiveRecorder 与常见替代方案
| 方案 | 自动化程度 | 多平台覆盖 | 上手成本 | 适合谁 |
|---|---|---|---|---|
| 手动录屏软件 | 低,需人工值守 | 通用但费时 | 低 | 偶尔录一场的轻度用户 |
| 直播平台官方回放 | 平台说了算 | 单平台,受版权限制 | 无 | 只看不回存的人 |
| Streamlink 命令行 | 半自动,要自己写检测逻辑 | 取决于插件 | 中 | 喜欢 DIY 的脚本玩家 |
| LiveRecorder | 全自动轮询+录制+封装 | 十余个平台开箱即用 | 低,填配置即可 | 想省心托管录制的人 |
LiveRecorder 的取舍很清晰:它把"开播检测、流抓取、封装清理"打包成一个黑盒,代价是你只能使用它已适配的平台。好在主流平台基本齐全,且项目开源,缺平台可以提交 PR 共建。
联动与延伸:拼出无人值守的完整方案
单跑脚本已经够用,再配合系统工具就是一套完整的自动化录制体系:
后台常驻运行。用nohup让脚本在 SSH 断开后继续运行,日志重定向到文件:
nohup python3 live_recorder.py > recorder.log 2>&1 &定时兜底重启。每天凌晨用 crontab 重启一次进程,防止长时间运行后状态异常:
0 3 * * * cd /path/to/LiveRecorder && pkill -f live_recorder.py && sleep 10 && nohup python3 live_recorder.py > recorder.log 2>&1 &异常告警。定时扫描日志中的错误关键词并发送通知,第一时间发现问题:
grep -E "(错误|失败|ERROR|FAILED)" recorder.log | mail -s "直播录制异常" you@example.com磁盘清理。录制文件很占空间,配合find定期清理 30 天前的旧文件,就能形成完整的存储闭环。
下一步,让直播自动进你的硬盘
回看这套方案:一个config.json、一条启动命令,LiveRecorder 就替你完成了"盯播、录制、封装、清理"的全流程,还覆盖了国内外十余个主流平台。对普通观众,它让你不再错过任何一场想看的直播;对内容创作者,它是现成的素材采集管道。
接下来的行动建议很简单:
- 先用
config.sample.json跑通一个你最常看的平台; - 再逐步加主播、配 Cookie、上代理,体验多平台并发录制;
- 最后按"联动与延伸"一节把它部署到云服务器,享受真正的无人值守。
源码与完整配置说明都在项目的README.md里,遇到问题先看"已知 bug"和logs日志目录,也欢迎为它贡献更多平台支持。现在就去配置第一个直播间吧——明天早上醒来,录制好的视频已经在等你。
【免费下载链接】LiveRecorder基于Streamlink的全自动直播录制工具,已支持哔哩哔哩、斗鱼、虎牙、抖音、YouTube、Twitch等项目地址: https://gitcode.com/gh_mirrors/li/LiveRecorder
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考