--- title: "Blogwatcher Daily 技能收藏" type: source tags: [rss, automation, hermes-agent, skill] date: 2026-04-18 --- ## Source File - [[raw/Skills/blogwatcher-daily收藏.md]] ## Summary(用中文描述) - 核心主题:Hermes Agent 自定义技能 blogwatcher-daily,实现 RSS/YouTube 订阅自动化监控与每日摘要生成 - 问题域:个人资讯获取与信息聚合 - 方法/机制:RSSHub 转换 YouTube 频道为 RSS + feedparser 解析 + SQLite 去重 + Cron 定时调度 - 结论/价值:每天自动整理 31 个订阅频道的新文章,减少信息过载,提高阅读效率 ## Key Claims(用中文描述) - Hermes Agent 通过 blogwatcher-daily 技能实现 31 个 RSS/YouTube 频道的自动化监控 - RSSHub 将 YouTube Channel ID 转换为 RSS Feed,解决 YouTube 订阅源获取问题 - feedparser 库支持 RSS 1.0/2.0/Atom 格式,自动处理 GB2312/GBK/ISO-8859-1 编码和畸形 XML - SQLite 数据库按 URL 排重,已读链接不重复写入,避免信息冗余 - Cron 定时任务(每天早上 6:00)自动调用 skill 脚本,结果推送 Telegram 通知 ## Key Quotes > "RSS 解析库:feedparser(支持 RSS 1.0/2.0/Atom、GB2312/GBK 编码、畸形 XML)" — 技术选型说明 > "追加写入:日常扫描正确追加到日报,不覆盖历史内容" — 数据持久化策略 > "wikiHow 禁止所有爬虫,无法抓取,永远返回 0 篇" — 已知的限制 ## Key Concepts - [[RSSHub]]:开源 RSS 生成器,将无 RSS 的网站/YouTube 频道转为 RSS Feed,部署在 `http://192.168.3.45:1200` - [[feedparser]]:Python RSS/Atom 解析库,支持多种编码和畸形 XML,是本技能的核心解析引擎 - [[SQLite 去重机制]]:通过 SQLite 数据库按 URL 排重,已读链接不重复写入每日日报 - [[Hermes Agent]]:AI Agent 平台,blogwatcher-daily 是其自定义技能之一,通过 cron 定时调度执行 - [[Cron 定时任务]]:每天 `0 6 * * *` 执行,Job ID `ecdd35bb7df3`,通过 `deliver=origin` 推送 Telegram 通知 ## Key Entities - [[Hermes Agent]]:技能运行平台,提供 cron 调度和 Telegram 通知能力 - RSSHub(`http://192.168.3.45:1200`):本地部署的 RSSHub 实例,用于转换 YouTube 频道为 RSS - blogwatcher-daily 脚本:主脚本位于 `~/.hermes/skills/custom/blogwatcher-daily/scripts/blogwatcher-daily.py` ## Connections - [[Hermes Agent]] ← runs ← [[blogwatcher-daily]] - [[blogwatcher-daily]] ← uses ← [[RSSHub]] - [[blogwatcher-daily]] ← uses ← [[feedparser]] - [[blogwatcher-daily]] ← stores state in ← [[SQLite 去重机制]] - [[blogwatcher-daily]] ← scheduled by ← [[Cron 定时任务]] ## Contradictions - 暂无发现与其他 Wiki 页面的冲突 ## 技术细节 | 维度 | 技术选型 | |------|----------| | RSS 解析 | feedparser(支持 RSS 1.0/2.0/Atom) | | YouTube 支持 | RSSHub(`http://192.168.3.45:1200`) | | 去重存储 | SQLite(`blogwatcher.db`) | | 编码处理 | 自动检测 GB2312、GBK、ISO-8859-1 | | 定时调度 | Cron `0 6 * * *` | | 通知方式 | Telegram(`deliver=origin`) | ## 已解决的问题 - ✅ RSS 1.0 支持:Slashdot 使用 RSS 1.0,feedparser 解决 - ✅ GB2312 乱码:feedparser 自动处理 - ✅ 畸形 XML:feedparser 兜底 - ✅ YouTube RSSHub:绕过 YouTube 直接访问限制 - ✅ 追加写入:日报模式不覆盖历史 - ✅ 独立 force-all:强制回扫写入独立文件 ## 已知限制 - wikiHow 禁止爬虫,永远返回 0 篇 - FeedBurner 频道(電腦玩物、阿榮福利味)RSSHub 可能不稳定 - `--all` 强制回扫不要加入 cron,仅作例外操作