76 lines
2.7 KiB
Markdown
76 lines
2.7 KiB
Markdown
|
||
#rsshub #youtube #http-proxy #https-proxy
|
||
|
||
## 实战笔记:本地部署 RSSHub 并获取 YouTube 订阅
|
||
|
||
### 一、 核心架构
|
||
|
||
- **宿主机**:Ubuntu Server (`192.168.3.45`)。
|
||
- **部署工具**:Docker Compose。
|
||
- **关键组件**:需要配置 `YOUTUBE_KEY` 避开网页爬虫限制,并通过 `PROXY_URL` 实现容器内科学上网。
|
||
---
|
||
|
||
### 二、 核心步骤:申请 YouTube Data API Key
|
||
|
||
这是解决 YouTube 订阅最稳定的方案,每月有足够的免费额度供个人使用。
|
||
|
||
1. **创建项目**:
|
||
- 访问 [Google Cloud Console](https://console.cloud.google.com/)。
|
||
- 点击顶部项目选择框,选择 **"新建项目" (New Project)**,命名为 `My-RSSHub`。
|
||
2. **启用 API**:
|
||
- 在左侧导航栏选择 **"API 和服务" > "库" (Library)**。
|
||
- 搜索 `YouTube Data API v3`,点击进入并点击 **"启用" (Enable)**。
|
||
3. **生成凭据 (Key)**:
|
||
- 回到 **"API 和服务" > "凭据" (Credentials)** 页面。
|
||
- 点击 **"+ 创建凭据" > "API 密钥" (API Key)**。
|
||
- 系统会弹出一个字符串(如 `AIzaSy...`),这就是你的 `YOUTUBE_KEY`,请立即复制保存。
|
||
4. **(可选)设置限制**:
|
||
- 为了安全,建议点击该 Key 进行编辑,在 "API 限制" 中选择 "限制密钥",并勾选 `YouTube Data API v3`。这样即使 Key 泄露,也只能用于 YouTube 抓取。
|
||
|
||
|
||
---
|
||
|
||
### 三、 部署与配置
|
||
|
||
#### 1. 编辑 `docker-compose.yml`
|
||
在你的 Ubuntu 宿主机上,确保环境变量包含以下内容:
|
||
YAML
|
||
|
||
```
|
||
services:
|
||
rsshub:
|
||
image: diygod/rsshub
|
||
network_mode: host
|
||
environment:
|
||
- YOUTUBE_KEY=AIzaSyDWi_y8m2zJI8G-cOl4A8TWPBb9o2m_geU
|
||
- PORT=1200
|
||
- HTTP_PROXY=http://127.0.0.1:10808
|
||
- HTTPS_PROXY=http://127.0.0.1:10808
|
||
- NO_PROXY=localhost,127.0.0.1
|
||
volumes:
|
||
- /etc/ssl/certs/ca-certificates.crt:/etc/ssl/certs/ca-certificates.crt:ro
|
||
restart: unless-stopped
|
||
```
|
||
|
||
#### 2. 解决防火墙问题
|
||
|
||
如果局域网仍无法访问 `192.168.3.45:1200`,请在 Ubuntu 上运行:
|
||
`sudo ufw allow 1200/tcp`
|
||
|
||
---
|
||
### 四、 订阅转化与自动化思路
|
||
|
||
- **URL 转换格式**:
|
||
- **频道**:`http://192.168.3.45:1200/youtube/channel/频道ID`
|
||
- **用户**:`http://192.168.3.45:1200/youtube/user/用户名`
|
||
---
|
||
|
||
### 五、 验证测试
|
||
|
||
配置完成后,重启容器:`docker-compose up -d`。
|
||
|
||
访问:`http://192.168.3.45:1200/youtube/channel/UC4JX40jDee_tINbkjycV4Sg`。
|
||
|
||
如果页面能正常显示 XML 列表且没有 `fetch failed` 错误,说明配置成功。
|
||
|
||
这个 API 申请流程通常几分钟就能搞定。你在 Google Cloud 控制台操作时,如果有哪个菜单找不到,随时告诉我。 |