删除一些笔记,增加rsshub youtube订阅
This commit is contained in:
@@ -1,41 +0,0 @@
|
||||
# 别再拿 Opus 跑 Hermes 工作流了!一人公司云+端大模型架构
|
||||
|
||||
> 来源:Telegram频道「Hermes爱马仕&🦞OpenClaw小龙虾」
|
||||
> 作者:Claw小龙虾 @openclaw1024
|
||||
> 日期:2026-04-17
|
||||
|
||||
核心逻辑:**体力活留本地,脑力活上云端**
|
||||
|
||||
---
|
||||
|
||||
## 硬件底座
|
||||
|
||||
**Mac mini M4 (32GB)**
|
||||
统一内存神器。后台常驻挂两个量化小模型,剩下内存依然足够日常开发,性价比拉满。
|
||||
|
||||
---
|
||||
|
||||
## 三核模型矩阵
|
||||
|
||||
| 角色 | 模型 | 职责 |
|
||||
|------|------|------|
|
||||
| 前置路由 | Hermes 3 8B | 无情的API调度器。专做意图识别和吐结构化JSON去调外部工具。毫秒响应,不废token |
|
||||
| 本地主力 | Qwen3 14B | 干80%的脏活。日常代码脚手架、RAG数据清洗、文案初稿量产全包。无限重试,边际成本为零 |
|
||||
| 云端大脑 | Claude Opus | 零琐事消耗。只吃本地喂过来的高密度半成品,做极其复杂的架构推演和最终的个人Vibe注入。把最贵的API额度全花在刀刃上 |
|
||||
|
||||
---
|
||||
|
||||
## 调度与编排
|
||||
|
||||
- **写代码**:Codex CLI 底层指向本地 Qwen,开多分支跑终端自动化
|
||||
- **业务流**:n8n 或 Dify 把 Hermes → Qwen → Opus 串联起来,跑无人值守的闭环
|
||||
|
||||
---
|
||||
|
||||
## 结论
|
||||
|
||||
与其去卷一两个神级 Prompt,不如搭一套低成本、高流转的 Pipeline。一人公司的终局,就是把算力杠杆用到极致。
|
||||
|
||||
## 标签
|
||||
|
||||
#AI架构 #一人公司 #LLM #云端协同 #效率优化
|
||||
@@ -1,27 +0,0 @@
|
||||
---
|
||||
title: 2026-03-20 Obsidian 路径更新
|
||||
source:
|
||||
author: shenwei
|
||||
published:
|
||||
created:
|
||||
description:
|
||||
tags: []
|
||||
---
|
||||
|
||||
# 2026-03-20 Obsidian 路径更新
|
||||
|
||||
## 事件
|
||||
|
||||
知识库路径更新
|
||||
|
||||
## 新路径
|
||||
|
||||
- **知识库**: `/Users/weishen/Library/Mobile Documents/iCloud~md~obsidian/Documents/weishen/openclaw/knowledgebase`
|
||||
- **个人笔记**: `/Users/weishen/Library/Mobile Documents/iCloud~md~obsidian/Documents/weishen/openclaw/yunjiang`
|
||||
|
||||
## 备注
|
||||
|
||||
通过 iCloud Mobile Documents 同步,路径从本地 Obsidian 文件夹改为 iCloud 云端路径
|
||||
|
||||
---
|
||||
*Source: 云匠记忆更新*
|
||||
@@ -1,60 +0,0 @@
|
||||
---
|
||||
title: 2026-03-21 工作日志
|
||||
source:
|
||||
author: shenwei
|
||||
published:
|
||||
created:
|
||||
description:
|
||||
tags: []
|
||||
---
|
||||
|
||||
# 2026-03-21 工作日志
|
||||
|
||||
## 完成的任务
|
||||
|
||||
### 1. OpenCode 权限问题修复
|
||||
- 问题:OpenCode 无法读取/写入项目文件,权限被自动拒绝
|
||||
- 解决:修改 `~/.config/opencode/opencode.json`,添加正确的 permission 配置:
|
||||
```json
|
||||
"permission": {
|
||||
"read": "allow",
|
||||
"write": "allow",
|
||||
"edit": "allow",
|
||||
"bash": "allow"
|
||||
}
|
||||
```
|
||||
|
||||
### 2. n8n 环境变量配置优化
|
||||
- 路径:`~/Git/smart-trip-quote/`
|
||||
- 将 n8n 相关配置提取到 `.env` 文件:
|
||||
- `N8N_HOST=n8n.ishenwei.online`
|
||||
- `N8N_PROTOCOL=https`
|
||||
- `WEBHOOK_URL=http://127.0.0.1:62000/`
|
||||
- `NODE_ENV=production`
|
||||
- `N8N_SECURE_COOKIE=false`
|
||||
- 修改 `docker-compose.yml` 使用环境变量引用
|
||||
|
||||
### 3. Docker 网络配置
|
||||
- 在 `docker-compose.yml` 的 web 服务中添加:
|
||||
- `N8N_ITINERARY_OPTIMIZATION_WEBHOOK_URL`
|
||||
- `N8N_API_KEY`
|
||||
- 将 webhook URL 改为 Docker 内部地址:`http://stq-n8n:5678`
|
||||
|
||||
### 4. 日期格式兼容问题修复
|
||||
- 文件:`apps/api/serializers/webhook_serializers.py`
|
||||
- 添加 `FlexibleDateField` 和 `FlexibleDateTimeField` 类
|
||||
- 支持更多日期格式:%Y-%m-%d, %Y/%m/%d, ISO8601 等
|
||||
|
||||
### 5. 行程优化 webhook 调试
|
||||
- 在 `apps/admin/views.py` 添加调试日志
|
||||
- 确认 webhook 调用成功
|
||||
|
||||
## 知识点
|
||||
|
||||
- OpenCode 配置路径:`~/.config/opencode/opencode.json`
|
||||
- Docker 内部网络:容器间通过服务名通信
|
||||
- Django REST framework 序列化器:可自定义日期字段处理多种格式
|
||||
|
||||
## 待处理
|
||||
|
||||
- [ ] 清理调试日志
|
||||
@@ -1,89 +0,0 @@
|
||||
---
|
||||
title: 2026-03-22 开发任务汇总
|
||||
source:
|
||||
author: shenwei
|
||||
published:
|
||||
created:
|
||||
description:
|
||||
tags: []
|
||||
---
|
||||
|
||||
# 2026-03-22 开发任务汇总
|
||||
|
||||
## 完成的功能
|
||||
|
||||
### 1. EasyMDE Markdown 编辑器集成
|
||||
- 在 Django Admin 的行程详情页集成 EasyMDE 编辑器
|
||||
- 应用于 `description` 和 `itinerary_quote` 字段
|
||||
- 默认以预览模式显示
|
||||
|
||||
### 2. 行程报价 JSON 数据
|
||||
- 添加 `itinerary_quote_json_data` 字段
|
||||
- 包含 itinerary 基本信息、目的地、 travelers、attractions/hotels/restaurants 的 pricing_strategy
|
||||
- 调用行程报价 webhook 时自动更新并发送
|
||||
|
||||
### 3. 隐藏价格字段
|
||||
- 景点详情页:隐藏门票价格、货币、票种、预定网站、是否要预定
|
||||
- 酒店详情页:隐藏价格范围、货币、最低/最高价格
|
||||
- 餐厅详情页:隐藏人均价格
|
||||
|
||||
### 4. 行程预览页面优化
|
||||
- 使用 marked.js 在服务端解析 Markdown
|
||||
- PDF 导出时正确显示 Markdown 内容
|
||||
- 添加分页符:行程说明、每日行程、行程报价前
|
||||
|
||||
### 5. Word 导出优化
|
||||
- 修复日期占位符
|
||||
- Markdown 转纯文本
|
||||
|
||||
### 6. 每日行程内联列表优化
|
||||
- 合并时间显示:08:00~11:00
|
||||
- 调整列宽:操作/第几天列缩小,活动标题/描述列加宽
|
||||
- 酒店/餐厅显示名称+链接
|
||||
- 删除后刷新父窗口
|
||||
|
||||
### 7. 行程日期自动调整
|
||||
- 当 start_date 变化时,自动调整:
|
||||
- 结束日期 (end_date)
|
||||
- 目的地日期 (arrival_date, departure_date)
|
||||
- 每日行程日期 (schedule_date)
|
||||
|
||||
### 8. Requirement 模型更新
|
||||
- 添加 `district` 字段(区域和商圈)
|
||||
- 添加 `destination_cities` 等 JSON 字段的通用序列化方法
|
||||
|
||||
### 9. 通用 JSON 序列化方法
|
||||
- `json_array_to_string()` - JSON数组转逗号分隔字符串
|
||||
- `string_to_json_array()` - 逗号分隔字符串转JSON数组
|
||||
- 支持字段:destination_cities, district, preference_tags, must_visit_spots, avoid_activities
|
||||
|
||||
### 10. 代码提交
|
||||
- 多次提交到 GitHub,包含所有功能更新
|
||||
|
||||
## 修改的文件
|
||||
- apps/admin/itinerary.py
|
||||
- apps/admin/requirement.py
|
||||
- apps/models/itinerary.py
|
||||
- apps/models/requirement.py
|
||||
- apps/models/hotel.py
|
||||
- apps/models/restaurant.py
|
||||
- apps/api/views/export_views.py
|
||||
- apps/api/services/webhook_services.py
|
||||
- templates/admin/preview_itinerary.html
|
||||
- static/easymde/easymde.init.js
|
||||
- static/admin/css/custom_inline.css
|
||||
- apps/admin_ext/utils.py
|
||||
|
||||
## 经验教训
|
||||
- 通过 OpenCode 执行代码修改是铁律,必须遵守
|
||||
- Django Admin 集成第三方 JS 库需要添加 Media 配置
|
||||
- ForeignKey 访问实际 ID 需要用 `_id` 后缀
|
||||
- JSON 序列化需要注意格式(单引号 vs 双引号)
|
||||
|
||||
## 最新调试记录 (18:57-19:10)
|
||||
- 问题:Requirement 保存时报"请更正以下错误"
|
||||
- 排查:添加模块级 print 日志跟踪 Django 表单加载流程
|
||||
- 发现:日志显示 `Requirement.full_clean()` 被调用时抛出 `NameError: name 'sys' is not defined`
|
||||
- 根因:`apps/models/requirement.py` 中添加 `full_clean()` 重写时未导入 `sys`
|
||||
- 修复:添加 `import sys`
|
||||
- 结果:POST 返回 200,所有验证通过,问题解决!
|
||||
@@ -1,59 +0,0 @@
|
||||
---
|
||||
title: 2026-03-23 工作日志
|
||||
source:
|
||||
author: shenwei
|
||||
published:
|
||||
created:
|
||||
description:
|
||||
tags: []
|
||||
---
|
||||
|
||||
# 2026-03-23 工作日志
|
||||
|
||||
## 日期:2026-03-23
|
||||
## 星期:日
|
||||
|
||||
## 今日工作
|
||||
|
||||
### 1. 代码提交流程规范
|
||||
- **问题**: 习惯性自动 commit/push,违反用户审核流程
|
||||
- **解决**: 添加铁律 - 未经用户确认禁止 commit 和 push
|
||||
- **重要**: 两次违反规则后改正
|
||||
|
||||
### 2. 联系人字段保存(需求分析)
|
||||
- 修改 Requirement 模型和序列化器,添加 contact_email 字段
|
||||
- 修改 StructuredDataSerializer、RequirementWebhookSerializer 添加 contact_name/phone/email
|
||||
- 确保 n8n 返回的联系人数据正确保存到数据库
|
||||
|
||||
### 3. 行程优化 webhook
|
||||
- 尝试添加轮询逻辑(后回滚,方案不满意)
|
||||
- 优化 admin/views.py 返回 webhook callback 的 message
|
||||
- 修改 settings.py 添加 apps.admin logger
|
||||
|
||||
### 4. 代码重构
|
||||
- 将 N8nIntegrationService.send_to_n8n 移到 RequirementService
|
||||
- 超时配置改为读取 settings.WEBHOOK_TIMEOUT
|
||||
|
||||
### 5. Bug 修复
|
||||
- optimize_itinerary 和 quote_itinerary 的 timeout 默认值从 30 改为 120
|
||||
- 统一使用 settings 配置
|
||||
|
||||
### 6. 模板重构
|
||||
- 将 requirement.py 中的 JS 代码提取到独立模板 templates/admin/requirement_change_form.html
|
||||
|
||||
---
|
||||
|
||||
## Git 提交记录
|
||||
|
||||
| Commit | 描述 |
|
||||
|--------|------|
|
||||
| f12b7d6 | fix(admin): 修复 webhook timeout 默认值统一为 120秒 |
|
||||
| 3be5ef4 | refactor(admin): 重构需求详情页按钮逻辑 |
|
||||
|
||||
---
|
||||
|
||||
## 经验教训
|
||||
|
||||
1. **Git 流程**: 必须等用户审核后再 commit/push
|
||||
2. **N8n 数据流**: 确认数据来源是顶层还是 structured_data
|
||||
3. **Django Settings**: 使用 getattr 读取配置,设置合理的默认值
|
||||
@@ -1,87 +0,0 @@
|
||||
---
|
||||
title: 2026-03-29 工作日志
|
||||
source:
|
||||
author: shenwei
|
||||
published:
|
||||
created:
|
||||
description:
|
||||
tags: []
|
||||
---
|
||||
|
||||
# 2026-03-29 工作日志
|
||||
|
||||
## 待办
|
||||
|
||||
- [ ] ...
|
||||
|
||||
---
|
||||
|
||||
## 完成事项
|
||||
|
||||
### 1. N8N 内容转化流水线 - 读取设计方案
|
||||
- 读取了 `yunce/n8n-content-pipeline-workflow.md`
|
||||
- 了解了完整的工作流设计(Webhook → 读取笔记 → AI翻译 → 配图 → 写回 → 回调)
|
||||
- 制定了实施计划(分三阶段:准备、创建、测试)
|
||||
|
||||
### 2. N8N 工具指南编写
|
||||
- 读取了 N8N 技能 SKILL.md
|
||||
- 获取了 N8N 配置(Base URL: https://n8n.ishenwei.online)
|
||||
- 编写了 N8N 工具指南并添加到 TOOLS.md
|
||||
|
||||
### 3. 文件编辑问题修复
|
||||
- 发现 edit 工具依赖精确文本匹配的陷阱
|
||||
- 改用 exec + echo 追加内容解决问题
|
||||
- 已记录到 MEMORY.md
|
||||
|
||||
### 4. N8N 内容转化流水线实施 ✅
|
||||
- **问题发现**:n8n 运行在 Docker 容器中,无法直接访问 Mac mini 文件系统
|
||||
- **解决方案**:
|
||||
- 在 Docker Compose 中添加 volume 映射:`./n8n_data/files:/home/node/.n8n-files`
|
||||
- OpenClaw 先复制文件到 N8N 可访问目录,再触发工作流
|
||||
- **工作流版本**:
|
||||
- v1/v2/v3: 失败(各种配置问题)
|
||||
- v4: 成功!使用 DeepSeek API + Webhook 测试模式
|
||||
- **最终测试**:成功生成多平台内容(公众号、X/Twitter、视频脚本)
|
||||
|
||||
### 5. Docker 路径更新
|
||||
- 更新 TOOLS.md 中的 Docker 命令路径
|
||||
- Mac mini Docker 路径:`/Applications/Docker.app/Contents/Resources/bin/docker`
|
||||
|
||||
### 6. Telegram 测试工作流
|
||||
- 创建并测试 Telegram 通知工作流
|
||||
- 成功实现 OpenClaw → N8N Webhook → Telegram 通知的闭环
|
||||
|
||||
---
|
||||
|
||||
## 今日经验教训
|
||||
|
||||
### 1. N8N + Docker 文件访问问题
|
||||
- n8n 在 Docker 中运行时,容器内无法直接访问宿主机的文件系统
|
||||
- **解决方案**:通过 volume 映射,让 N8N 容器可以访问特定目录
|
||||
- **配置**:`./n8n_data/files:/home/node/.n8n-files`
|
||||
|
||||
### 2. N8N 工作流调试技巧
|
||||
- 遇到问题先创建最简单的测试工作流,逐步排查
|
||||
- 测试 webhook 用 test 模式(/webhook-test/)比生产模式(/webhook/)更可靠
|
||||
- 查看执行记录和容器日志是排查问题的关键
|
||||
|
||||
### 3. 工作流版本迭代经验
|
||||
- v1: 直接创建,凭证问题失败
|
||||
- v2: 简化流程,但 AI 节点配置问题
|
||||
- v3: DeepSeek API 凭证问题
|
||||
- v4: 使用 langchain DeepSeek 节点 + test webhook 模式成功
|
||||
|
||||
---
|
||||
|
||||
## 待办
|
||||
|
||||
- [ ] 云测更新需求文档后,设计 V5 版本
|
||||
- [ ] V5 在 v4 基础上修改,不从头开始
|
||||
|
||||
---
|
||||
|
||||
## 明日计划
|
||||
|
||||
1. 读取云测更新的需求文档
|
||||
2. 基于 v4 技术基础设计 V5 版本
|
||||
3. 继续完善内容转化流水线
|
||||
@@ -1,87 +0,0 @@
|
||||
---
|
||||
title: 2026-04-08 Daily Memory
|
||||
source:
|
||||
author: shenwei
|
||||
published:
|
||||
created:
|
||||
description:
|
||||
tags: []
|
||||
---
|
||||
|
||||
# 2026-04-08 Daily Memory
|
||||
|
||||
## Session Start
|
||||
|
||||
- New session started 2026-04-08 9:12 PM (GMT+8)
|
||||
- 模型: minimax/MiniMax-M2.7
|
||||
|
||||
## 今日工作
|
||||
|
||||
### agent-base 项目(Ubuntu2)
|
||||
完成以下工作:
|
||||
|
||||
1. **intcomma 模板错误修复**
|
||||
- 根因:磁盘源文件有 `{% load humanize %}` 但 Docker 镜像构建用了缓存旧层
|
||||
- 修复:通过 `docker commit` 将运行中容器的修正持久化到 `agent-base-web:latest` 镜像
|
||||
- 修复后重启容器:`docker compose restart`
|
||||
|
||||
2. **admin 密码重置**
|
||||
- Django shell 重置:`user.set_password('admin123'); user.save()`
|
||||
|
||||
3. **全页面遍历测试脚本**
|
||||
- 路径:`/home/shenwei/docker/agent-base/scripts/test_all_pages.py`
|
||||
- 本地副本:`~/.openclaw/workspace-agent-xingjiang/scripts/test_all_pages.py`
|
||||
- 使用 agent-browser 进行浏览器自动化
|
||||
- 测试结果:9/9 全部通过
|
||||
- 覆盖页面:登录页、Admin首页、Session列表、Message列表、ToolCall列表、日报列表、日报详情(2个日期)、API端点
|
||||
|
||||
### 测试脚本关键发现
|
||||
- Django admin 中文界面:用户名输入框 name="用户名:",密码框 name="密码:",按钮 name="登录"
|
||||
- agent-browser `fill` 命令可以直接填入中文 name 的元素
|
||||
- `cleanup_all()` 会清除会话状态,`ensure_logged_in()` 会自动检测并重新登录
|
||||
- `check_page_errors()` 应只检测 role=alert/alertdialog,避免将普通内容误报为错误
|
||||
|
||||
## 待办事项
|
||||
|
||||
1. **Ubuntu2 景点数据导入需求确认**
|
||||
- smart-trip-quote 在 Ubuntu2 的部署情况待确认
|
||||
- 是否需要在 Ubuntu2 也执行景点数据导入
|
||||
|
||||
2. **云测 v5 工作流设计跟进**
|
||||
- 云测更新需求文档后,基于 v4 设计 V5 版本
|
||||
- 上次跟进:2026-03-29,需求文档状态待确认
|
||||
|
||||
3. **景点数据生产服务器同步方案**
|
||||
- 58条景区数据目前存在于 Mac mini + Ubuntu1
|
||||
- 生产环境是否需要同步
|
||||
|
||||
## Learnings
|
||||
|
||||
### agent-browser 关键发现
|
||||
- `agent-browser --session <name>` 使用命名会话,会话间状态不共享
|
||||
- `agent-browser snapshot -i --json` 获取可交互元素快照
|
||||
- `agent-browser fill <ref> <text>` 填入表单
|
||||
- `agent-browser click <ref>` 点击元素
|
||||
- `agent-browser state save <path>` 保存会话状态到文件
|
||||
- `agent-browser state load <path>` 从文件恢复会话(需先 open 任意页面)
|
||||
- `agent-browser get url --json` 获取当前 URL
|
||||
- `agent-browser get title --json` 获取页面标题
|
||||
- `agent-browser screenshot <path>` 截图
|
||||
- `agent-browser close` 关闭当前会话
|
||||
- `agent-browser close --all` 关闭所有会话
|
||||
- Django admin 中文登录页:用户名/密码/登录按钮的 name 属性是中文
|
||||
|
||||
### agent-base 项目状态(2026-04-08)
|
||||
- 应用运行:http://192.168.3.45:8765
|
||||
- admin 登录:admin / admin123
|
||||
- 数据库:PostgreSQL(TimescaleDB),容器名 `agentbase-db-1`
|
||||
- Web 容器名:`agentbase-web`
|
||||
- 镜像已用 `docker commit` 修复(包含 `{% load humanize %}`)
|
||||
|
||||
## Pattern 验证
|
||||
|
||||
- holiday-silence-cycle 已完整验证:
|
||||
- 节前赶工期:4/02 完成58条数据导入 ✓
|
||||
- 假期静默:4/04~4/06 完全静默 ✓
|
||||
- 节后恢复预期:4/07 用户未出现 ✓
|
||||
- Pattern-Key: holiday-silence-cycle(已多次验证)
|
||||
75
raw/Home Office/实战笔记:本地部署 RSSHub 并获取 YouTube 订阅.md
Normal file
75
raw/Home Office/实战笔记:本地部署 RSSHub 并获取 YouTube 订阅.md
Normal file
@@ -0,0 +1,75 @@
|
||||
|
||||
#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 控制台操作时,如果有哪个菜单找不到,随时告诉我。
|
||||
Reference in New Issue
Block a user