Let's Go RSS - Agrégateur RSS

VérifiéPrudence

Agrégateur RSS léger multi-plateforme pour YouTube, Vimeo, Behance, Twitter, Bilibili, Weibo, Douyin, Xiaohongshu, etc. Supporte la déduplication incrémentale et le classement IA.

Spar Skills Guide Bot
ContenuIntermédiaire
23/07/2026
Claude CodeCursorCodex
#rss#content-aggregation#social-media#cli#automation

Recommandé pour

Synthèse automatique

Un gestionnaire d'abonnements RSS en ligne de commande qui agrège les mises à jour de YouTube, Vimeo, Behance, Twitter/X, Zhihu Knowledge Planet, Bilibili, Weibo, Douyin et Xiaohongshu, avec déduplication incrémentale et classification par IA.

Points forts

  • Couvre une dizaine de plateformes via des stratégies multiples (RSS natif, yt-dlp, API de syndication, RSSHub, sessions Chrome)
  • Sépare la collecte (cron en arrière-plan) de la lecture du cache, ce qui permet à un bot de pousser un digest instantanément sans risque de timeout
  • Fournit des commandes d'exploitation concrètes : --doctor, --auto-fix, et un RSSHub auto-géré sur le port 1201
  • Automatise la connexion Playwright aux plateformes nécessitant une session (Twitter, Xiaohongshu) en une seule commande

Limites

  • Plusieurs plateformes chinoises sont marquées comme instables ou nécessitant une configuration lourde (Chrome avec remote debugging, RSSHub, npm install d'environ 50 Mo)
  • Dépend fortement de services tiers (RSSHub, API de syndication, yt-dlp) qui peuvent casser sans préavis
  • La classification IA nécessite une clé ANTHROPIC_API_KEY dans le fichier .env
Quand l'utiliser

À utiliser lorsqu'un agent doit suivre et résumer les nouvelles publications de créateurs sur plusieurs plateformes sociales et en pousser un digest périodique.

Quand l'éviter

À éviter si vous cherchez un lecteur RSS graphique pour une consultation humaine interactive, ou si vous ne pouvez pas faire tourner un service RSSHub et un Chrome local.

Analyse de sécurité

Prudence
Score qualité84/100

The skill is a legitimate RSS aggregation tool with no signs of exfiltration, obfuscated payloads, or destructive commands. Its risk comes from using powerful local tooling: browser automation, remote debugging, npm installs, cron jobs, API keys, and account login flows. These are appropriate for the stated purpose but warrant caution.

Points d'attention
  • •Uses network access, Python scripts, npm install, and downloads Chromium/Chrome for Testing (~200MB), which are powerful but legitimate for RSS aggregation.
  • •Guides the agent to open a visible Chromium login flow for Twitter/Xiaohongshu and persist platform choices in .env; this touches user accounts and browser sessions.
  • •Relies on Chrome remote debugging and logged-in Chrome sessions for some platforms, increasing exposure if misconfigured.
  • •Stores ANTHROPIC_API_KEY in .env and runs cron jobs/background services; secrets handling and process management should be reviewed before use.
  • •--auto-fix restarts RSSHub and clears stale locks; not destructive to user data but modifies local runtime state.
Comment cette analyse est faite

Exemples

Subscribe to a creator
Add https://www.youtube.com/@MatthewEncina and https://vimeo.com/xkstudio to my lets-go-rss subscriptions, then show me the list.
Set up automated digest
Configure lets-go-rss so it updates every two hours in the background via cron and write the bot push script that only reads the cached --status report.
Fix broken feeds
Run the lets-go-rss health check, tell me which platforms are failing on auth, and walk me through logging into Twitter so the skill can enable the Playwright tier for it.

name: lets-go-rss description: 轻量级全平台 RSS 订阅管理器。一键聚合 YouTube、Vimeo、Behance、Twitter/X、知识星球、B站、微博、抖音、小红书的内容更新,支持增量去重和 AI 智能分类。

Let's Go RSS

全平台 RSS 内容聚合工具,支持增量更新、去重、AI 分类。

快速使用

添加订阅

python3 scripts/lets_go_rss.py --add "https://www.youtube.com/@MatthewEncina"
python3 scripts/lets_go_rss.py --add "https://vimeo.com/xkstudio"
python3 scripts/lets_go_rss.py --add "https://www.behance.net/yokohara6e48"

更新全部(耗时操作,建议用 crontab 后台跑)

python3 scripts/lets_go_rss.py --update --digest --skip-setup

读取缓存报告(Bot 推送用,瞬间返回)

python3 scripts/lets_go_rss.py --status

查看订阅

python3 scripts/lets_go_rss.py --list
python3 scripts/lets_go_rss.py --stats

查看全量概览(所有订阅最新一条)

python3 scripts/lets_go_rss.py --overview

健康体检 & 自动修复

python3 scripts/lets_go_rss.py --doctor      # 只打印状态
python3 scripts/lets_go_rss.py --auto-fix    # 自动重启挂掉的 RSSHub、清僵尸锁

Playwright tier(绕过平台反爬)

RSS_PLAYWRIGHT_PLATFORMS 控制哪些平台走 skill 自管的 Chromium(Playwright)—— 用真浏览器访问,继承"正常用户"反爬声誉。

默认已为 Bilibili 开启(B 站无需登录,直接工作)。Twitter / 小红书平台强制要求登录态。

Agent 应主动编排的一次性登录流程

当 --doctor 或摘要报告显示 Twitter/XHS 源因 auth 失败时,agent 应主动提议用户让你帮他完成登录,而不是让用户自己去跑命令。标准套路:

  1. AskUserQuestion 问用户:要不要现在登录 Twitter / 小红书(多选)
  2. 对用户勾选的每个平台,运行:
    python3 scripts/lets_go_rss.py --login <twitter|xiaohongshu>
    
    这一条命令会依次:① 打开可见 Chromium 到登录页 → ② 等用户关窗 → ③ 自动拉一条该平台已有订阅验证登录成功 → ④ 自动把该平台写进 .env 的 RSS_PLAYWRIGHT_PLATFORMS
  3. 最后跑一次 --doctor 或一轮冒烟,确认失败数下降

用户看到的步骤极简:只需要在弹出的 Chromium 里登录自己的账号,登完关窗,其他全部由 agent 搞定。

Bot 推送最佳实践

问题:--update 需要 30-60 秒抓取全部订阅,Bot 定时任务可能超时。

方案:抓取和推送解耦——crontab 提前跑更新,Bot 只读缓存文件。

稳定命令(推荐)

# 后台更新(内置超时参数 + 并发防重入锁)
./scripts/run_update_cron.sh

# Bot 推送只读缓存
./scripts/run_status_push.sh
# crontab -e
# 每 2 小时的 55 分更新(提前 5 分钟准备好数据)
55 */2 * * * cd /path/to/lets-go-rss && ./scripts/run_update_cron.sh >> /tmp/rss_cron.log 2>&1

# Bot 在整点读缓存推送(瞬间完成)
0 */2 * * * cd /path/to/lets-go-rss && ./scripts/run_status_push.sh

Bot 只需调用 --status,该命令直接读取 assets/latest_update.md 并输出内容,无需网络请求、无需等待。

平台支持

| 平台 | 主策略 | 备注 | |------|--------|:----:| | Vimeo | Native RSS | ✅ | | Behance | Native RSS | ✅ | | YouTube | yt-dlp / Atom feed fallback | ✅ | | 微博 | RSSHub → Chrome session fallback | ⚠️ 需本机 Chrome 开启 remote debugging | | 抖音 | RSSHub | ⚠️ 当前不稳定 | | B站 | RSSHub | ⚠️ 需配置 | | 小红书 | Chrome session primary | ⚠️ 需本机 Chrome 已登录且开启 remote debugging | | Twitter/X | Syndication API | ✅ | | 知识星球 | pub-api (公开) | ✅ |

安装依赖

# 基础(YouTube + Vimeo + Behance + Twitter syndication + Zsxq pub-api)
pip install httpx yt-dlp anthropic

# 配置环境变量:把 ANTHROPIC_API_KEY 写进 .env(已 git-ignore)
cp .env.example .env && $EDITOR .env

# 中国平台(B站/微博/抖音/小红书 RSSHub 路由)
# 方式 A(推荐):skill 自管的 RSSHub,首次 start 自动 npm install
python3 scripts/rsshub_manager.py start
# 方式 B:若已经跑了 ready-cowork 的 :1200 RSSHub,skill 会自动作为 fallback
# 方式 C:自己起 Docker rsshub 并通过 RSSHUB_BASE_URL_FALLBACK 指过去

# 可选:启用真实 Chrome 会话抓取(微博 / 小红书推荐)
# 1) 打开 Chrome
# 2) 访问 chrome://inspect/#remote-debugging
# 3) 勾选 Allow remote debugging for this browser instance

RSSHub 自管与升级

首次 rsshub_manager.py start 会:

  1. 在 <skill>/node_modules/rsshub 下 npm install rsshub@latest(~50MB,首次 1-2 分钟)
  2. 如未装,自动下载 puppeteer 要求的 Chrome for Testing(约 200MB 到 ~/.cache/puppeteer)
  3. 启动 scripts/rsshub_worker.mjs 监听 :1201,写 pidfile 到 assets/.rsshub.pid

后续 run_update_cron.sh 在每次 cron 前都会调 start-if-needed(最多等 10 秒),保证 :1201 健在。每周一早晨 06:xx 额外调 update 拉最新 RSSHub(后台跑,不阻塞该轮 cron)。

# 常用运维
python3 scripts/rsshub_manager.py status
python3 scripts/rsshub_manager.py restart
python3 scripts/rsshub_manager.py update      # npm install + restart
python3 scripts/rsshub_manager.py logs        # tail worker log

Bot 汇报规范(⚠️ 必须严格遵守)

当 Bot 需要推送 RSS 更新时,只需执行一个命令,然后原样转发输出。

完整流程(仅 2 步)

步骤 1: 运行命令
python3 scripts/lets_go_rss.py --status

步骤 2: 把命令输出原封不动地作为你的回复发送

就这么简单。不需要任何额外处理。

输出格式说明

--status 命令会输出类似以下格式的纯文本(自动生成,不需要 Bot 构造):

📡 RSS 增量更新 | 2026-02-21 18:23 | 3 个账号有新内容

🆕 📺 影视飓风  02-18 03:00
   [【4K限免】你的新设备能顶住吗?](https://t.bilibili.com/1170572725010300960)

🆕 🐦 歸藏(guizang.ai)  02-14 17:15
   [Tweet by @op7418](https://x.com/op7418/status/2022721414462374031)

仅显示有新内容的账号,无更新时显示"暂无新更新"。若需查看所有订阅的全量状态,使用 --overview。

❌ 禁止行为

  • ❌ 不得重新排版:不可以按平台分组、加表格、加标题 # 层级
  • ❌ 不得分多条消息:所有内容必须在一条消息内发送
  • ❌ 不得删除/修改链接:标题中的链接不可去掉或替换
  • ❌ 不得添加前言后语:不要加"以下是 RSS 更新"等多余文字
  • ❌ 不得执行 --update:推送时只读缓存,不做抓取

⏸️ 暂无更新时的处理

当 --status 输出中显示"暂无新更新"或类似表述时,只需回复一句话:

RSS 暂无新更新 ✅

不需要列出各账号的最新内容,直接说暂无更新即可。


输出文件

| 文件 | 说明 | |------|------| | assets/latest_update.md | 增量更新报告(--status 读取,仅含变动账号) | | assets/full_overview.md | 全量概览(--overview 读取,含所有账号) | | assets/feed.xml | 标准 RSS 2.0 XML | | assets/summary.md | 统计摘要 | | assets/subscriptions.opml | OPML 订阅导出 |

Du fichier au premier essai

Le téléchargement contient exactement le contenu affiché sur cette fiche. Cette copie peut différer de la dernière version du dépôt source.

Consulter la source et ses fichiers annexes

Ce téléchargement contient uniquement SKILL.md. Les scripts, références, modèles et dépendances éventuels ne sont pas inclus. Récupérez les fichiers nécessaires depuis la source en conservant leur arborescence avant de poursuivre.

1. Télécharger le fichier

Télécharger SKILL.md

Depuis la racine d’un projet de test, enregistrez le fichier sous .skill-downloads/let-s-go-rss-rss-aggregator-mrx3y0ns/SKILL.md, ou utilisez la commande suivante. Ce dossier sert à examiner la skill avant son installation.

Commande pour macOS/Linux ou WSL : un shell POSIX et curl sont nécessaires. Sous Windows sans WSL, utilisez le bouton de téléchargement et créez le dossier manuellement.

mkdir -p '.skill-downloads/let-s-go-rss-rss-aggregator-mrx3y0ns' && curl --fail --show-error --location 'https://skills-guides.com/api/skills/let-s-go-rss-rss-aggregator-mrx3y0ns/download' --output '.skill-downloads/let-s-go-rss-rss-aggregator-mrx3y0ns/SKILL.md.part' && mv '.skill-downloads/let-s-go-rss-rss-aggregator-mrx3y0ns/SKILL.md.part' '.skill-downloads/let-s-go-rss-rss-aggregator-mrx3y0ns/SKILL.md'

2. Vérifier les prérequis

Lisez SKILL.md avant de l’utiliser. Si le fichier cite des scripts ou services externes, examinez-les et préparez les accès nécessaires dans votre environnement de test.

Aucune section de prérequis reconnue dans ce fichier. Cela ne signifie pas qu’il est autonome : les bibliothèques, outils et accès peuvent être cités ailleurs dans le contenu ou dans le dépôt source.

Les plateformes de la fiche sont des indications du catalogue. Les chemins ci-dessous suivent la documentation des outils ; ils ne prouvent pas que cette skill y a été exécutée. Aucune version minimale de ces outils n’est attestée pour cette fiche.

3. Charger la skill

Après vérification, copiez le dossier complet dans le projet avec l’une des commandes ci-dessous, puis ouvrez une nouvelle session de l’outil. La commande s’arrête si un dossier du même nom existe déjà : comparez les fichiers avant de le remplacer.

Claude Code
test -f '.skill-downloads/let-s-go-rss-rss-aggregator-mrx3y0ns/SKILL.md' && test -s '.skill-downloads/let-s-go-rss-rss-aggregator-mrx3y0ns/SKILL.md' && mkdir -p '.claude/skills' && test ! -e '.claude/skills/lets-go-rss' && cp -R '.skill-downloads/let-s-go-rss-rss-aggregator-mrx3y0ns' '.claude/skills/lets-go-rss'

Cursor
test -f '.skill-downloads/let-s-go-rss-rss-aggregator-mrx3y0ns/SKILL.md' && test -s '.skill-downloads/let-s-go-rss-rss-aggregator-mrx3y0ns/SKILL.md' && mkdir -p '.cursor/skills' && test ! -e '.cursor/skills/lets-go-rss' && cp -R '.skill-downloads/let-s-go-rss-rss-aggregator-mrx3y0ns' '.cursor/skills/lets-go-rss'

Codex
test -f '.skill-downloads/let-s-go-rss-rss-aggregator-mrx3y0ns/SKILL.md' && test -s '.skill-downloads/let-s-go-rss-rss-aggregator-mrx3y0ns/SKILL.md' && mkdir -p '.agents/skills' && test ! -e '.agents/skills/lets-go-rss' && cp -R '.skill-downloads/let-s-go-rss-rss-aggregator-mrx3y0ns' '.agents/skills/lets-go-rss'

OpenSkills

OpenSkills doit déjà être installé. La procédure locale install/read est contrôlée avec OpenSkills 1.5.0, qui exige Node.js ≥ 20.6.0. Aucun slug du catalogue n’est résolu automatiquement.

Installation officielle d’OpenSkills
openskills install './.skill-downloads/let-s-go-rss-rss-aggregator-mrx3y0ns'

openskills read 'let-s-go-rss-rss-aggregator-mrx3y0ns'

La lecture doit afficher le contenu du fichier installé et son dossier de base. Elle ne lance ni la skill ni ses dépendances.

Pour un agent qui lit AGENTS.md, synchronisez ensuite l’index. Cette commande modifie AGENTS.md : relisez le diff avant de l’utiliser.

openskills sync

Mode manuel ou autre outil : joignez SKILL.md à une conversation, ou ouvrez-le dans un agent capable de lire les fichiers. Ajoutez les ressources annexes nécessaires. Il n’existe pas de dossier universel reconnu par tous les outils.

4. Faire un premier essai

Utilisez une entrée courte et fictive : un endpoint d’API, un petit document ou un brief d’interface. Dans une nouvelle conversation, joignez le fichier ou donnez son chemin à l’agent, puis adaptez cette demande :

Lis .skill-downloads/let-s-go-rss-rss-aggregator-mrx3y0ns/SKILL.md et applique ses instructions à cet exemple : [décrire une entrée de test]. Indique les fichiers, dépendances ou accès qui manquent. Produis le résultat demandé par la skill sans inventer de données ni exécuter de script non examiné.

Résultat attendu : une sortie correspondant aux instructions de la skill, ou une liste précise des prérequis manquants. Une simple confirmation de lecture ne valide pas le premier usage. Si une ressource externe est indisponible, ce parcours reste à tester.

Skills similaires