一款直播录制脚本,基于强大的Streamlink 实现多平台直播源录制,通过挖掘直播平台官方API以轮询方式实现直播开播检测,致力于用最少的代码实现最多的功能
- 哔哩哔哩
- 斗鱼
- YouTube
- Twitch
- TwitCasting
- 更多平台欢迎PR
根据你的运行平台安装对应版本,并添加环境变量确保全局调用
当前支持Windows, Mac和Linux,请前往Release下载对应平台的可执行程序
下载解压后修改配置,直接运行二进制文件即可
Mac和Linux arm64版本未实际测试,如果打包出错欢迎提issue
在不支持的平台运行时可使用源码运行,安装好Python后在命令行输入以下命令即可
# 下载源码(没有git可以直接从release下载Source code)
git clone https://github.com/auqhjjqdo/LiveRecorder.git
cd LiveRecorder
# 安装依赖
python3 -m pip install -r requirements.txt
# 源码运行
python3 -m main.py
配置文件存储于config.json
,该文件位于可执行程序相同目录
文件内容要求严格按照json语法,请前往在线json格式化网站校验后再修改
proxy
的值为代理地址,支持http和socks代理,格式为protocol://[user:password@]ip:port
例如http://127.0.0.1:7890
、socks5://admin:passwd@127.0.0.1:1080
留空时默认自动检测系统代理
更多格式参照streamlink代理文档
format
的值为直播录制输出文件的封装格式(非编码格式),推荐使用ts
格式以保证输出文件兼容性
例如ts
、flv
、mp4
、mkv
等
支持所有FFmpeg的视频输出格式,详见FFmpeg官方文档
按照示例修改user
列表,注意逗号、引号和缩进
字段 | 含义 | 可填内容 | 是否必填 | 备注 |
---|---|---|---|---|
platform | 直播平台 | Bilibili Douyu Youtube Twitch Twitcasting |
必填 | 必须为首字母大写 |
id | 对应平台的直播用户id | 哔哩哔哩、斗鱼为直播间房间号 youtube为频道id twitch为登录名 twitcasting为用户名 |
必填 | 参考config文件示例格式 直播网址即可找到 |
name | 自定义主播名 | 任意字符 | 非必填 | 用于录制文件区分 未填写时默认使用id |
interval | 检测间隔 | 任意整数或小数 | 非必填 | 默认检测间隔为10秒 |
headers | HTTP 标头 | 参考官方文档 | 非必填 | 可用于部分需请求头验证的网站 |
cookies | HTTP Cookie | key=value 多个cookie使用 ; 分隔 |
非必填 | 可用于录制需登录观看的直播 |
部分主播的B站房间号在使用网页打开时地址栏默认显示的是短号,并不是真实的房间号,如需获取真实房间号可以打开
https://api.live.bilibili.com/xlive/web-room/v2/index/getRoomPlayInfo?room_id=短号
返回的数据中room_id
后的数字即真实房间号
YouTube的频道ID一般是由UC
开头的一段字符,由于YouTube可以自定义标识名,打开YouTube频道时网址会优先显示标识名而非频道ID
获取YouTube的频道ID可以在打开频道主页后,按F12打开开发者工具,在控制台输入ytInitialData.metadata.channelMetadataRenderer.externalId
,返回的字符即YouTube的频道ID
默认将直播录制文件输出到运行目录的output
文件夹
输出文件默认直接使用ffmpeg封装为配置文件自定义的输出格式
,音视频编码为直播平台直播流默认(一般视频编码为H.264
,音频编码为AAC
),录制清晰度为最高画质
输出文件名命名格式为[年.月.日 时.分.秒][平台][主播名]直播标题.格式
,日期时区为系统默认时区