#rsshub #youtube ## 实战笔记:本地部署 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 控制台操作时,如果有哪个菜单找不到,随时告诉我。