更新频道 2 的 YouTube 密钥与抖音源站列表;完善网络诊断、IP 画像与功能开关文档。 Co-authored-by: Cursor <cursoragent@cursor.com>
27 KiB
无人直播助手
Windows 桌面端 抖音 → YouTube 无人转播 控制台:内置 Electron 客户端、FastAPI 控制面(web2)、FFmpeg 推流 worker、多频道 Pro、推流诊断。
录制核心基于 DouyinLiveRecorder 生态;Linux 全功能服务端可参考同级项目 sh2(
d2ypp2)。本仓库侧重 Windows 懒人包 + Electron 控制台。
目录
- 快速开始
- 产品定位
- 系统架构
- 仓库结构
- 界面与功能
- 网络诊断与 IP 画像
- 功能开关
- web2 API
- 配置与数据路径
- 单频道与多频道 Pro
- 网络诊断 / IP 画像 / 代理
- 推流诊断 / 质量守卫 / 转播历史
- youLIVE 目标端监控
- 摄像头直推
- 外部拉流转推
- 会员登录门禁(可选)
- 开发与构建
- 打包发布
- 环境变量
- 故障排查
- 相关文档
- 许可证
快速开始
最终用户(便携包)
- 运行发布包中的 无人直播助手 可执行文件。
- 打开 直播 页,在界面中填写:
- YouTube 串流密钥(Studio → 直播 → 串流设置);
- 源站地址(抖音直播间 URL,每行一个)。
- 点击 开始直播;在 当前直播日志 中查看业务状态与 FFmpeg 输出。
开发者
cd electron
pnpm install
pnpm dev
首次开发若缺少离线 Python/FFmpeg,可在 electron/ 下执行 pnpm prepare:runtime。
仅调试后端 API(仓库根目录):
pip install -r requirements.txt
uvicorn web2:app --host 127.0.0.1 --port 8001 --reload
产品定位
| 场景 | 说明 |
|---|---|
| 无人转播 | 从抖音等源站拉流,经本机 FFmpeg 推送到 YouTube RTMPS。 |
| 值守运行 | 通过内置 BuiltinSupervisor(或可选 PM2)管理 youtube2.py、douyin_youtube_ffplay.py 等 worker。 |
| 桌面控制台 | Electron 提供直播、网络、系统等页面。 |
| 多路 Pro | 多组「一个抖音直播间 ↔ 一个 YouTube 串流密钥」并行,进程名 youtube2__{channelId}。 |
配对原则(强制)
- 一个抖音直播间地址只对应 一个 YouTube 串流密钥;
- 禁止 同一抖音向多个 YouTube 推流;
- 禁止 多个抖音共用同一密钥。
系统架构
┌─────────────────────────────────────────────────────────────────┐
│ Electron 渲染进程 (React + Vite) │
│ 直播 / 摄像头 / 拉流 / 网络 / 系统 │
└───────────────────────────┬─────────────────────────────────────┘
│ preload (contextBridge)
┌───────────────────────────▼─────────────────────────────────────┐
│ Electron 主进程 │
│ · 启动 uvicorn (web2:app) │
│ · sql.js → client-data.sqlite │
│ · 托盘、深链 --nav= │
│ · YouTube Studio 系统浏览器侧车 │
│ · youLIVE 服务(监听 / 弹幕 / 桌面通知 / 本地 SQLite) │
└───────────────────────────┬─────────────────────────────────────┘
│ http://127.0.0.1:8001(可 0.0.0.0)
┌───────────────────────────▼─────────────────────────────────────┐
│ web2.py (FastAPI) │
│ 进程启停 / 状态诊断 / 配置读写 / Pro / 质量守卫 / 会话历史 │
└───────────────────────────┬─────────────────────────────────────┘
│
┌───────────────────┼───────────────────┐
▼ ▼ ▼
youtube2.py douyin_youtube_ffplay.py camera_youtube.py
│ │ │
│ pull_stream_youtube.py │
└──────── FFmpeg + Supervisor / PM2 ────────────────┘
| 模块 | 文件 | 职责 |
|---|---|---|
| Worker | youtube2.py, douyin_youtube_ffplay.py, main.py |
拉流、转码、推流 |
| 控制面 | web2.py |
HTTP API |
| 运行时诊断 | web2_process_runtime.py |
business_status、FFmpeg 速度/帧数 |
| 质量守卫 | web2_quality_guard.py |
推流质量评分 |
| 网络测速 | web2_network.py |
境内外可达性、上下行测速、分流判断 |
| IP 画像 | web2_ip_profile.py |
出口 IP 类型(住宅/机房/代理)、洁净度评分 |
| IP 质量 | web2_ip_quality.py |
代理/VPN/机房风险、流媒体解锁探测 |
| 功能开关 | web2_feature_flags.py |
摄像头/拉流 API 与 worker 显隐 |
| 转播历史 | web2_relay_log.py |
会话 SQLite、日志导入 |
| 配置治理 | web2_config_governance.py |
保存前备份、恢复 |
| 多频道 | web2_relay_pro.py |
youtube_channels.json、config/relay_pro/ |
| 摄像头 | web2_camera.py, camera_youtube.py |
DirectShow 采集、NVENC 推流 |
| 拉流 | web2_pull_stream.py, pull_stream_youtube.py |
RTMP/SRT/HLS/FLV/WHEP 拉流转推 |
| IP 画像 | web2_ip_profile.py |
出口 IP 类型、住宅/机房判定、WebRTC 泄露联动 |
| IP 质量 | web2_ip_quality.py |
风险评分、流媒体解锁探测(参考 xykt/IPQuality) |
| 功能开关 | web2_feature_flags.py, electron/src/shared/featureFlags.ts |
摄像头/拉流 UI 与 API 显隐 |
| youLIVE | electron/src/youlive/ |
YouTube 监听、弹幕、账号、桌面通知 |
| 主进程 | electron/src/main/ |
运行时打包、IPC、本地 DB |
| 界面 | electron/src/renderer/ |
React SPA |
仓库结构
.
├── electron/ # 无人直播助手(Electron + React)
│ ├── src/main/ # 主进程
│ ├── src/preload/ # contextBridge
│ ├── src/renderer/ # UI(直播 / 摄像头 / 拉流 / 网络 / 系统)
│ │ ├── components/worker/ # 业务工作台(链路条 / 清单 / 指标)
│ │ └── components/network/ # 网络页(链路条 / IP 画像 / IP 质量 / 测速图)
│ ├── src/shared/ # 前后端共享常量(功能开关 featureFlags)
│ ├── src/youlive/ # 内嵌 youLIVE(主进程服务 + 共享类型)
│ └── scripts/ # 离线运行时、图标
├── web2.py # FastAPI 入口
├── web2_*.py # 后端子模块(含 ip_profile / ip_quality / feature_flags)
├── third_party/IPQuality/ # IP 质量检测脚本参考(ip.sh)
├── config/ # 运行配置
├── backup_config/__web__/ # 配置自动备份
├── runtime/youtube_relay/ # 转播会话 sessions.sqlite
├── src/ # 录制核心(spider、stream、room…)
├── camera_youtube.py # 摄像头→YouTube worker
├── pull_stream_youtube.py # 外部拉流→YouTube worker
├── douyin_youtube_ffplay.py # 抖音→YouTube 转播
├── youtube2.py # YouTube worker
├── third_party/IPQuality/ # IP 质量检测参考脚本(ip.sh)
├── docs/ # 补充文档
└── requirements.txt
界面与功能
| 页面 | 说明 |
|---|---|
| 直播 | 抖音源站无人转播:单频道 / Pro、链路诊断、转播历史、youLIVE 目标端监控 |
| 摄像头 | 本机采集直推:设备预览、采集/编码配置、独立控制台(进程 camera_youtube) |
| 拉流 | 外部流转推:RTMP/SRT/HLS/FLV/WHEP 拉流、转码或流复制(进程 pull_stream_youtube) |
| 网络 | 链路诊断、境内外测速、IP 画像与质量、WebRTC 泄露检测、FFmpeg 代理 |
| 系统 | CPU/内存/磁盘/GPU、开机启动、路径、会员登录限制开关 |
直播 页面向抖音无人转播业务,含 Pro 多频道、三层链路诊断、转播历史等。
摄像头 / 拉流 页各自独立 UI 与工作流,不复用直播页布局;侧栏深链可直达(见下表)。默认构建中这两项为隐藏状态,见 功能开关。
网络 页采用链路管线布局:源站 / 分流 / YouTube / 上行四段可视化,配合实时测速曲线、境内外带宽对比、代理设置,以及 IP 画像与 IP 质量面板(见 网络诊断与 IP 画像)。
| 深链参数 | 页面 | 说明 |
|---|---|---|
--nav=record |
直播 | 默认页;Windows 任务栏快捷方式 |
--nav=camera |
摄像头 | 本机采集直推 |
--nav=pull |
拉流 | 外部流转推 |
--nav=network |
网络 | 测速与代理(--nav=proxy 同义) |
--nav=system |
系统 | 负载、路径、会员门禁 |
业务工作台(摄像头 / 拉流共用 components/worker/):
- WorkerFlowStrip:三段链路条(采集/拉流 → 处理/编码 → YouTube 输出),按
business_status着色 - WorkerChecklist:启动前配置清单(设备/地址、密钥、码率等),未就绪项显示提示
- WorkerMetrics:推流中展示 FFmpeg 速度、帧序号、worker 进程数与业务状态
直播页能力摘要:
- 自适应轮询:推流中 ~0.8s,空闲 ~4s,后台标签 ~30s
- 链路诊断:源站 / 推流 / 目标三层检查(
GET /youtube/diagnostics) - YouTube 目标端监控:监听地址写入
youtube_channels.json,与转播线路绑定 - 桌面通知:推流未到达 YouTube、目标端下播、弹幕关键词(需 youLIVE 桌面通知开启)
- 转播历史:PM2 状态自动记会话;支持从 PM2 日志导入
- 配置历史备份:保存前自动备份,界面可恢复
- YouTube Studio:系统浏览器打开,便于核对密钥
- 源站预览:解析抖音 URL 并尝试显示主播昵称
- 配对校验:Pro 多线路保存时检测抖音地址 / YouTube 密钥跨频道重复,冲突时展示横幅并阻止启动
网络 页面向转播前的出口与链路自检,含:
- 链路快检:国内源站(抖音)/ Google / 线路分流 / 海外上行 / 录制代理五项状态芯片
- NetworkPipeline:源站 → 分流 → YouTube → 上行四段链路条,按可达性与测速结果着色
- 境内外站点卡:Google 与抖音的延迟、上下行测速、解析 IP 与地区
- IP 出口画像(
GET /ip_profile):本机默认出口与海外出口的类型(住宅/机房/代理/移动)、洁净度评分、WebRTC 本地泄露参考 - IP 质量检测(
GET /ip_quality):代理/VPN/Tor/机房风险因子、Abuser 评分、YouTube/Netflix 等流媒体解锁状态 - 测速趋势图:
NetworkSpeedChart记录近期上下行采样 - FFmpeg 代理:录制/推流专用 HTTP/SOCKS 代理,与系统代理设置联动
- 自动刷新:约 45s 静默轮询;WebRTC 检测完成后自动刷新 IP 画像
摄像头 / 拉流功能默认在导航中隐藏(见 功能开关),代码与 API 仍保留,可按需开启。
网络诊断与 IP 画像
网络 页在原有测速与代理基础上,新增出口画像与质量评估,帮助在推流前判断代理/VPN/机房 IP 是否适合 YouTube 转播。
| 能力 | 说明 |
|---|---|
| 链路管线 | 四段状态条:抖音源站可达性 → 分流路径 → Google/YouTube 延迟 → 上行带宽 |
| 测速曲线 | 境内外下载/上传 Mbps 实时采样与历史折线 |
| IP 画像 | 本机默认出口与代理后海外出口对比:ISP、ASN、住宅/机房/代理类型、洁净度评分 |
| WebRTC 泄露 | 渲染进程轻量 STUN 探测本地私网候选,结果上报 ip_profile 参与评分 |
| IP 质量 | 多源风险评分(ipinfo、ipapi.is 等)、代理/VPN/Tor/机房因子、YouTube/TikTok/Netflix 等媒体解锁状态 |
| 代理设置 | FFmpeg 代理开关与 HTTP/SOCKS 地址,写入 config/ffmpeg_proxy.ini |
后端模块:
web2_ip_profile.py:数据源 ip-api.com、ping0.cc、ipifyweb2_ip_quality.py:Python 化集成 xykt/IPQuality 思路;参考脚本见third_party/IPQuality/ip.sh
IP 检测依赖外部公开 API,结果仅供参考,不构成安全或合规保证。
功能开关
摄像头直推与外部拉流转推在代码中完整保留,但默认关闭 UI 与相关 API,便于精简发布包。需要时分别修改前后端开关:
| 开关 | 文件 | 变量 |
|---|---|---|
| 后端 API / worker 发现 | web2_feature_flags.py |
SHOW_CAMERA_FEATURE, SHOW_PULL_STREAM_FEATURE |
| 前端导航与深链 | electron/src/shared/featureFlags.ts |
SHOW_CAMERA_UI, SHOW_PULL_STREAM_UI |
关闭时:
- 侧栏不显示 摄像头 / 拉流 入口;
- 深链
--nav=camera/--nav=pull自动回落到 直播 页; GET /camera/*、GET/POST /pull_stream/*返回功能已禁用提示。
web2 API
默认:http://127.0.0.1:8001(WEB2_PORT 可改)。
| 分类 | 路径 | 说明 |
|---|---|---|
| 健康 | GET /health |
存活(无需鉴权) |
| 进程 | GET /process_monitor |
任务列表(含 Pro 频道) |
| 进程 | GET /start /stop /restart |
参数 process= |
| 状态 | GET /status?process= |
进程状态 + 业务诊断 + FFmpeg 指标 |
| 配置 | GET/POST /youtube/ini_model |
结构化 youtube.ini |
| 配置 | GET/POST /get_url_config save_url_config |
URL_config.ini |
| 配置 | GET /config/backups?file= |
历史备份列表 |
| 配置 | POST /config/restore |
恢复(file, backupId) |
| Pro | /relay_pro/* |
多频道 CRUD、密钥、URL、YouTube 监听地址、live_status |
| 诊断 | GET /youtube/diagnostics |
源站 / FFmpeg / 目标三层诊断 |
| 诊断 | GET /youtube/quality_guard |
质量评分(诊断内部复用) |
| 摄像头 | GET /camera/devices |
FFmpeg 枚举音视频采集设备 |
| 摄像头 | GET/POST /camera/config |
读写 camera_live.ini |
| 拉流 | GET/POST /pull_stream/config |
读写 pull_stream.ini |
| 拉流 | GET /pull_stream/protocols |
协议预设与示例地址 |
| 历史 | GET /youtube/relay/sessions |
转播会话 |
| 历史 | POST /youtube/relay/sessions/import |
从 PM2 日志导入 |
| 网络 | GET /network_status GET/POST /proxy_config |
测速与代理 |
| 网络 | GET /ip_profile |
出口 IP 画像(可选 client_tz、client_lang、webrtc_leak) |
| 网络 | GET /ip_quality |
IP 质量与流媒体解锁探测 |
| 系统 | GET /system_metrics GET /host/gpu_status |
主机、磁盘、NVENC |
| OAuth | GET /youtube/oauth/* |
Google 拉取串流密钥(UI 可关) |
可选鉴权:config/web2_api_token.txt 或 WEB2_API_TOKEN 存在时,除 /health 外需:
Authorization: Bearer <密钥>
Electron 主进程自动注入 API 鉴权头。
配置与数据路径
| 路径 | 用途 |
|---|---|
config/youtube.ini |
单路密钥与 [youtube] 选项(GPU、分辨率、RTMPS) |
config/URL_config.ini |
单路源站 URL 列表 |
config/youtube_channels.json |
Pro 频道元数据(见 youtube_channels.example.json) |
config/relay_pro/url_config.ch_*.ini |
每频道源站地址 |
config/relay_pro/youtube.ch_*.ini |
每频道密钥(后端物化) |
config/web2_api_token.txt |
API 鉴权密钥 |
config/web2_bind_host.txt |
监听地址(懒人包默认 127.0.0.1;局域网访问可设 0.0.0.0 并配置 token) |
config/google_oauth.example.json |
YouTube OAuth 模板 |
config/ffmpeg_proxy.ini |
FFmpeg 代理 |
config/camera_live.ini |
摄像头采集参数(见 camera_live.example.ini) |
config/pull_stream.ini |
外部拉流参数(见 pull_stream.example.ini) |
backup_config/__web__/ |
配置版本备份 |
runtime/youtube_relay/sessions.sqlite |
转播会话库 |
用户数据目录 client-data.sqlite |
Electron 本地事件与快照 |
示例 config/youtube_channels.json:
{
"version": 1,
"channels": [
{
"id": "ch_a",
"name": "路线A",
"douyinUrl": "https://live.douyin.com/123456789",
"youtubeKey": "xxxx-xxxx-xxxx-xxxx"
}
]
}
单频道与多频道 Pro
单频道
- 填写
config/youtube.ini中的串流密钥。 - 填写
config/URL_config.ini中的抖音直播间地址。 - 直播 页选择
youtube2→ 开始直播。
多频道 Pro
- 直播页打开 Pro 开关。
- 界面新增频道,或编辑
config/youtube_channels.json。 - 每频道进程:
youtube2__{channelId},独立密钥与 URL 文件。 - 网格内按频道启停;预检要求密钥与源站均已配置。
网络诊断 / IP 画像 / 代理
网络 页帮助在开播前确认「抖音源站可达 + 海外出口可用 + 上行带宽足够」。
链路诊断(GET /network_status)
| 检测项 | 说明 |
|---|---|
| 国内源站 | 抖音域名可达性与延迟 |
| Google 出口 | YouTube 推流路径可达性 |
| 线路分流 | 对比境内外解析 IP,判断代理/TUN 是否生效 |
| 海外测速 | 参考上下行 Mbps(测速失败不代表无法推流) |
| 录制代理 | config/ffmpeg_proxy.ini 是否已配置 |
IP 出口画像(GET /ip_profile)
参考 whoer / ping0.cc 维度,聚合 ip-api.com、ping0.cc 等数据源:
- 默认出口与海外出口(经 Google 探测路径采样)的类型标签
- 住宅 / 机房 / 代理 / 移动判定与洁净度评分
- 浏览器侧 WebRTC 本地候选检测(
useWebRtcLeak),结果通过webrtc_leak参数回传后端
IP 质量检测(GET /ip_quality)
集成 xykt/IPQuality 思路(参考 third_party/IPQuality/ip.sh):
- 代理、VPN、Tor、机房等风险因子
- 多源 Abuser / IPQS 评分
- YouTube、TikTok、Netflix、Disney+ 等流媒体解锁状态
FFmpeg 代理
GET/POST /proxy_config 读写 config/ffmpeg_proxy.ini,供 youtube2 等 worker 拉流时使用,与 Windows 系统代理设置独立。
推流诊断 / 质量守卫 / 转播历史
GET /status 的 business_status 示例:
| 状态 | 含义 |
|---|---|
streaming |
正在推流 |
relay_slow |
推流速度低于实时 |
source_stalled |
FFmpeg 进度停滞 |
youtube_key_rejected |
YouTube 拒绝 RTMPS |
waiting_source |
等待源站开播 |
misconfigured |
配置不完整 |
monitoring |
在线监测中 |
链路诊断:GET /youtube/diagnostics → 源站 / FFmpeg / 目标三层检查与综合评分。
质量守卫:GET /youtube/quality_guard → FFmpeg 指标与告警(诊断层内部复用)。
转播历史:runtime/youtube_relay/sessions.sqlite
- PM2
online/ 停止时自动开闭会话; /status轮询时从日志同步主播与时长;- 界面 从日志导入 可解析历史 PM2 输出。
youLIVE 目标端监控
内嵌于 Electron 主进程的 youLIVE 模块(electron/src/youlive/),通过 preload 暴露 window.youlive API,为直播页提供 YouTube 目标端能力,与 web2 控制的 源站推流 互补。
| 能力 | 说明 |
|---|---|
| 监听列表 | 按 YouTube 频道 / 直播页 URL 轮询开播状态、观众数 |
| 转播绑定 | 将监听地址写入 youtube_channels.json 的 youtubeWatchUrl,与 Pro 线路一一对应 |
| 弹幕抓取 | 直播进行中拉取聊天消息,支持关键词告警 |
| 桌面通知 | 推流未到达 YouTube、目标端下播、弹幕关键词命中时通知(需在 youLIVE 设置中开启) |
| 本地存储 | youlive SQLite 保存监听项、会话、告警历史 |
直播页 YouTube 目标端监控 面板在 Pro / 单路模式下自动同步监听地址。
摄像头直推
摄像头 页面向本机采集业务,采用独立 业务工作台 布局:
- 顶部 Hero:设备摘要、链路条(采集 → 编码 → YouTube)、配置清单与启停按钮
- 左侧:
CameraLocalPreview实时画面预览 - 下方三栏:设备选择、编码参数、YouTube 密钥与高级选项
- 推流中:右侧展示
WorkerMetrics(FFmpeg 速度 / 帧序号 / 业务状态)
进程名 camera_youtube,与抖音转播 youtube2 独立,请勿同时开启冲突 worker。
- 选择 视频设备 / 音频设备(
GET /camera/devices枚举 DirectShow)。 - 设置分辨率、帧率、码率;可选 NVENC。
- 填写 YouTube 串流密钥(复用
config/youtube.ini)。 - 点击 开始直播。
配置:config/camera_live.ini(模板 config/camera_live.example.ini)。
外部拉流转推
拉流 页面向已有流媒体管线:从 SRS、OBS、其他节点提供的地址拉流,转码或复制后推到 YouTube Live。布局与摄像头页一致的业务工作台:
- 顶部 Hero:拉流地址摘要、协议预设芯片、链路条(拉流 → 处理 → YouTube)、配置清单与启停
- 下方三栏:处理策略(协议/转码/码率)、YouTube 密钥、高级参数(SRT 延迟、重连、额外 FFmpeg 参数)
- 推流中:展示实时 FFmpeg 指标与业务状态
进程名 pull_stream_youtube。
支持协议
| 协议 | 示例 |
|---|---|
| RTMP / RTMPS | rtmp://127.0.0.1/live/stream |
| SRT | srt://host:10080?mode=caller&streamid=… |
| HLS | https://example.com/live/index.m3u8 |
| HTTP-FLV | http://127.0.0.1:8080/live/stream.flv |
| WebRTC (WHEP) | whep://…(需 FFmpeg 支持;否则经 SRS 转 RTMP/SRT) |
| UDP / MPEG-TS | udp://@:1234 |
处理模式
- 转码(默认):H.264 + AAC,兼容 YouTube
- 流复制:源须已是 H.264 + AAC,延迟更低
使用步骤
- 打开 拉流 页,填写拉流 URL(可点协议预设快速填入示例)。
- 选择协议(可自动识别)、转码/复制、码率与 NVENC。
- 填写 YouTube 串流密钥 → 开始转推。
- SRT 延迟、断线重连、额外 FFmpeg 参数等在「高级参数」中配置。
配置:config/pull_stream.ini(模板 config/pull_stream.example.ini)。
会员登录门禁(可选)
默认 关闭(无登录 UI,启动直播无账号要求)。
开启:系统 → 客户端与系统集成 → 会员登录限制
- 侧栏显示登录/注册;
- 开始/重启前需 PocketBase 会员(
X-PB-Token); - 状态键:
localStorage→pb_auth_gate_enabled。
功能开关
摄像头直推与外部拉流转推默认关闭(导航隐藏、相关 API 返回 404、PM2 忽略对应 worker),以降低首屏复杂度。需要时分别修改:
| 位置 | 常量 | 默认 |
|---|---|---|
electron/src/shared/featureFlags.ts |
SHOW_CAMERA_UI、SHOW_PULL_STREAM_UI |
false |
web2_feature_flags.py |
SHOW_CAMERA_FEATURE、SHOW_PULL_STREAM_FEATURE |
False |
前后端开关需保持一致。深链 --nav=camera / --nav=pull 在关闭时会回落到 直播 页。
开发与构建
| 组件 | 版本 |
|---|---|
| Node.js | 18+ |
| pnpm | 10+ |
| Python | 3.10+(开发机;发布包自带运行时) |
命令(在 electron/) |
说明 |
|---|---|
pnpm dev |
开发模式 |
pnpm build |
编译到 out/ |
pnpm prepare:runtime |
准备离线 Python/FFmpeg |
pnpm verify:runtime |
校验运行时 |
pnpm dist |
Windows 便携包 |
打包发布
cd electron
pnpm install
pnpm dist
产物:electron/dist/ 便携版。仓库根(除 electron/)打入 resources/backend/,用户机无需单独安装 Python。
环境变量
| 变量 | 说明 |
|---|---|
WEB2_PORT |
API 端口,默认 8001 |
WEB2_HOST |
监听地址(优先于 web2_bind_host.txt) |
WEB2_API_TOKEN |
API 密钥 |
WEB2_SUPERVISOR |
进程后端;Pro 多频道勿强制 PM2 |
VITE_API_BASE |
渲染进程 API 根(非 Electron 调试) |
VITE_WEB2_API_TOKEN |
开发用 Bearer |
故障排查
| 现象 | 处理 |
|---|---|
| 无法启动 / 服务未就绪 | 查 uvicorn 日志;确认 8001 未被占用;pnpm verify:runtime |
| YouTube 无画面 | 看 youtube_key_rejected;核对 Studio 密钥;检查 RTMPS 与代理 |
relay_slow / 掉帧 |
查 NVENC;降分辨率;关占用 CPU 的程序 |
| Pro 无法启动 | 勿 WEB2_SUPERVISOR=pm2;每频道密钥与 URL 已保存;检查配对冲突横幅 |
| 摄像头无画面 | 确认 DirectShow 设备名与 camera_live.ini 一致;尝试关闭 GPU 编码 |
| 拉流连接失败 | 核对协议与 URL;SRT 检查 caller/streamid;WebRTC 建议经 SRS 转 RTMP |
| 拉流有画面 YouTube 无 | 流复制模式下源可能非 H.264+AAC,改转码模式 |
| 目标端监听无数据 | 直播页确认 youtubeWatchUrl 已填写;youLIVE 桌面通知已开启 |
| Google 不可达 / 分流未生效 | 网络 页查看链路快检;配置 TUN/规则代理;填写 FFmpeg 代理 |
| IP 画像显示机房/代理 | 更换住宅出口或调整代理节点;关注 WebRTC 泄露提示 |
| IP 质量检测超时 | 外网 API 偶发慢;稍后刷新;检查本机防火墙 |
| 配置误改 | 直播页 历史备份 或 POST /config/restore |
日志:
- Worker:
.pm2/logs/或界面「当前直播日志」 - 客户端:系统页打开「客户端日志」目录
相关文档
| 文档 | 说明 |
|---|---|
| docs/YOUTUBE_LIVE_SEO.md | YouTube 直播 SEO |
| docs/REALTIME_AUDIO_DEMUCS.md | 实时音频 Demucs |
许可证
本项目继承上游 DouyinLiveRecorder 及相关依赖的许可证条款。使用第三方平台直播服务请遵守各平台服务条款。