DouyinLiveRecorder 转播版
基于 DouyinLiveRecorder 的转播增强版,将原本的录制下载功能扩展为实时推流转播,支持抖音/TikTok 等直播推送到 YouTube、HDMI 等目标。
与原版的主要区别
| 功能 | 原版 DouyinLiveRecorder | 本转播版 |
|---|---|---|
| 核心用途 | 录制直播到本地文件 | 实时转播到 YouTube / HDMI |
| 抖音 → YouTube | 不支持 | ✅ 支持,含 AI 人声分离防版权 |
| 抖音 → HDMI/SRS | 不支持 | ✅ 支持(TikTok 模式) |
| 录制到本地 | ✅ 支持 | ✅ 保留支持 |
| 平台支持 | 40+ 平台 | 继承全部平台 |
功能特性
转播模式
- YouTube 转播:抖音直播 → YouTube Live,支持 AI 人声分离(Demucs)降低音乐版权识别
- TikTok/HDMI 转播:抖音直播 → SRS 推流 → HDMI 采集卡或 OBS
- 本地录制:保留原版全部录制能力
防版权识别(YouTube 专用)
- Demucs AI 人声分离:只保留人声,去除背景音乐,从源头避免 Content ID 匹配
- NVIDIA GPU 加速:自动检测 CUDA,优先使用 GPU 加速 Demucs
- 无 GPU 回退:无显卡时自动回退到 CPU,不报错
- 可配置开关:可在
config/youtube.ini中关闭 Demucs,使用原始音频
循环值守与多直播间
- 自动轮询直播间状态
- 主播下播后自动停止推流,并快速重检
- 支持多直播间 URL 配置,单路推流时自动切换
- 直播状态推送(钉钉、微信、Telegram 等)
项目结构
.
├── main.py # 主入口(本地录制 + SRS 转播)
├── youtube.py # YouTube 转播入口
├── tiktok.py # TikTok/HDMI 转播入口
├── douyin_youtube_ffplay.py # 抖音 → YouTube 推流(含 Demucs 管道)
├── douyin_srs_ffplay.py # 抖音 → SRS/HDMI 推流
├── web.py # Web 配置界面
├── config/
│ ├── config.ini # 通用配置
│ ├── youtube.ini # YouTube 推流配置(stream key、Demucs 开关)
│ └── URL_config.ini # 直播间 URL 列表
├── src/ # 爬虫、流解析等核心逻辑
├── backup/ # 备份与辅助模块
├── requirements.txt
├── pyproject.toml
└── README.md
快速开始
1. 环境要求
- Python >= 3.10
- FFmpeg(需支持 libx264、h264_nvenc)
- 可选:NVIDIA GPU + CUDA(用于 Demucs 加速)
2. 安装依赖
# 克隆或下载项目
cd douyinyoutube
# 创建虚拟环境(推荐)
python -m venv .venv
# Windows:
.venv\Scripts\activate
# Ubuntu/Linux:
source .venv/bin/activate
# 安装基础依赖
pip install -r requirements.txt
# 若使用 YouTube 转播 + Demucs 防版权,需额外安装:
pip install -r requirements-youtube.txt
# GPU 版本(NVIDIA)需先安装 CUDA 版 PyTorch:
# pip install torch torchaudio --index-url https://download.pytorch.org/whl/cu118
3. 配置
YouTube 转播
- 编辑
config/youtube.ini:
[youtube]
# YouTube 直播 stream key(从 YouTube 直播控制台获取)
key = xxxx-xxxx-xxxx-xxxx
# 是否启用 Demucs 人声分离(防版权识别)
# 是 = 启用,否 = 使用原始音频
enable_demucs = 是
# Demucs 是否优先使用 GPU(有 NVIDIA 显卡时)
# 是 = 优先 GPU,否 = 强制 CPU
demucs_use_gpu = 是
- 编辑
config/URL_config.ini,添加抖音直播间地址:
https://live.douyin.com/745964462470
https://live.douyin.com/xxx,主播名
- 在
config/config.ini中将视频保存格式设为ts(触发 YouTube 推流逻辑)
TikTok/HDMI 转播
- 使用
tiktok.py入口,配置 SRS 推流地址 - 详见
tiktok/目录说明
4. 运行
# YouTube 转播
python youtube.py
# 或使用 uv
uv run youtube.py
详细配置说明
config/youtube.ini
| 配置项 | 说明 | 默认值 |
|---|---|---|
| key | YouTube 直播 stream key | 必填 |
| enable_demucs | 是否启用 Demucs 人声分离 | 是 |
| demucs_use_gpu | 是否优先使用 NVIDIA GPU | 是 |
config/config.ini
- 视频保存格式:设为
ts时,youtube.py 会走 YouTube 推流逻辑,而非本地录制 - 循环时间:轮询间隔(秒)
- 代理:海外平台需配置代理
URL_config.ini 格式
# 单行一个直播间
https://live.douyin.com/745964462470
# 可加画质和备注
超清,https://live.douyin.com/xxx
https://live.douyin.com/yyy,主播名
# 注释掉不监测
# https://live.douyin.com/zzz
Demucs 防版权说明
原理
- 使用 Demucs 对混音进行人声分离
- 只保留人声轨道推送到 YouTube,背景音乐被物理移除
- Content ID 无法匹配已移除的音乐
延迟与性能
- 延迟:约 4–8 秒(与 chunk 大小相关)
- GPU:有 NVIDIA 显卡时自动使用 CUDA 加速
- CPU:无 GPU 时自动回退,不影响运行
回退机制
- Demucs 未安装:自动使用原始 FFmpeg 推流
- GPU 不可用:自动使用 CPU 运行 Demucs
- enable_demucs = 否:直接使用原始音频
平台兼容性
| 平台 | 录制 | YouTube 转播 | Demucs |
|---|---|---|---|
| Windows | ✅ | ✅ | ✅(CPU/GPU) |
| Ubuntu Server | ✅ | ✅ | ✅(优先) |
| 其他 Linux | ✅ | ✅ | ✅ |
Web 配置界面
python web.py
- 浏览器访问配置页面
- 支持编辑
youtube.ini、URL_config.ini - 选择 youtube / tiktok / obs 等模式
常见问题
1. Demucs 安装失败
# 仅 CPU
pip install demucs torch torchaudio
# 使用国内镜像
pip install demucs torch torchaudio -i https://pypi.tuna.tsinghua.edu.cn/simple
2. 无 NVIDIA 显卡
- 程序会自动使用 CPU 运行 Demucs
- 可在
youtube.ini中设置demucs_use_gpu = 否以跳过 GPU 检测
3. 推流中断
- 检查网络与代理
- 检查 YouTube stream key 是否有效
- 查看控制台日志定位错误
4. 抖音风控
- 适当增大循环时间
- 确保 Cookie 有效(录制抖音需配置)
致谢
许可证
MIT License
Description
Languages
Python
76.2%
JavaScript
21.4%
HTML
1.7%
VBScript
0.6%
Dockerfile
0.1%