Install
openclaw skills install @ajaxhe/fetch-archive-to-lexiangDiscover and fetch articles, videos, podcasts, and PDFs into standardized source packages, then orchestrate deduplicated Lexiang archival. 侦察和抓取文章、视频、播客与 PDF,生成标准来源工作包并编排乐享归档。
openclaw skills install @ajaxhe/fetch-archive-to-lexiang本 Skill 只负责:
本 Skill 不负责:
trans-doc-to-md 的 Prepared Markdown Package 模式。upload-markdown-to-lexiang。trans-doc-to-md 标注。source.md 是不可变原文;若同目录已有不同内容,必须换工作目录,禁止覆盖。meta.json
中的 title 和 source_title 必须保留原始标题。source.md 复制为 <原文标题>.md;抓取脚本不自行决定。trans-doc-to-md,不得在本 Skill 或当前 Agent
内实现翻译。scripts/upload_video_via_openapi.py 的 VOD 路径。<work-dir>/
├── 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"
}
允许保留作者、日期、时长、媒体文件等扩展字段。
references/lessons-learned.md 中全部 P0 教训。~/.fetch_article/cdp_port)和有效 page target,复用已有浏览器上下文与登录态,
并在其中新开任务标签页;端口未启动时主动启动 CDP Chrome。CDP 连接失败
必须退出,禁止静默回退到无登录态的 Testing Chrome。只有用户明确要求隔离浏览器时
才使用 --no-cdp。source.md。平台细节见 references/platform-specific.md。
| 来源 | 处理方式 |
|---|---|
| 微信公众号 | 可归档为乐享 hyperlink;若要求在线 Markdown 页面则使用文章抓取流程 |
| 免费/付费网页 | scripts/fetch_article.py fetch "<URL>" --output-dir <DIR>(默认 CDP) |
| YouTube | scripts/yt_download_transcribe.py "<URL>" --output-dir <DIR> |
| 播客 | scripts/podcast_to_lexiang.py "<URL>" --output-dir <DIR> |
| PDF / 乐享 PDF | 准备 PDF/解析原文后交给 trans-doc-to-md |
三个抓取/转录脚本均以 source.md + meta.json 为标准输出。YouTube 和播客同时保留
下载媒体、ASR 中间产物;它们不翻译、不上传 Markdown。
读取 meta.json.language:
source.md 完整后,由编排流程复制为 <原文标题>.md。trans-doc-to-md 的
Prepared Markdown Package 模式,输入整个工作包。该 Skill 负责清洗、双语翻译、
图片/富元素保真和完整性验证,并输出 <原文标题>.md。不得修改 source.md。最终 Markdown 必须继续使用相对图片路径。
目标优先级:用户指定 > 工作区规则 > 本 Skill 的 gitignored config.json > 初始化。
root_entry_id。YYYY-MM-DD folder;不存在才创建,使用
before=<当前第一条目 ID> 置顶。<原文标题> 文件夹。python3 "<uploader-root>/scripts/lexiang_upload.py" upload \
"<work-dir>/<原文标题>.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 "<SPACE_ID>" \
--parent-entry-id "<标题目录ID>" \
--media-type video
音频使用 --media-type audio。不得用普通文件上传替代 VOD。
□ 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
用户指出错误、自检失败、发现新平台规律或同类问题再次出现时,更新
references/lessons-learned.md。历史根因可保留,但必须明确其旧方案已废弃。
问题归属:
trans-doc-to-md。upload-markdown-to-lexiang。| 脚本 | 职责 |
|---|---|
fetch_article.py | 网页抓取,生成 source.md、images/、meta.json |
yt_download_transcribe.py | YouTube 下载、转录、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.mdreferences/pdf-processing.mdreferences/youtube-video.mdreferences/podcast-audio.mdreferences/platform-specific.mdreferences/troubleshooting.mdreferences/lessons-learned.md