首页龙虾技能列表 › 微信公众号媒体下载器 WeChat Media Downloader — 微信公众号媒体下载器

微信公众号媒体下载器 WeChat Media Downloader — 微信公众号媒体下载器

v1.0.0

下载微信公众号文章(mp.weixin.qq.com)中的视频、音频和音乐卡片。适用于:用户想把公众号文章里的1个或多个视频、多个音频/音乐保存到本地;直接抓取被微信“环境异常/去验证”拦截;需要通过可见Chrome+人工验证+远程调试抓取真实媒体地址,再自动下载、提取标题、重命名并整理输出。优先用于中文微信公众号内容场景。

0· 105·0 当前·0 累计
by @ewanwu (EwanWu)·MIT-0
下载技能包
License
MIT-0
最后更新
2026/4/1
安全扫描
VirusTotal
无害
查看报告
OpenClaw
安全
high confidence
该技能的代码、指令和需求与其声明的目的(通过用户驱动的Chrome远程调试工作流从mp.weixin.qq.com保存媒体)保持一致;它不请求无关凭据,也不联系意外的外部端点。
评估建议
该技能内部一致,实现了声明的CDP+人工验证方法。使用前请注意:1)仅将其用于您有权保存的媒体;2)仅在可信的、防火墙保护的机器上使用远程调试标志启动Chrome(脚本连接到localhost:9222),避免向网络暴露该端口;3)自己检查包含的脚本(简短纯Python),并在本地以普通用户身份运行,而非特权用户;4)该技能建议通过pip安装Playwright和可选的yt-dlp,如您有策略顾虑请审查这些包。如在共享或远程主机上运行,请考虑打开CDP端口的风险以及该主机上存在下载文件的风险。...
详细分析 ▾
用途与能力
名称/描述与包含的脚本和运行时指令相匹配:capture_wechat_media.py和download_wechat_media.py都实现了针对微信文章媒体(mpvideo.qpic.cn和res.wx.qq.com)的基于CDP的捕获和HTTP下载流程。建议的工具(playwright、yt-dlp)对于此任务是合理的。
指令范围
SKILL.md保持在声明目的范围内:指示先尝试无头获取,然后使用可见Chrome+人工验证+CDP来捕获媒体URL,保存页面HTML和捕获的请求,然后下载和重命名。一个操作/安全说明:要求用户启动Chrome时使用--remote-debugging-port=9222(本地CDP访问),这对于工作流是必要的,但如果该端口暴露给不受信任网络则存在操作安全影响。指令不要求代理读取无关文件或将数据泄露到第三方端点。
安装机制
包中没有自动安装规范(仅指令安装)。README建议用户级pip安装playwright和可选的yt-dlp,对于声明的功能来说是适当和成比例的。包中没有来自不受信任URL的下载或存档提取。
凭证需求
该技能不请求环境变量、凭据和配置路径。脚本仅连接到localhost CDP(127.0.0.1:9222)并获取公共媒体URL,这与预期功能匹配。不请求或使用无关的密钥或令牌。
持久化与权限
技能元数据不强制always:true,也不请求持久特权。脚本仅将本地工件(manual_page.html、JSON清单、下载的媒体)写入用户指定的目录,不修改其他技能或系统级设置。
安全有层次,运行前请审查代码。

License

MIT-0

可自由使用、修改和再分发,无需署名。

运行时依赖

无特殊依赖

版本

latestv1.0.02026/4/1

初始发布:支持公众号文章视频与多段音频抓取、人工验证接管、标题提取、重命名与整理输出。

● 无害

安装命令 点击复制

官方npx clawhub@latest install wechat-media-downloader-weixin
镜像加速npx clawhub@latest install wechat-media-downloader-weixin --registry https://cn.clawhub-mirror.com

技能文档

仅在用户有权访问和保存目标媒体时使用。

核心思路

不要和微信反爬硬碰硬。最稳的成功路径是:

  • 先试普通抓取。
  • 一旦页面返回“环境异常 / 去验证”,立即切换为:
- 可见 Chrome - 用户手动完成验证 - 通过 DevTools 远程调试连接已打开页面 - 抓取真实视频/音频地址 - 下载并按文章顺序重命名

执行流程

1) 先判定是否被拦截

  • 直接请求文章链接。
  • 若返回微信验证页,不继续 headless 硬爬,直接进入人工验证路线。

2) 安装最小工具

优先用户级安装,不要求 sudo。

需要:

  • playwright
  • yt-dlp(可选;有时直接 HTTP 下载更稳)

推荐命令:

python3 -m pip install --user playwright yt-dlp

3) 让用户启动可见 Chrome

让用户执行:

google-chrome --remote-debugging-port=9222 --user-data-dir=/tmp/openclaw-wechat-debug

然后让用户:

  • 打开目标公众号文章
  • 完成微信验证/登录
  • 确认页面中的视频和音频能正常显示

4) 连接真实浏览器会话抓 URL

使用:

  • scripts/capture_wechat_media.py

做法:

  • 先读取 http://127.0.0.1:9222/json/version
  • 取其中 webSocketDebuggerUrl
  • 用 CDP 连入 Chrome
  • 监听 request / response
  • 同时保存页面 HTML

若只抓到视频没抓到音频:

  • 让用户把每个音频都点一次播放
  • 重新抓取

5) 下载媒体

  • 视频:优先使用抓到的 mpvideo.qpic.cn 直链
  • 音频:使用 https://res.wx.qq.com/voice/getvoice?mediaid=

注意:

  • 某些 MP4 直链用 yt-dlp 可能卡收尾;这时直接用 Python HTTP 流式下载反而更稳。

6) 提取标题并重命名

从文章 HTML 中提取:

  • 文章标题

按文章顺序输出成:

  • 00. <视频标题>.mp4
  • 01. <音频标题>.mp3
  • 02. <音频标题>.mp3
  • ...

7) 交付与清理

  • 把最终文件放入一个干净的新目录
  • 可以清理:临时 HTML、JSON、.part、乱码副本、抓取脚本输出
  • 不要默认删除最终交付目录

经验规则

  • 微信公众号抓取的关键不是“更强的爬虫”,而是“接管已通过验证的真实浏览器会话”。
  • 纯 headless 路线经常失败。
  • 音频 URL 经常只有播放后才出现。
  • 如果 connect_over_cdp('http://127.0.0.1:9222') 返回 400,不要死磕;先取 /json/version 里的 websocket 地址再连接。

自带资源

  • scripts/capture_wechat_media.py:连接 Chrome 调试端口,抓取视频/音频请求与页面 HTML
  • scripts/download_wechat_media.py:下载视频和音频,并根据文章内容重命名
  • references/reusable-workflow.md:可复用操作清单与故障处理
数据来源:ClawHub ↗ · 中文优化:龙虾技能库
OpenClaw 技能定制 / 插件定制 / 私有工作流定制

免费技能或插件可能存在安全风险,如需更匹配、更安全的方案,建议联系付费定制

了解定制服务