# DouyinLiveRecorder 转播版 [![Python Version](https://img.shields.io/badge/python-3.10+-blue.svg)](https://www.python.org/downloads/) [![Supported Platforms](https://img.shields.io/badge/platforms-Windows%20%7C%20Ubuntu-blue.svg)](https://github.com/ihmily/DouyinLiveRecorder) [![License](https://img.shields.io/badge/license-MIT-green.svg)](LICENSE) 基于 [DouyinLiveRecorder](https://github.com/ihmily/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. 安装依赖 ```bash # 克隆或下载项目 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 转播 1. 编辑 `config/youtube.ini`: ```ini [youtube] # YouTube 直播 stream key(从 YouTube 直播控制台获取) key = xxxx-xxxx-xxxx-xxxx # 是否启用 Demucs 人声分离(防版权识别) # 是 = 启用,否 = 使用原始音频 enable_demucs = 是 # Demucs 是否优先使用 GPU(有 NVIDIA 显卡时) # 是 = 优先 GPU,否 = 强制 CPU demucs_use_gpu = 是 ``` 2. 编辑 `config/URL_config.ini`,添加抖音直播间地址: ```ini https://live.douyin.com/745964462470 https://live.douyin.com/xxx,主播名 ``` 3. 在 `config/config.ini` 中将 `视频保存格式` 设为 `ts`(触发 YouTube 推流逻辑) #### TikTok/HDMI 转播 - 使用 `tiktok.py` 入口,配置 SRS 推流地址 - 详见 `tiktok/` 目录说明 ### 4. 运行 ```bash # 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](https://github.com/facebookresearch/demucs) 对混音进行人声分离 - 只保留人声轨道推送到 YouTube,背景音乐被物理移除 - Content ID 无法匹配已移除的音乐 ### 延迟与性能 - **延迟**:约 4–8 秒(与 chunk 大小相关) - **GPU**:有 NVIDIA 显卡时自动使用 CUDA 加速 - **CPU**:无 GPU 时自动回退,不影响运行 ### 回退机制 1. **Demucs 未安装**:自动使用原始 FFmpeg 推流 2. **GPU 不可用**:自动使用 CPU 运行 Demucs 3. **enable_demucs = 否**:直接使用原始音频 --- ## 平台兼容性 | 平台 | 录制 | YouTube 转播 | Demucs | |------|------|--------------|--------| | Windows | ✅ | ✅ | ✅(CPU/GPU) | | Ubuntu Server | ✅ | ✅ | ✅(优先) | | 其他 Linux | ✅ | ✅ | ✅ | --- ## Web 配置界面 ```bash python web.py ``` - 浏览器访问配置页面 - 支持编辑 `youtube.ini`、`URL_config.ini` - 选择 youtube / tiktok / obs 等模式 --- ## 常见问题 ### 1. Demucs 安装失败 ```bash # 仅 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 有效(录制抖音需配置) --- ## 致谢 - 原项目:[ihmily/DouyinLiveRecorder](https://github.com/ihmily/DouyinLiveRecorder) - 人声分离:[facebookresearch/demucs](https://github.com/facebookresearch/demucs) --- ## 许可证 MIT License