中文 · English
🧰 Chubby Skills
信息流会忘,知识库会记,Agent 会用。
把视频、播客、文章和本地文档保存为 Markdown,整理成能搜索、能回查来源、能交给 Agent 使用的素材库。
快速开始 · 安装到 Agent · Skill 目录 · 文档 · 更新日志 · 💬 讨论区
这是什么
Chubby Skills 是一套面向内容创作者和个人知识库的 14 个 Agent Skills 与命令行工具。你可以按需安装技能,让 Agent 处理素材;也可以直接运行命令,把采集、入库、搜索和资料包导出串起来。
适合经常收藏视频、文章和播客,希望在写作时找到原文、核对出处的人。产物保存在本地 Markdown 文件中,可以用 Obsidian、文本编辑器或你的 Agent 继续处理。
链接 / 本地文档 → Markdown 原文与附件 → 本地搜索 → 带出处的资料包 → Agent 整理选题
| 你想做什么 | 项目提供什么 |
|---|---|
| 保存平台素材 | 视频字幕与转录、播客转录、文章和图文采集 |
| 导入已有资料 | Markdown、TXT、PDF 文字层导入,保留来源和引用的本地附件 |
| 写作时找回证据 | 关键词搜索、可选语义检索、原文读取;采集入库后自动更新索引 |
| 整理一份选题资料 | 导出 Markdown / JSON 资料包,包含原文摘录、行号、来源和文件摘要 |
| 让 Agent 使用知识库 | 独立技能包,以及提供搜索、原文读取等工具的可选 MCP 服务 |
| 持续跟踪可靠来源 | 订阅公开 RSS / Atom / JSON Feed、YouTube 频道与用户自带 Provider 输出;发现、审核、转录与入库分离 |
先看输出样例,或直接运行下面的本地示例。
平台可用性速览
声明能力(非实时探测),最近逐平台实测见真实平台验证,完整失败模式见平台状态:
| 平台 | 状态 | 轻量路径 |
|---|---|---|
| B站 / YouTube | 稳定 | 字幕优先,仅需 yt-dlp |
| 公众号 | 测试 | HTML 需 beautifulsoup4,PDF 兜底 |
| 抖音 / TikTok / 微博 / 知乎 | 测试·重依赖 | 视频转录需 funasr + ffmpeg |
| 播客 | 重依赖 | funasr(SenseVoice-Small),可选 DashScope / Groq 云转录 |
| X / 小红书 | 手动兜底 | 零依赖采集正文;X 长文章可配 X_COOKIES 抓登录态全文,失败可手动补全文。凭据怎么拿、上次是否成功:chubby doctor --credentials |
| RSS / YouTube 频道订阅 | P0 + P1 | 公开 Feed;支持 RSSHub / RSS-Bridge BYO 标签,默认只发现 |
| 本地文档 | 稳定 | 零依赖,Markdown/TXT/PDF 文字层 |
本项目不做反爬对抗,选择轻量接口加手动兜底,原因与适用边界见为什么不对抗风控。
快速开始
核心链路只用 Python 标准库:不装第三方包、不配 API Key、不下载模型。需要 Python 3.11 及以上——先 python3 --version 确认一下:macOS 自带的是 3.9,核心命令能跑,但 subscribe 订阅链路会在导入时失败,建议 brew install python@3.12 或直接用下面的 venv 步骤。
60 秒跑通(一):抓一条真实链接
X 推文和小红书图文都走 Python 标准库,不需要 yt-dlp、ffmpeg 或任何模型(逐平台能力与失败模式见平台状态):
git clone https://github.com/chubbyguan/chubbyskills.git
cd chubbyskills
python3 tools/chubby.py init --vault "$PWD/creator-vault"
python3 tools/chubby.py ingest "https://x.com/OpenAI/status/1663696190960173056" --no-enrich
python3 tools/chubby.py search "ChatGPT"
✅ 已写入配置:/path/to/chubbyskills/chubby.yaml
✅ 已准备队列:/path/to/chubbyskills/inbox/links.txt
✅ 已准备状态:/path/to/chubbyskills/.chubby/runs.jsonl
✅ 已准备报告目录:/path/to/chubbyskills/runs
✅ 完成:success=1 / failed=0 / dry_run=0
🧾 报告:/path/to/chubbyskills/runs/2026-10-05.md
/path/to/chubbyskills/creator-vault/00_Inbox/The-ChatGPT-iOS-app-is-now-available-in---<来源哈希>.md
The ChatGPT iOS app is now available in
00_Inbox/The-ChatGPT-iOS-app-is-now-available-in---<来源哈希>.md
# The ChatGPT iOS app is now available in > 👤 OpenAI @OpenAI | 👍 754 · 💬 115 …
抓下来的笔记自带来源、作者、时间和互动数,引用时能回查到原帖:
title: "The ChatGPT iOS app is now available in "
platform: x
source: "https://x.com/OpenAI/status/1663696190960173056"
author: "OpenAI @OpenAI"
created: 2023-05-30
likes: 754
把链接换成你要存的任意推文或小红书图文即可。
平台采集会波动。 上面是一条样本,不构成成功率:没有登录态时可能被风控拦住,X 长文章默认只取到预览。失败时先看平台状态和替代处理方式,或保存正文后走下面这条。
60 秒跑通(二):导入自己的文件
这条完全不碰外网,任何环境都能跑通。导入一份文档,再把它搜回来(把示例换成你自己的 .md、.markdown 或 .txt;已知原始网页时加 --source-url "原始网页地址"):
mkdir -p demo-input
cat > demo-input/notes.md <<'NOTE'
# 内容复用笔记
内容复用从保留原文和来源开始。同一份材料可以用于选题、文章和播客,但引用前要重新核对上下文。
NOTE
python3 tools/chubby.py import demo-input/notes.md --no-enrich
python3 tools/chubby.py search "内容复用"
✅ 完成:success=1 / failed=0 / dry_run=0
🧾 报告:/path/to/chubbyskills/runs/2026-10-05.md
/path/to/chubbyskills/creator-vault/00_Inbox/内容复用笔记--<来源哈希>.md
内容复用笔记
00_Inbox/内容复用笔记--<来源哈希>.md
# 内容复用笔记 内容复用从保留原文和来源开始。同一份材料可以用于选题、文章和播客,但引用前要重新核对上下文。
最后导出带出处的资料包——这是这个项目真正产出的东西:
python3 tools/chubby.py brief --topic "内容复用" \
--output "$PWD/creator-vault/30_Output/brief.md"
{
"markdown": "/path/to/chubbyskills/creator-vault/30_Output/brief.md",
"json": "/path/to/chubbyskills/creator-vault/30_Output/brief.json"
}
brief.md 里是逐字摘录、原文行号、来源链接和文件 SHA-256,可以直接回查(文件名后缀由来源路径推导,SHA-256 覆盖导入副本的内容与元数据,两者都会随你实际使用的路径和时间变化):
## E1 · 内容复用笔记
笔记相对路径:`00_Inbox/内容复用笔记--c2f47ab83782202c.md`
原始来源:未提供可打开的网页链接。
采集时间:2026-10-05T10:54:57+08:00
文件 SHA-256:`<导入副本的内容哈希>`
原文第 22–22 行:
产物落在三处:
creator-vault/00_Inbox/:带来源信息的 Markdown 和引用的本地附件。creator-vault/30_Output/brief.md与brief.json:资料包本体。.chubby/runs.jsonl与runs/:任务状态和运行报告,方便检查失败与重试。
brief 全程在本地完成,不调用云模型,也不判断原文观点是否正确;上面的演示材料是人工样例。再次导出请换一个文件名,确认要替换已生成的资料包后再加 --force。
可选:把 chubby 装成命令
上面用的是 python3 tools/chubby.py,不装也能跑。想要 chubby init 这种形式:
python3 -m venv .venv && source .venv/bin/activate
python3 -m pip install -e . # 提供 chubby 命令,等价于 python3 tools/chubby.py
也可以装成普通包(pip install .,或 pipx install git+https://github.com/chubbyguan/chubbyskills.git)。非 editable 安装下,知识库命令全部可用——init / import / search / brief / index / doctor / subscribe(含 digest 与 site build),用户状态写在你当前所在目录,不会写进安装目录。
平台采集 ingest 同样可用:14 个 skill 目录随包一起安装(目录名 bilibili-transcribe 不是合法 Python 包名,构建时映射为 bilibili_transcribe,你不需要关心)。想把这些 skill 直接装进 Agent 而不是通过 CLI 调用,仍从仓库跑 tools/install_skill.py;两种方式互不影响。
已有知识库时把 --vault 换成它的根目录(例如 docs/quickstart.md 里的 $HOME/Documents/creator-vault);已有配置的调整见创作者工作流。
处理你的素材
平台链接
按所需能力安装运行依赖。以 YouTube 字幕为例:
bash setup.sh light
python3 -m pip install yt-dlp
python3 tools/chubby.py doctor --platform youtube
python3 tools/chubby.py ingest "替换为你的真实链接" --no-enrich
python3 tools/chubby.py search "原文中的关键词"
light 检查 Python 并提示轻量路径,不安装字幕或转录依赖。B站和 YouTube 优先取字幕;没有字幕时需要视频转录依赖。查看 Skill 目录选择平台,并按下表补依赖:
| 处理路径 | 安装 / 配置 |
|---|---|
| Markdown / TXT 导入、关键词检索、资料包 | Python 标准库,无需额外包 |
| X / 小红书图文 | Python 标准库;bash setup.sh light 检查环境,登录态与平台限制仍可能影响采集 |
| B站 / YouTube 字幕 | python3 -m pip install yt-dlp |
| 本地视频转录 | bash setup.sh video;需要系统 ffmpeg,本地模型首次使用会下载 |
| 本地播客转录 | bash setup.sh podcast;使用 SenseVoice-Small(与视频转录共用 funasr 依赖) |
| 公众号及其 PDF 路径 | bash setup.sh wechat |
| 通用 PDF 文字层导入 | python3 -m pip install 'pymupdf>=1.24' |
平台抓取受 Cookie、字幕、地区和页面变化影响。失败时查看平台状态和替代处理方式,也可以保存正文后走本地导入。支持范围与最近的实测结果分开记录,见真实平台验证。
YouTube 在部分出口 IP 上要求登录证明(Sign in to confirm you are not a bot)。两个环境变量会透传到所有平台技能的 yt-dlp 调用:YTDLP_COOKIES_FROM_BROWSER(如 chrome,对应 --cookies-from-browser)和 YTDLP_REMOTE_COMPONENTS(如 ejs:github,让 yt-dlp 下载 JS 挑战求解组件)。两者均为可选,按需配置。
X 长文章(Articles)默认只能抓到预览文本并给出警告;配置 --cookies 或 X_COOKIES(自己账号的 auth_token + ct0)后走登录态接口抓全文,失效时回退为预览。详见 x-ingest。
本地文档与 PDF
python3 tools/chubby.py import "/你的资料目录/report.md" --no-enrich
python3 tools/chubby.py import "/你的资料目录/report.pdf" \
--source-url "https://example.org/original-report" --no-enrich
导入器保留原文件,把文档引用的目录内附件复制到产物旁;缺失或越界的本地附件会报错。PDF 只提取文字层,不做 OCR;扫描件需先由其他工具识别。详见文档导入。
播客与可选云转录
默认在本地转录音频:
python3 tools/chubby.py ingest "/你的音频目录/episode.mp3" \
--skill podcast --provider local --no-enrich
本地模型默认 SenseVoice-Small,也可选 Qwen3-ASR-0.6B(--provider local --model qwen3-asr-0.6b,需自行 pip install qwen-asr transformers torch)。2026-10 在 M3 Pro CPU 上的实测:SenseVoice RTF 0.11、Qwen RTF 0.80(慢约 7 倍);质量互有胜负——Qwen 专名/人名更稳但有幻觉改写风险且无 ITN,SenseVoice 输出带情感标签需清洗。CPU 场景保持默认,GPU 或专名敏感时选 Qwen。详见 podcast-transcribe。
可选云端后端为 阿里云百炼 DashScope 的 qwen3-asr-flash(--provider dashscope,需 DASHSCOPE_API_KEY)和 Groq 的 whisper-large-v3-turbo(--provider groq,需 GROQ_API_KEY;免费层单文件上限 25MB、有速率限制,长音频自动分片转录并支持断点续传)。音频发送至云端并可能计费;DashScope 限制为编码后不超过 10MB、时长不超过 5 分钟,超限会在提交前拒绝并提示改用本地 SenseVoice-Small。完成结果持久保存,进程中断后可恢复;--resubmit 会明确创建新任务,可能再次计费。
播客自动下载仅接受公网 HTTP(S) 直连地址,不跟随重定向,也不使用代理。需要跳转或代理的资源,先自行下载,再传本地文件。配置和恢复方法见云转录说明。云服务的真实转录尚未完成验收。
重复采集、批量与重试
相同来源、处理参数和目的地的有效产物会复用;原文件或引用附件变化后会重新导入。--refresh 重新处理并保留旧版本。
把链接逐行放入 inbox/links.txt,再运行:
python3 tools/chubby.py run --queue inbox/links.txt --no-enrich
python3 tools/chubby.py status --failed
python3 tools/chubby.py retry --all-failed
采集入库后和统一查询前,索引会增量同步。更多例子见创作者工作流;已有索引的迁移和重建见知识库自动化。
订阅 YouTube、播客和 RSS
P0 将订阅扫描和媒体处理拆开:首次同步只建立已见基线,新条目先进入待审队列;确认来源质量后,可对该来源开启 auto_ingest,让 YouTube / 播客复用现有字幕优先和转录路径。
python3 tools/chubby.py subscribe init
python3 tools/chubby.py subscribe add \
--id yt-3blue1brown --name "3Blue1Brown" \
--kind youtube_channel --channel-id UCYO_jab_esuFRV4b17AJtAw \
--content-profile video --mode discover_only
python3 tools/chubby.py subscribe sync --all # 首次只建立基线
python3 tools/chubby.py subscribe pending
定时运行使用 python3 tools/chubby.py subscribe tick --due --process-limit 3,交给 macOS launchd 或 Linux cron 每小时触发。subscribe digest 把近 N 天的订阅条目汇总成每日情报简报(零 LLM 可用,事件聚簇 + 知识库关联;--enrich 可选 DeepSeek 精选摘要,模型内容带标注);subscribe site build 再把聚簇渲染成可发 GitHub Pages 的纯静态日报站(只含标题/来源/链接/热度,无正文与本地路径),并同时产出 feed.xml 与 llms.txt 两个 Agent 出口。支持用户自带 RSSHub、RSS-Bridge 或其它 Provider 的最终公开 Feed;该标签不会启用平台抓取、认证或代理。X、小红书、抖音、B站、公众号账号扫描尚未支持。完整命令、调度、Provider 边界和失败恢复见订阅与调度,真实兼容性标准见Provider 7 天验收。
安装到 Agent
按需安装技能
在完整仓库根目录运行。以 Codex 为例,安装知识库技能:
python3 tools/install_skill.py knowledge-base-management --dest ~/.codex/skills
查看技能列表;如果选择全部安装,用 --all 替代上面的单技能安装,并指定一个没有同名技能的目标目录:
python3 tools/install_skill.py --list
python3 tools/install_skill.py --all --dest /path/to/agent/skills
Claude Code、OpenCode、OpenClaw、Hermes 等客户端使用各自实际配置的 skills 目录作为 --dest,并按客户端方式启用技能。运行环境中的 Python 和系统依赖仍需另外配置。
安装器会打包仓库内依赖,生成可独立搬移的技能目录;setup.sh 负责安装运行依赖。已有同名技能时安装器会拒绝覆盖,升级时先安装到临时目录核对自己的修改。请使用安装器或 Release 技能包,避免只下载单个源码目录漏掉公共模块。完整安装指南
首页的 tools/chubby.py 统一流程需要完整仓库。独立知识库技能使用其自带的 tools/import_document.py、tools/vault_index.py 和 tools/evidence_brief.py,命令见文档导入。
通过 MCP 连接知识库
python3 -m pip install -r knowledge-base-management/requirements-mcp.txt
python3 tools/mcp_smoke.py --json
MCP 提供搜索、语义检索、读取原文、最近笔记、重新索引和统计共 6 个工具。上面的命令用临时知识库检查真实服务启动和交互;连接自己的 Agent 时,还需配置服务器命令与 VAULT_DIR。见 MCP 配置。
Skill 目录
| 方向 | Skill | 主要用途 |
|---|---|---|
| 视频 | bilibili-transcribe | B站字幕优先、视频转录、批量处理 |
| 视频 | youtube-transcribe | YouTube 字幕、转录、可选翻译与中英对照 |
| 视频 | douyin-transcribe | 抖音视频转文字稿 |
| 视频 | tiktok-transcribe | TikTok 视频转录 |
| 视频 | weibo-transcribe | 微博视频转录 |
| 视频 | zhihu-transcribe | 知乎视频转录 |
| 播客 | podcast-transcribe | 单集、RSS、本地音频;可选 DashScope / Groq 云后端 |
| 图文 | wechat-article-ingest | 公众号文章和 PDF 转 Markdown |
| 图文 | xiaohongshu-ingest | 小红书图文、视频及可选内容分析 |
| 图文 | x-ingest | X / Twitter 正文、长文章(支持登录态全文)、图片和视频 |
| 加工 | content-enrich | 可选的摘要、要点和标签加工 |
| 知识库 | knowledge-base-management | 文档导入、索引、资料包、归档与 MCP |
| 工作流 | industry-intelligence-radar | 多源情报扫描和趋势简报 |
| 工作流 | learning-notes-automation | 学习笔记、闪卡和知识关联 |
数据与处理边界
素材默认保存在本地。不同处理路径的联网范围如下:
| 功能 | 处理位置与配置 |
|---|---|
文档导入、关键词搜索、semantic-lite、资料包 |
本地;本地导入不抓取远程附件 |
| 平台采集 | 访问来源平台;小红书可按需配置自己的 XHS_COOKIE,X 长文章可配 X_COOKIES,yt-dlp 路径可配 YTDLP_COOKIES_FROM_BROWSER 使用本机浏览器登录态 |
| 本地音视频转录 | 本机推理;首次运行可能需要下载模型 |
| 内容加工、翻译、学习笔记提取 | 可选 DEEPSEEK_API_KEY,内容发送至对应 API |
| OpenAI 向量检索 | 可选 OPENAI_API_KEY,参与向量化的内容发送至 API |
| DashScope 播客云转录 | 可选 DASHSCOPE_API_KEY,音频发送至阿里云百炼 |
| Groq 播客云转录 | 可选 GROQ_API_KEY,音频发送至 Groq |
| 云端 Agent 读取素材 | 被读取的内容进入该 Agent 的模型上下文 |
API 服务可能计费,密钥和 Cookie 不要写入笔记或提交到仓库。外部解析工具可以把完整 Markdown 交给本地导入;cue-omni-reader 等入口及其验证状态见可选集成。
输出协议
采集与导入产物使用带 frontmatter 的 Markdown,记录标题、类型、平台、来源和日期。统一 CLI 还会补充 schema v1 的任务 ID、采集时间、来源摘要与附件信息,供索引和重试使用。查看输出样例
python3 tools/validate_outputs.py output/ --schema-v1
验证与社区贡献
v0.13.0 发布记录包含 220 项测试、Linux / macOS CI、14 个技能包的 24 个脚本隔离导入、实际 PDF 导入和 MCP 交互验证。发布资产附带校验和与验证记录;这些结果不代表所有平台或云服务都已完成在线验收。
本地环境自检:
python3 tools/chubby.py quickstart --ephemeral --no-state
这条命令检查离线样例和环境,不抓取真实平台内容。开发者的完整命令见发布检查。
安装建议来自 catwithtudou 的 #1;Atlas 和 MuAPI 需求分别来自 binyangzhu000-sudo 的 #3 与 Anil-matcha 的 #5。这些需求已通过现行实现吸收并保留归属。 huhoo 的 #6 已进入可选集成文档,真实解析示例仍待补充。处理记录
欢迎提交可复现的问题、修正 PR 或平台适配。贡献方式见 CONTRIBUTING.md 和平台适配指南。
拿不准去哪说?使用问题、使用场景和功能想法请发到 Discussions 讨论区;可复现的 bug 走 Issues;也可以在微信公众号「关关不过」后台留言。
文档入口
| 文档 | 内容 |
|---|---|
| 项目介绍 | 这是什么、能做什么、技术取舍与边界 |
| 安装指南 | 运行依赖、技能目录、独立安装与升级 |
| 创作者工作流 | 从素材到搜索、资料包和 Agent 选题 |
| 文档导入 | Markdown / TXT / PDF、来源和附件规则 |
| 云转录 | Provider 配置、任务恢复和计费边界 |
| 订阅与调度(P0) | 公开 Feed / YouTube 订阅、队列、调度、故障恢复与限制 |
| 知识库自动化 | 索引、向量检索、归档和知识卡片 |
| 验证模型 | 三种陈述强度、真实来源验收协议、公开内容边界与第三方证据处理 |
| MCP 配置 | 将知识库接入 Agent |
| 社区推广 / 榜单提交指南 | 各渠道推广与榜单提交文案(已对齐当前 14 个 Skills 版本) |
| 平台状态与替代方式 | 依赖、常见失败与补救路径 |
| 可选集成 | 外部解析工具的 Markdown 交接 |
| 更新日志 | 版本变化;当前版本为 0.15.0 |
相关项目
- chubby-recruitment-ops:Codex 与 Claude Code 的招聘运营插件——简历入库、评分与流程协同。
使用范围与许可
采集类技能用于个人学习与研究。请遵守来源平台条款、robots.txt 和相关法律,使用自己有权访问和保存的内容;不要用于批量抓取、商用爬取、二次分发或侵犯他人权益的场景。原内容版权归原作者,引用与转载按需要取得授权并注明来源。
代码采用 MIT License,按现状提供。代码许可不授予第三方内容的使用权。
致谢
感谢 Agent Skills、yt-dlp、SenseVoice、阿里云百炼 Qwen-ASR、MarkItDown、PyMuPDF、Obsidian、GraphRAG、DeepSeek 以及 khazix-skills 提供工具、标准和参考。
关于 Chubby
我是 Chubby,平时做内容、搭个人知识库,也记录 AI Agent / Skill 和电商实践。
X / Twitter · 即刻 · 小红书 · 微信公众号:关关不过
Gitee 镜像 · Made by @chubbyguan