Content Collector
个人内容收藏与知识管理系统。收藏、整理、检索、二创。 Use when: (1) 用户分享链接/文字/截图并要求保存或收藏, (2) 用户说"收藏这个"/"存一下"/"记录下来"/"save this"/"bookmark"/"clip this", (3) 用户要求按关键词/标签搜索之前收藏的内容, (4) 用...
Like a lobster shell, security has layers — review code before you run it.
License
SKILL.md
Content Collector — 个人内容收藏系统
收藏好内容 → 结构化整理 → 关键词检索 → 二次创作
数据位置
主存储(AI 检索用)
<WORKSPACE>/collections/
collections/
├── articles/ # 文章、博客、长文
├── tweets/ # X/Twitter 推文、短内容
├── videos/ # 视频内容(转录+笔记)
├── wechat/ # 微信公众号文章
├── ideas/ # 零散想法、灵感
├── index.md # 全局索引(自动维护)
└── tags.md # 标签索引(自动维护)
Obsidian 同步(人工浏览用,可选)
<YOUR_OBSIDIAN_VAULT>/收藏/
收藏/
├── 文章/ # ← collections/articles
├── 视频/ # ← collections/videos
├── 推文/ # ← collections/tweets
├── 公众号/ # ← collections/wechat
└── 想法/ # ← collections/ideas
每次收藏时必须同时写入两个位置。 Obsidian 版本的差异:
- 文件名:用中文标题(从 frontmatter title 取),不用
YYYY-MM-DD-slug格式 - 标签:frontmatter 保留
tags数组 + 正文第一行加#tag1 #tag2 ...格式(Obsidian 图谱和搜索用) - aliases:frontmatter 加
aliases: [title],方便 Obsidian 双链搜索 - 目录映射:
articles→文章、videos→视频、tweets→推文、wechat→公众号、ideas→想法
Obsidian 写入模板(伪代码):
target_dir = <YOUR_OBSIDIAN_VAULT>/收藏/{中文目录}/
filename = sanitize(title).md # 去掉 <>:"/\|?* 等非法字符,截断80字符
content = 原始 frontmatter(加 aliases) + "\n\n" + "#tag1 #tag2 ..." + "\n\n" + body
收藏工作流
Supadata API(优先方案)
对于大部分 URL,优先使用 Supadata API 解析:
- 脚本:
SUPADATA_API_KEY=<key> python3 scripts/supadata_fetch.py <command> <url> - 环境变量:
SUPADATA_API_KEY存放在 TOOLS.md
| 内容类型 | 命令 | 说明 |
|---|---|---|
| 网页/博客 | web <url> | 返回 Markdown 正文,1 credit |
| 视频转录 | transcript <url> --text [--lang zh] | YouTube/TikTok/X/Instagram/Facebook,1-2 credits |
| 社交媒体元数据 | metadata <url> | 标题、作者、互动数据,1 credit |
Supadata 不可用时的降级方案:
- 网页 →
web_fetch - B站 → 本地 bilibili 脚本(见下方)
- 需登录/内网 → Chrome Relay
URL 内容(文章/博客/网页)
- 优先
supadata_fetch.py web <url>抓取正文 - 降级
web_fetch抓取正文 - 提取标题、作者、发布日期、正文摘要、关键词
- 提取有价值的插图(默认执行,见下方「插图保存规范」)
- 生成
collections/articles/YYYY-MM-DD-slug.md(含插图引用) - 同步到 Obsidian →
<YOUR_OBSIDIAN_VAULT>/收藏/文章/{标题}.md(含插图复制)
视频内容(YouTube/TikTok/X/Instagram/Facebook)
- 元数据:
supadata_fetch.py metadata <url> - 转录:
supadata_fetch.py transcript <url> --text --lang zh - 内容提取:基于转录文本提取核心观点、金句、要点
- 生成
collections/videos/YYYY-MM-DD-slug.md - 同步到 Obsidian →
<YOUR_OBSIDIAN_VAULT>/收藏/视频/{标题}.md
纯文本/截图
- 截图用
image工具提取文字 - 整理成结构化格式,来源可选补充
B站视频(本地流程,Supadata 不支持 B站)
- 元数据:
python3 scripts/bilibili_extract.py <bvid_or_url>→ 标题、作者、时长、标签、数据指标 - 评论区:
- 无登录(API):3条热门
- 已登录(浏览器 shadow DOM):20+条,见
references/bilibili-comments.md
- 视频转录:
bash scripts/bilibili_transcribe.sh <bvid_or_url> [model]- 依赖:yt-dlp、faster-whisper(uv)、opencc
- 需浏览器已登录B站(yt-dlp 读取 cookie)
- 模型:tiny/base(默认)/small/medium,base 约10-15分钟转录46分钟视频
- 输出:
/tmp/bilibili_audio/<BVID>_transcript.json+.txt - 注意:ASR 有识别错误,专有名词需人工校验
- 降级方案(转录失败时):
- yt-dlp cookie 过期 → 提示用户在 openclaw browser 重新登录 B站
- faster-whisper 不可用 → 尝试
whisperCLI(pip3 install openai-whisper) - 全部失败 → 仅保存元数据+评论,在收藏文件中标注"转录未获取,待补充",不阻塞收藏流程
- 内容提取:基于转录文本提取核心观点、金句、要点
- 生成
collections/videos/YYYY-MM-DD-slug.md - 同步到 Obsidian →
<YOUR_OBSIDIAN_VAULT>/收藏/视频/{标题}.md
插图保存规范
收藏文章时默认提取有价值的插图,作为后续写作素材。
判断标准(哪些图值得保存)
- ✅ 架构图、流程图、框架图、对比图、数据可视化
- ✅ 概念说明图、示意图、信息图
- ❌ 装饰性 banner、logo、头像、广告
- ❌ 纯文字截图(直接引用文字更好)
操作流程
- 发现插图:用 browser
evaluate提取页面<img>列表(src + alt + caption) - 筛选:排除装饰性图片(logo、小于 200px、SVG 图标等)
- 下载:用 CDN 原始 URL(避免 Next.js 等图片优化层),
curl -sL保存到:- collections 路径:
collections/{category}/images/{slug}/01-描述.png - slug 与收藏文件的文件名 slug 一致
- collections 路径:
- 嵌入收藏文件:在正文中用
## 插图章节,每张图包含:- 斜体说明文字(来自 caption 或自行总结)
- 同步到 Obsidian:
- 复制图片到
<YOUR_OBSIDIAN_VAULT>/收藏/{中文目录}/images/{slug}/ - Obsidian 版本使用相同的相对路径引用
- 复制图片到
命名规范
- 文件名:
{序号}-{简短英文描述}.png(如01-architecture-overview.png) - 目录名:与收藏文件 slug 一致(如
evals-for-agents)
注意
- 图片保存为本地副本,不依赖外部 URL(防止链接失效)
- 单篇文章通常 3-8 张有价值的图,不要过度收集
关联项目(自动匹配)
每次收藏内容后,自动将内容与当前活跃项目关联:
- 读取
<WORKSPACE>/memory/topics/projects.md获取活跃项目列表 - 将收藏内容的标题、摘要、标签与每个项目的关键词匹配
- 匹配到的项目写入收藏文件的 YAML frontmatter:
related_projects: ["wemp-ops", "xiaohongshu-ops"] project_notes: "这个案例可以用于公众号选题:AI调度人力的真实案例" - 同时在
index.md中标注关联项目,方便按项目筛选素材
项目关键词(自动从 projects.md 提取)
- wemp-ops:公众号、写作、文章、排版、内容运营
- xiaohongshu-ops:小红书、笔记、种草、配图、短内容
- content-collector:收藏、知识管理、素材库
使用场景
- 写公众号文章前:
搜索关联 wemp-ops 的收藏→ 快速找到素材 - 写小红书前:
搜索关联 xiaohongshu-ops 的收藏→ 找到适合拆解的内容 - 选题会议:按项目汇总最近收藏 → 发现选题方向
存储格式
文件命名:YYYY-MM-DD-slug.md
---
title: "标题"
source: "来源平台"
url: "原始链接"
author: "作者"
date_published: "发布日期"
date_collected: "收藏日期"
tags: [tag1, tag2, tag3]
category: "articles|tweets|videos|wechat|ideas"
language: "zh|en"
summary: "一句话摘要"
# 视频专属(可选)
duration: "时长"
platform: "bilibili|youtube"
bvid: "BV号"
stats: { views: 0, likes: 0, comments: 0 }
---
内容结构
- 内容概览(条件触发,见下方规则)— Mermaid 图,一图看懂全文
- 核心观点 — 3-7个要点
- 要点摘录 — 原文金句(blockquote)
- 热门评论精选(视频类)— 含点赞数
- 评论区观点摘要(视频类)— 总结争议点
- 我的笔记 — 用户个人批注,后续补充
- 原文摘要 — 200-500字概要
内容概览图生成规则
触发条件:正文 > 1000 字的 articles / wechat / videos(短推文、零散想法不画)。
输出格式:Mermaid 代码块,直接嵌入收藏文件的 ## 内容概览 章节。Obsidian 原生渲染,不需要额外插件。
图表类型自动选择(按文章内容匹配):
| 文章特征 | 图表类型 | Mermaid 语法 | 示例 |
|---|---|---|---|
| 方法论/框架/模型(分层、组件) | 思维导图 | mindmap | "AI PM 的 3 个核心能力" |
| 流程/步骤/演进(先后顺序) | 流程图 | graph TB | "AI 编程三次进化" |
| 对比/选择(A vs B) | 对比图 | graph TB + 并行 subgraph | "传统 PM vs AI PM" |
| 多实体互动/依赖关系 | 关系图 | graph LR | "Agent 各模块数据流" |
| 时间线/里程碑 | 时间线 | graph LR 线性 | "2024 AI 大事记" |
| 混合/不确定 | 思维导图 | mindmap(万能兜底) | — |
生成要求:
- 节点文字用文章原始术语,不用"概念1"、"模块A"等占位符
- 层级不超过 3 层——图是辅助理解,不是完整复述
- 节点数量 5-15 个——太少没信息量,太多一眼看不完
- 遵守 Mermaid 语法规范——详见
references/mermaid-syntax-rules.md,特别注意:1.触发列表解析错误 → 用①或(1)或去掉空格- subgraph 带空格 → 用
subgraph id["显示名"]格式 - 节点引用用 ID 不用显示文本
- 不要在节点文本中使用 Emoji
- 配色使用语义色:
- 核心概念:
fill:#d3f9d8,stroke:#2f9e44(绿) - 问题/挑战:
fill:#ffe3e3,stroke:#c92a2a(红) - 方法/工具:
fill:#e5dbff,stroke:#5f3dc4(紫) - 输出/结果:
fill:#c5f6fa,stroke:#0c8599(青)
- 核心概念:
嵌入格式示例:
## 内容概览
\`\`\`mermaid
mindmap
root((AI PM 核心能力))
问题定义
从模糊需求到精确问题
判断什么值得做
上下文质量
Context Engineering
给 Agent 正确的信息
判断力
评估 Agent 产出
知道何时人工介入
\`\`\`
不做什么:
- 不生成独立图片文件——Mermaid 文本直接嵌入 Markdown
- 不画太复杂的图——收藏文件的图是"速览",不是完整笔记
Obsidian 同步规范
每次写入 collections/ 后,必须同时写入 Obsidian 版本。步骤:
- 从刚写入的收藏文件读取 frontmatter
- 构建 Obsidian 版本:
- 保留 frontmatter 的
title, source, url, author, date_published, date_collected, category, language, summary, duration, platform, bvid, tags - 添加
aliases: [title] - 正文第一行加
#tag1 #tag2 ...(标签中的空格替换为_)
- 保留 frontmatter 的
- 文件名 =
sanitize(title).md(去掉<>:"/\|?*,截断 80 字符) - 写入到
<YOUR_OBSIDIAN_VAULT>/收藏/{中文目录}/
目录映射:
| collections 目录 | Obsidian 目录 |
|---|---|
| articles/ | 文章/ |
| videos/ | 视频/ |
| tweets/ | 推文/ |
| wechat/ | 公众号/ |
| ideas/ | 想法/ |
注意:Obsidian 版本是 collections 的只读镜像。编辑应在 collections 原文件上进行,然后重新同步。
索引
每次收藏后更新:
- index.md — 按月份倒序,含标签和来源
- tags.md — 按标签聚合所有收藏
检索
- 标签匹配:
tags.md中查找 - 全文搜索:
grep -ril "keyword" collections/ - 返回匹配列表 + 摘要
二创 — 小红书内容生成
- 按选题/标签从收藏库筛选素材
- 参考
references/xiaohongshu-style.md写作风格 - 生成:emoji标题 + 口语化正文(300-800字) + 话题标签(5-10个)
- 发布配合
xiaohongshu-ops技能
联动 — 公众号写作供料
收藏库是 wemp-ops 公众号写作的素材来源之一。wemp-ops 选题时会自动检索收藏库:
- 标签匹配:
tags.md按关键词查找相关收藏 - 全文搜索:
grep -ril搜索 collections/ 目录 - 收藏文件中的"核心观点"、"要点摘录"、"我的笔记"可直接用于文章引用
收藏时的写作友好建议:
summary写清楚,便于快速判断是否相关tags覆盖主题关键词,提高检索命中率- "我的笔记"多写自己的思考和联想,这些是文章的独特视角
分类规则
| 来源 | 目录 | 备注 |
|---|---|---|
| 博客/网页 | articles/ | 默认归类 |
| X/Twitter | tweets/ | 短内容/thread |
| 微信公众号 | wechat/ | 中文长文 |
| B站/YouTube/抖音 | videos/ | B站可自动转录 |
| 零散想法 | ideas/ | 非外部来源 |
标签规范
- 中文为主,英文专有名词保持英文
- 每条 3-8 个标签
- 常用:
AI、产品设计、电商、运营、技术、商业、创业、效率工具、思维模型、管理
命令速查
| 用户说 | 动作 |
|---|---|
| "收藏这个 [URL/文字]" | 抓取→整理→存储→更新索引 |
| "搜索 [关键词]" | 搜索收藏库 |
| "最近收藏了什么" | 读 index.md |
| "关于 [标签] 的收藏" | 从 tags.md 筛选 |
| "用 [选题] 写篇小红书" | 二创生成 |
| "给这篇加个笔记" | 更新"我的笔记"部分 |
| "删除这条收藏" | 移除并更新索引 + 删除 Obsidian 对应文件 |
| "重新同步到 Obsidian" | 全量重新同步:python3 scripts/sync_to_obsidian.py(skill 目录下) |
Files
18 totalComments
Loading comments…
