Content Collector — 个人内容收藏系统

SkillSearch

Personal content collection and knowledge management system. Collect, organize, search, and repurpose. Use when: (1) the user shares a link/text/screenshot and asks to save or bookmark it, (2) the user says "收藏这个"/"存一下"/"记录下来"/"save this"/"bookmark"/"clip this", (3) the user asks to search previousl

Use Content Collector — 个人内容收藏系统 in Claude, ChatGPT or Ahel Desktop

Free. Sign in, add Content Collector — 个人内容收藏系统 and connect your AI. About a minute.

Also: Claude Code · Cursor · Codex

Then ask your AI: use the Content Collector skill

Details

Instructions available. Your AI can read the instructions. Execution depends on the setup they require.

Add Ahel to your AI once: Claude, ChatGPT, Cursor, Claude Code or Codex. Then ask it to use this.

Content Collector — 个人内容收藏系统Start free

What this skill tells your AI

The instructions your AI receives, as published by leoyeai/openclaw-master-skills in skills/content-collector/SKILL.md and read by Ahel’s review.

收藏好内容 → 结构化整理 → 关键词检索 → 二次创作

数据位置

主存储(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 版本的差异:

  1. 文件名:用中文标题(从 frontmatter title 取),不用 YYYY-MM-DD-slug 格式
  2. 标签:frontmatter 保留 tags 数组 + 正文第一行加 #tag1 #tag2 ... 格式(Obsidian 图谱和搜索用)
  3. aliases:frontmatter 加 aliases: [title],方便 Obsidian 双链搜索
  4. 目录映射: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 内容(文章/博客/网页)

  1. 优先 supadata_fetch.py web <url> 抓取正文
  2. 降级 web_fetch 抓取正文
  3. 提取标题、作者、发布日期、正文摘要、关键词
  4. 提取有价值的插图(默认执行,见下方「插图保存规范」)
  5. 生成 collections/articles/YYYY-MM-DD-slug.md(含插图引用)
  6. HTML 快照保存(仅重要文章):对 P0/P1 级别的文章,额外保存一份原始 HTML 到 collections/articles/YYYY-MM-DD-slug.html,防止源页面删除后内容丢失。普通收藏不保存快照(避免磁盘膨胀)
  7. 同步到 Obsidian → <YOUR_OBSIDIAN_VAULT>/收藏/文章/{标题}.md(含插图复制)

视频内容(YouTube/TikTok/X/Instagram/Facebook)

  1. 元数据: supadata_fetch.py metadata <url>
  2. 转录: supadata_fetch.py transcript <url> --text --lang zh
  3. 内容提取:基于转录文本提取核心观点、金句、要点
  4. 生成 collections/videos/YYYY-MM-DD-slug.md
  5. 同步到 Obsidian → <YOUR_OBSIDIAN_VAULT>/收藏/视频/{标题}.md

纯文本/截图

  1. 截图用 image 工具提取文字
  2. 整理成结构化格式,来源可选补充

B站视频(本地流程,Supadata 不支持 B站)

  1. 元数据:python3 scripts/bilibili_extract.py <bvid_or_url> → 标题、作者、时长、标签、数据指标
  2. 评论区:
    • 无登录(API):3条热门
    • 已登录(浏览器 shadow DOM):20+条,见 references/bilibili-comments.md
  3. 视频转录: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 不可用 → 尝试 whisper CLI(pip3 install openai-whisper)
      • 全部失败 → 仅保存元数据+评论,在收藏文件中标注"转录未获取,待补充",不阻塞收藏流程
  4. 内容提取:基于转录文本提取核心观点、金句、要点
  5. 生成 collections/videos/YYYY-MM-DD-slug.md
  6. 同步到 Obsidian → <YOUR_OBSIDIAN_VAULT>/收藏/视频/{标题}.md

插图保存规范

收藏文章时默认提取有价值的插图,作为后续写作素材。

判断标准(哪些图值得保存)

  • ✅ 架构图、流程图、框架图、对比图、数据可视化
  • ✅ 概念说明图、示意图、信息图
  • ❌ 装饰性 banner、logo、头像、广告
  • ❌ 纯文字截图(直接引用文字更好)

操作流程

  1. 发现插图:用 browser evaluate 提取页面 <img> 列表(src + alt + caption)
  2. 筛选:排除装饰性图片(logo、小于 200px、SVG 图标等)
  3. 下载:用 CDN 原始 URL(避免 Next.js 等图片优化层),curl -sL 保存到:
    • collections 路径:collections/{category}/images/{slug}/01-描述.png
    • slug 与收藏文件的文件名 slug 一致
  4. 嵌入收藏文件:在正文中用 ## 插图 章节,每张图包含:
    • ![alt](images/{slug}/filename.png)
    • 斜体说明文字(来自 caption 或自行总结)
  5. 同步到 Obsidian:
    • 复制图片到 <YOUR_OBSIDIAN_VAULT>/收藏/{中文目录}/images/{slug}/
    • Obsidian 版本使用相同的相对路径引用

命名规范

  • 文件名:{序号}-{简短英文描述}.png(如 01-architecture-overview.png)
  • 目录名:与收藏文件 slug 一致(如 evals-for-agents)

注意

  • 图片保存为本地副本,不依赖外部 URL(防止链接失效)
  • 单篇文章通常 3-8 张有价值的图,不要过度收集

关联项目(自动匹配)

每次收藏内容后,自动将内容与当前活跃项目关联:

  1. 读取 <WORKSPACE>/memory/topics/projects.md 获取活跃项目列表
  2. 将收藏内容的标题、摘要、标签与每个项目的关键词匹配
  3. 匹配到的项目写入收藏文件的 YAML frontmatter:
    related_projects: ["wemp-ops", "xiaohongshu-ops"]
    project_notes: "这个案例可以用于公众号选题:AI调度人力的真实案例"
    
  4. 同时在 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字概要

英文内容翻译规范

当 language: en 时,收藏过程中的翻译遵循以下规则:

翻译风格(默认 storytelling,不需要每次询问):

风格效果适用
storytelling叙事流畅,过渡自然(默认)博客、观点文、技术分享
technical精准简洁,术语密集API 文档、技术规范
conversational口语化,像朋友聊天Twitter thread、播客转录、访谈
formal正式结构化学术论文、白皮书

触发条件:老板说"精翻"→ 用更仔细的翻译;说"学术风格"→ formal;默认不问直接用 storytelling。

术语表:翻译时参照 <WORKSPACE>/references/glossary-ai-zh.md 统一术语。首次出现的术语用 中文(English) 格式。

欧化检查:翻译后扫一遍欧化中文问题(多余连接词/被动语态/名词堆砌),参照 wemp-ops/references/style-guide.md 的"欧化中文自检"。

内容概览图生成规则

触发条件:正文 > 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. 节点文字用文章原始术语,不用"概念1"、"模块A"等占位符
  2. 层级不超过 3 层——图是辅助理解,不是完整复述
  3. 节点数量 5-15 个——太少没信息量,太多一眼看不完
  4. 遵守 Mermaid 语法规范——详见 references/mermaid-syntax-rules.md,特别注意:
    • 1. 触发列表解析错误 → 用 ① 或 (1) 或去掉空格
    • subgraph 带空格 → 用 subgraph id["显示名"] 格式
    • 节点引用用 ID 不用显示文本
    • 不要在节点文本中使用 Emoji
  5. 配色使用语义色:
    • 核心概念: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 版本。步骤:

  1. 从刚写入的收藏文件读取 frontmatter
  2. 构建 Obsidian 版本:
    • 保留 frontmatter 的 title, source, url, author, date_published, date_collected, category, language, summary, duration, platform, bvid, tags
    • 添加 aliases: [title]
    • 正文第一行加 #tag1 #tag2 ...(标签中的空格替换为 _)
  3. 文件名 = sanitize(title).md(去掉 <>:"/\|?*,截断 80 字符)
  4. 写入到 <YOUR_OBSIDIAN_VAULT>/收藏/{中文目录}/

目录映射:

collections 目录Obsidian 目录
articles/文章/
videos/视频/
tweets/推文/
wechat/公众号/
ideas/想法/

注意:Obsidian 版本是 collections 的只读镜像。编辑应在 collections 原文件上进行,然后重新同步。

索引

每次收藏后更新:

  • index.md — 按月份倒序,含标签和来源
  • tags.md — 按标签聚合所有收藏

检索

  1. 标签匹配:tags.md 中查找
  2. 全文搜索:grep -ril "keyword" collections/
  3. 返回匹配列表 + 摘要

二创 — 小红书内容生成

  1. 按选题/标签从收藏库筛选素材
  2. 参考 references/xiaohongshu-style.md 写作风格
  3. 生成:emoji标题 + 口语化正文(300-800字) + 话题标签(5-10个)
  4. 发布配合 xiaohongshu-ops 技能

联动 — 公众号写作供料

收藏库是 wemp-ops 公众号写作的素材来源之一。wemp-ops 选题时会自动检索收藏库:

  • 标签匹配:tags.md 按关键词查找相关收藏
  • 全文搜索:grep -ril 搜索 collections/ 目录
  • 收藏文件中的"核心观点"、"要点摘录"、"我的笔记"可直接用于文章引用

收藏时的写作友好建议:

  • summary 写清楚,便于快速判断是否相关
  • tags 覆盖主题关键词,提高检索命中率
  • "我的笔记"多写自己的思考和联想,这些是文章的独特视角

分类规则

来源目录备注
博客/网页articles/默认归类
X/Twittertweets/短内容/thread
微信公众号wechat/中文长文
B站/YouTube/抖音videos/B站可自动转录
零散想法ideas/非外部来源

标签规范

  • 中文为主,英文专有名词保持英文
  • 每条 3-8 个标签
  • 常用:AI、产品设计、电商、运营、技术、商业、创业、效率工具、思维模型、管理

写作素材交接(Skill Handoff)

收藏完成后,检查内容是否与选题池中的选题相关:

  1. 读 <WORKSPACE>/collections/topics/topic-pool.md(公众号)和 <WORKSPACE>/collections/topics/xhs-topic-pool.md(小红书)
  2. 如果收藏内容的标签/主题与某个选题匹配,追加到 <WORKSPACE>/temp/handoffs/collector-to-writing.md:
    ### <收藏标题>
    - 关联选题:<匹配到的选题>
    - 来源:<URL>
    - 收藏时间:<日期>
    - 可用角度:<这个素材可以怎么用在文章里,1-2句话>
    
  3. 追加模式(append),不覆盖已有内容
  4. 如果没有匹配的选题,跳过此步(不创建空文件)

注意:此步骤是补充性的,不替代已有的"关联项目"功能。交接文件面向下游写作 skill,关联项目面向收藏库内部检索。

命令速查

用户说动作
"收藏这个 [URL/文字]"抓取→整理→存储→更新索引
"搜索 [关键词]"搜索收藏库
"最近收藏了什么"读 index.md
"关于 [标签] 的收藏"从 tags.md 筛选
"用 [选题] 写篇小红书"二创生成
"给这篇加个笔记"更新"我的笔记"部分
"删除这条收藏"移除并更新索引 + 删除 Obsidian 对应文件
"重新同步到 Obsidian"全量重新同步:python3 scripts/sync_to_obsidian.py(skill 目录下)

Signals

GitHub stars
2k
Forks
325
Last commit
Jul 2026

Ahel review

  • K1binfo
    installs-packages
  • K1binfo
    installs-packages (in README.md)

Automated review, not a security audit. Ruleset v1+k2.

Advanced
Item type
skill
Key
content-collector
Source
github.com/leoyeai/openclaw-master-skills