Design & media

Fetch & Archive to Lexiang

Try it

Discover and fetch articles, videos, podcasts, and PDFs into standardized source packages, then orchestrate deduplicated Lexiang archival. 侦察和抓取文章、视频、播客与 PDF...

What it does

Discover and fetch articles, videos, podcasts, and PDFs into standardized source packages, then orchestrate deduplicated Lexiang archival. 侦察和抓取文章、视频、播客与 PDF,生成标准来源工作包并编排乐享归档。

The skill document

抓取来源并编排乐享归档

本 Skill 只负责:

  1. 来源侦察和抓取方式选择。
  2. 网页抓取、视频/播客下载与转录。
  3. 生成统一工作包。
  4. 乐享目录、去重和视频/音频 VOD 编排。

本 Skill 不负责:

  • 非中文 Markdown 的清洗、翻译和完整性验证:统一委托 trans-doc-to-mdPrepared Markdown Package 模式。
  • 任何 Markdown 页面写入:统一委托 upload-markdown-to-lexiang
  • 在上传后用 MCP 二次渲染正常富元素:uploader 直接渲染 trans-doc-to-md 标注。

强制边界

  1. source.md 是不可变原文;若同目录已有不同内容,必须换工作目录,禁止覆盖。
  2. 禁止摘要替代原文,禁止丢失图片、Show Notes 或转录内容。
  3. 最终 Markdown 文件名必须是原文标题;文件名非法字符可安全替换,但 meta.json 中的 titlesource_title 必须保留原始标题。
  4. 中文来源可由编排流程把 source.md 复制为 <原文标题>.md;抓取脚本不自行决定。
  5. 非中文来源必须先交给 trans-doc-to-md,不得在本 Skill 或当前 Agent 内实现翻译。
  6. Markdown 页面只用 uploader 写入,不得恢复任何旧导入、文件上传或本地上传器副本。
  7. 视频和音频继续使用 scripts/upload_video_via_openapi.py 的 VOD 路径。
  8. 上传后少量人工增量修复仅是异常维护路径;每次修复必须同步本地最终 Markdown。

统一工作包

/
├── source.md               # 不可变原文
├── images/                 # 可选,引用路径保持相对
├── meta.json
└── <原文标题>.md           # 编排完成后的最终 Markdown

meta.json 标准字段:

{
  "title": "归档标题",
  "source_url": "https://...",
  "source_title": "原文标题",
  "source_type": "article|youtube|podcast|pdf",
  "language": "zh|en|...",
  "parent_id": "可选的目标目录 ID"
}

允许保留作者、日期、时长、媒体文件等扩展字段。

Step 0:预检与来源侦察

  1. 阅读 references/lessons-learned.md 中全部 P0 教训。
  2. 侦察标题、作者、日期、语言、长度、图片数、媒体时长、付费墙和登录墙。
  3. 有图片必须用抓取脚本下载,不能只依赖 WebFetch。
  4. 网页抓取默认使用 CDP:先检查已配置端口(默认 9222,实际端口记录在 ~/.fetch_article/cdp_port)和有效 page target,复用已有浏览器上下文与登录态, 并在其中新开任务标签页;端口未启动时主动启动 CDP Chrome。CDP 连接失败 必须退出,禁止静默回退到无登录态的 Testing Chrome。只有用户明确要求隔离浏览器时 才使用 --no-cdp
  5. 确定新的独立工作目录,避免覆盖已有 source.md

平台细节见 references/platform-specific.md

Step 1:抓取并生成工作包

来源处理方式
微信公众号可归档为乐享 hyperlink;若要求在线 Markdown 页面则使用文章抓取流程
免费/付费网页scripts/fetch_article.py fetch "" --output-dir (默认 CDP)
YouTubescripts/yt_download_transcribe.py "" --output-dir
播客scripts/podcast_to_lexiang.py "" --output-dir
PDF / 乐享 PDF准备 PDF/解析原文后交给 trans-doc-to-md

三个抓取/转录脚本均以 source.md + meta.json 为标准输出。YouTube 和播客同时保留 下载媒体、ASR 中间产物;它们不翻译、不上传 Markdown。

Step 2:内容加工

读取 meta.json.language

  • 中文:验证 source.md 完整后,由编排流程复制为 <原文标题>.md
  • 非中文或语言不确定:调用 trans-doc-to-mdPrepared Markdown Package 模式,输入整个工作包。该 Skill 负责清洗、双语翻译、 图片/富元素保真和完整性验证,并输出 <原文标题>.md

不得修改 source.md。最终 Markdown 必须继续使用相对图片路径。

Step 3:乐享目录、去重与上传

目标优先级:用户指定 > 工作区规则 > 本 Skill 的 gitignored config.json > 初始化。

  1. 获取目标知识库 root_entry_id
  2. 查询并复用当天 YYYY-MM-DD folder;不存在才创建,使用 before=<当前第一条目 ID> 置顶。
  3. 视频/播客在日期目录下查询并复用 <原文标题> 文件夹。
  4. 在目标目录内按规范化标题、来源 URL 和条目类型去重;确认是同一来源后才覆盖。
  5. 调用 uploader:
python3 "/scripts/lexiang_upload.py" upload \
  "/<原文标题>.md" \
  --parent-id "<目标目录ID>" \
  --name "<原文标题>" \
  --pin \
  --json

uploader 版本必须满足 >=1.1.0,<2.0.0。它直接渲染 trans-doc-to-md 的 callout、表格和图片标注,并完成线上对账。

视频/音频在 Markdown 上传成功后独立归档:

python3 scripts/upload_video_via_openapi.py "<媒体文件>" \
  --space-id "" \
  --parent-entry-id "<标题目录ID>" \
  --media-type video

音频使用 --media-type audio。不得用普通文件上传替代 VOD。

Step 4:交付自检

□ source.md 未被修改,且不是摘要
□ meta.json 标准字段完整,原文标题与来源 URL 可追溯
□ 作者与发布日期来自 canonical meta/time/JSON-LD,并在最终文档顶部只展示一次
□ images/ 中引用文件完整,图文顺序保留
□ 订阅引导、相关推荐、newsletter disclaimer、页脚图片等平台噪音已在抓取转 MD 时过滤
□ 非中文包已通过 trans-doc-to-md 完整性验证
□ 最终文件名为原文标题
□ uploader verified == true,local_images == remote_images
□ 富元素由 uploader 直接渲染,无常规 MCP 二次渲染
□ 文档目录、去重结果和 VOD 媒体目录正确
□ 人工增量修复已同步本地最终 Markdown
□ 浏览器抓取复用了 CDP 上下文;未启动 Google Chrome for Testing

Step 5:自省

用户指出错误、自检失败、发现新平台规律或同类问题再次出现时,更新 references/lessons-learned.md。历史根因可保留,但必须明确其旧方案已废弃。

问题归属:

  • 抓取、转录、工作包、目录/去重/VOD:本 Skill。
  • 清洗、翻译、富元素识别、完整性:trans-doc-to-md
  • Markdown 渲染、页面写入和线上对账:upload-markdown-to-lexiang

脚本边界

脚本职责
fetch_article.py网页抓取,生成 source.mdimages/meta.json
yt_download_transcribe.pyYouTube 下载、转录、Show Notes、标准工作包
podcast_to_lexiang.py播客下载、转录、Show Notes、标准工作包
lexiang_pdf_parse.py乐享 PDF 来源解析桥接
upload_video_via_openapi.py视频/音频 VOD 上传
md_to_pdf.py用户明确要求时生成 PDF

本 Skill 不包含翻译脚本或 Markdown → 乐享 page 上传脚本。

参考文档

  • references/lexiang-upload.md
  • references/pdf-processing.md
  • references/youtube-video.md
  • references/podcast-audio.md
  • references/platform-specific.md
  • references/troubleshooting.md
  • references/lessons-learned.md

Related skills

乐享知识库 MCP 全功能 Skill。当用户提到「乐享」「知识库」「个人知识库」「我的知识库」「lexiang」,或提供 lexiangla.com 链接,或涉及知识库的搜索/写入/编辑/文件/配置等操作时使用。

42 installs

Convert academic papers into structured Chinese reading reports with original figures. Supports arXiv HTML and local PDF inputs. For arXiv links, HTML mode is preferred for textual accuracy. Use when the user asks to summarize, read, analyze, or create a reading report for an academic paper.

26 installs

Download ArXiv source or PDF artifacts per paper, read the paper, and write a structured summary.md in your chosen language.

116 installs1 stars

Model-led arXiv collection: author queries, judge relevance per result, then merge and dedupe into a final paper set.

97 installs

Turn a Douyin or Xiaohongshu link into a concise summary, an actionable todo list, and a recommended reminder time. The hosted service handles the platform a...

32 installs

Convert PDFs, images, Office, HTML, and OFD documents to structured Markdown or JSON via xparse-cli.

28 installs2 stars