同步 Pro 频道配置并补充 README 网络/IP 章节
更新频道 2 的 YouTube 密钥与抖音源站列表;完善网络诊断、IP 画像与功能开关文档。 Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
49
README.md
49
README.md
@@ -17,6 +17,8 @@ Windows 桌面端 **抖音 → YouTube 无人转播** 控制台:内置 Electro
|
|||||||
- [系统架构](#系统架构)
|
- [系统架构](#系统架构)
|
||||||
- [仓库结构](#仓库结构)
|
- [仓库结构](#仓库结构)
|
||||||
- [界面与功能](#界面与功能)
|
- [界面与功能](#界面与功能)
|
||||||
|
- [网络诊断与 IP 画像](#网络诊断与-ip-画像)
|
||||||
|
- [功能开关](#功能开关)
|
||||||
- [web2 API](#web2-api)
|
- [web2 API](#web2-api)
|
||||||
- [配置与数据路径](#配置与数据路径)
|
- [配置与数据路径](#配置与数据路径)
|
||||||
- [单频道与多频道 Pro](#单频道与多频道-pro)
|
- [单频道与多频道 Pro](#单频道与多频道-pro)
|
||||||
@@ -126,6 +128,9 @@ uvicorn web2:app --host 127.0.0.1 --port 8001 --reload
|
|||||||
| 多频道 | `web2_relay_pro.py` | `youtube_channels.json`、`config/relay_pro/` |
|
| 多频道 | `web2_relay_pro.py` | `youtube_channels.json`、`config/relay_pro/` |
|
||||||
| 摄像头 | `web2_camera.py`, `camera_youtube.py` | DirectShow 采集、NVENC 推流 |
|
| 摄像头 | `web2_camera.py`, `camera_youtube.py` | DirectShow 采集、NVENC 推流 |
|
||||||
| 拉流 | `web2_pull_stream.py`, `pull_stream_youtube.py` | RTMP/SRT/HLS/FLV/WHEP 拉流转推 |
|
| 拉流 | `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 监听、弹幕、账号、桌面通知 |
|
| youLIVE | `electron/src/youlive/` | YouTube 监听、弹幕、账号、桌面通知 |
|
||||||
| 主进程 | `electron/src/main/` | 运行时打包、IPC、本地 DB |
|
| 主进程 | `electron/src/main/` | 运行时打包、IPC、本地 DB |
|
||||||
| 界面 | `electron/src/renderer/` | React SPA |
|
| 界面 | `electron/src/renderer/` | React SPA |
|
||||||
@@ -156,6 +161,7 @@ uvicorn web2:app --host 127.0.0.1 --port 8001 --reload
|
|||||||
├── pull_stream_youtube.py # 外部拉流→YouTube worker
|
├── pull_stream_youtube.py # 外部拉流→YouTube worker
|
||||||
├── douyin_youtube_ffplay.py # 抖音→YouTube 转播
|
├── douyin_youtube_ffplay.py # 抖音→YouTube 转播
|
||||||
├── youtube2.py # YouTube worker
|
├── youtube2.py # YouTube worker
|
||||||
|
├── third_party/IPQuality/ # IP 质量检测参考脚本(ip.sh)
|
||||||
├── docs/ # 补充文档
|
├── docs/ # 补充文档
|
||||||
└── requirements.txt
|
└── requirements.txt
|
||||||
```
|
```
|
||||||
@@ -174,7 +180,9 @@ uvicorn web2:app --host 127.0.0.1 --port 8001 --reload
|
|||||||
|
|
||||||
**直播** 页面向抖音无人转播业务,含 Pro 多频道、三层链路诊断、转播历史等。
|
**直播** 页面向抖音无人转播业务,含 Pro 多频道、三层链路诊断、转播历史等。
|
||||||
|
|
||||||
**摄像头** / **拉流** 页各自独立 UI 与工作流,不复用直播页布局;侧栏深链可直达(见下表)。
|
**摄像头** / **拉流** 页各自独立 UI 与工作流,不复用直播页布局;侧栏深链可直达(见下表)。默认构建中这两项为**隐藏**状态,见 [功能开关](#功能开关)。
|
||||||
|
|
||||||
|
**网络** 页采用链路管线布局:源站 / 分流 / YouTube / 上行四段可视化,配合实时测速曲线、境内外带宽对比、代理设置,以及 IP 画像与 IP 质量面板(见 [网络诊断与 IP 画像](#网络诊断与-ip-画像))。
|
||||||
|
|
||||||
| 深链参数 | 页面 | 说明 |
|
| 深链参数 | 页面 | 说明 |
|
||||||
|----------|------|------|
|
|----------|------|------|
|
||||||
@@ -217,6 +225,45 @@ uvicorn web2:app --host 127.0.0.1 --port 8001 --reload
|
|||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
|
## 网络诊断与 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、ipify
|
||||||
|
- `web2_ip_quality.py`:Python 化集成 [xykt/IPQuality](https://github.com/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
|
## web2 API
|
||||||
|
|
||||||
默认:`http://127.0.0.1:8001`(`WEB2_PORT` 可改)。
|
默认:`http://127.0.0.1:8001`(`WEB2_PORT` 可改)。
|
||||||
|
|||||||
@@ -1 +1,2 @@
|
|||||||
https://live.douyin.com/11664523242
|
https://live.douyin.com/510162746831,主播: 海阳市叁娃面食店
|
||||||
|
https://live.douyin.com/622059369101,主播: 于小胖的小摊日记
|
||||||
|
|||||||
@@ -6,7 +6,7 @@
|
|||||||
"id": "ch_1774436412",
|
"id": "ch_1774436412",
|
||||||
"name": "频道 2",
|
"name": "频道 2",
|
||||||
"douyinUrl": "",
|
"douyinUrl": "",
|
||||||
"youtubeKey": "112313123124124124124124124df"
|
"youtubeKey": "3pj0-q9k7-surm-kgc0-ce3p2"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"id": "ch_1774436414",
|
"id": "ch_1774436414",
|
||||||
|
|||||||
Reference in New Issue
Block a user