Files
gitlab-instance-0a899031_do…/README.md
2026-03-19 02:30:31 -05:00

260 lines
6.8 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 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 无法匹配已移除的音乐
### 延迟与性能
- **延迟**:约 48 秒(与 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