把微信公众号文章和视频号内容保存成可检索、可复核、可继续加工的本地资料,而不是只留下一个随时可能失效的链接。
输入公开的 mp.weixin.qq.com 文章链接,得到:
- 标题、作者、公众号、发布时间和原文链接
- Markdown 正文、清洗后的 HTML、原始网页响应
- 尽可能本地化的原文图片
- 包含完成状态和校验信息的
metadata.json
支持两种来源:
- 已有本地 MP4/MOV:直接归档并转写
- 只有视频号内容:先在 macOS 微信客户端完整播放,再从本机新增缓存中识别并复制目标视频
最终可得到原视频、封面、元信息、Markdown/纯文本逐字稿、逐词时间戳 JSON 和 SRT 字幕。
视频号能力不是“粘贴分享链接后由服务器下载”。它读取的是用户自己在 Mac 微信里已经播放并有权访问的本地缓存,不安装代理、根证书或流量解密工具。
这是一个 Codex Skill。克隆到 Codex Skills 目录后,重新开始一个 Codex 任务即可使用:
git clone https://github.com/JoeSangAI/archive-wechat-content.git \
~/.codex/skills/archive-wechat-content公众号文章归档的基础依赖:
- Python 3.10+
curlpandoc(可选;缺少时使用内置的 HTML → Markdown 转换)
视频号与转写额外需要:
- macOS 和桌面版微信(自动捕获本地微信缓存时)
ffmpeg/ffprobe- Node.js /
npx - HyperFrames 的本地转写能力
安装后可以直接说:
归档这篇微信文章:https://mp.weixin.qq.com/s/...
或:
把这个视频号视频保存下来并生成逐字稿。
Codex 会根据输入类型选择公众号文章、本地视频或微信缓存采集流程,并按 references/output-contract.md 检查结果是否完整。
python3 scripts/archive_article.py \
'https://mp.weixin.qq.com/s/ARTICLE_ID' \
--out '/absolute/path/to/article-bundle'python3 scripts/capture_wechat_video.py adopt '/path/to/video.mp4' \
--out '/absolute/path/to/video-bundle'
python3 scripts/transcribe_video.py \
'/absolute/path/to/video-bundle/video.mp4' \
--out '/absolute/path/to/video-bundle' \
--model small \
--language zh先记录缓存基线:
python3 scripts/capture_wechat_video.py snapshot \
--state '/tmp/wechat-video-baseline.json'然后在微信客户端完整播放目标视频,并执行:
python3 scripts/capture_wechat_video.py capture \
--state '/tmp/wechat-video-baseline.json' \
--out '/absolute/path/to/video-bundle' \
--link '视频号分享链接' \
--timeout 600基础回归检查:
python3 scripts/verify_install.py包含真实中文语音识别的完整检查:
python3 scripts/verify_install.py --with-asr- 仅支持公开微信公众号文章;遇到验证码、环境异常页或正文过短时会明确失败,不会把空壳页面伪装成成功。
- 微信桌面版升级后可能改变缓存目录结构,届时需要同步更新识别规则。
- 视频号捕获只读取任务期间新出现或更新的可播放媒体;如果同时出现多个候选,应人工核对封面和时长。
- 逐字稿会做基础幻觉和重复检查,但专有名词仍建议人工复核。
- 请只处理自己有权访问的内容,并保留来源与作者信息。