使用 wechatDownload 批量下载 LiveVideoStack 公众号文章
在得知 LiveVideoStack 暂停商业运行 的消息后,不少关注音视频技术、AI 架构与系统设计的开发者开始思考:如何完整保存这个平台多年积累的技术干货?毕竟这些内容涵盖编解码优化、流媒体架构、WebRTC 实践等硬核领域,极具参考价值。
面对这一需求,wechatDownload成为目前最实用的解决方案之一。这款由 GitHub 用户xiaoguyu开发的开源工具,能够通过代理监听方式自动抓取微信公众号的历史文章,并支持多格式导出,真正实现“一键归档”。
本地构建尝试:Node.js 环境下的坎坷之路
最初我打算在 y9000p 上从源码编译运行,使用的是 Windows + Git Bash(MINGW64)环境:
zhangbin@LAPTOP-DFV9CMRA MINGW64 /g/ISOFT/livevideostack $ git clone https://github.com/xiaoguyu/wechatDownload.git Cloning into 'wechatDownload'... remote: Enumerating objects: 538, done. remote: Counting objects: 100% (115/115), done. remote: Compressing objects: 100% (61/61), done. remote: Total 538 (delta 72), reused 85 (delta 53), pack-reused 423 Receiving objects: 100% (538/538), 2.84 MiB | 1.17 MiB/s, done. Resolving deltas: 100% (267/267), done.进入项目目录后执行依赖安装:
$ npm install npm WARN notice [SECURITY] axios has the following vulnerability: 1 moderate. Go here for more details: https://github.com/advisories?query=axios - Run `npm i npm@latest -g` to upgrade your npm version, and then `npm audit` to get more info. npm WARN notice [SECURITY] pug has the following vulnerability: 1 high. ... ... > electron@26.3.0 postinstall G:\ISOFT\livevideostack\wechatDownload\node_modules\electron > node install.js TypeError: Cannot destructure property `Resolver` of 'undefined' or 'null'. at Object.<anonymous> (G:\...\cacheable-lookup\source\index.js:10:5) ... npm ERR! code ELIFECYCLE npm ERR! errno 1 npm ERR! electron@26.3.0 postinstall: `node install.js` npm ERR! Exit status 1最终卡在 Electron 安装阶段。排查发现是 Node.js 版本与某些底层模块不兼容所致——尤其是anyproxy和electron对网络请求解析层存在强依赖,在高版本 V8 引擎下容易出现cacheable-lookup初始化失败的问题。
这类问题虽然可通过降级 Node 或手动打补丁解决,但过程繁琐且不稳定。对于只想快速获取内容的用户来说,显然不是最优路径。
更优选择:直接使用预编译版本
既然本地构建容易翻车,不如换个思路:用现成的可执行程序。
作者已在 GitHub Releases 提供了打包好的.exe文件,适用于 Windows 用户即开即用。无需配置环境、无需处理依赖冲突,双击启动即可进入图形界面。
图:wechatDownload 主界面简洁直观,集成了代理控制、日志输出和下载管理功能
这种“免安装 + 可视化操作”的设计极大降低了使用门槛,特别适合非开发背景的技术爱好者或研究者。
核心前置步骤:安装 CA 证书以启用 HTTPS 解密
该工具的核心机制是基于中间人(MITM)代理技术,监听微信客户端发出的 HTTPS 请求。要实现这一点,必须让系统信任其自签名根证书。
默认证书路径位于:
C:\Users\你的用户名\.anyproxy\certificates找到其中的rootCA.crt,双击安装。关键在于选择目标存储位置时,务必指定为:
“受信任的根证书颁发机构”
如果误选为“当前用户”或其他存储区,会导致浏览器或微信无法识别该证书,进而无法解密流量。这一步看似简单,却是整个流程成败的关键。
建议安装完成后,打开命令行运行以下命令验证是否生效:
certutil -store -v "Root" | findstr "AnyProxy"若能看到相关证书信息,则说明已正确导入。
启动代理服务并触发抓取
在 GUI 中点击【开启代理】按钮后,控制台会提示:
代理开启成功,准备批量下载... 请在微信打开任意一篇需要批量下载的公号的文章 别偷懒,已经打开的不算...此时本地8001端口已处于监听状态,等待来自微信的请求接入。
这里有个细节值得注意:必须重新加载页面。因为工具只会捕获新产生的网络请求,缓存中已加载的内容不会被触发。
抓取公众号文章列表:突破反爬限制的实际表现
以 LiveVideoStack 公众号为例,访问任意一篇文章:
🔗 https://mp.weixin.qq.com/s/xcIWbmGE0uJh_WLeCuHiXw
一旦页面开始加载,wechatDownload 便会拦截包含__biz=参数的请求,提取出公众号唯一 ID,并弹窗询问:
“已监测到文章,请确认是否批量下载该文章所属公号?”
点击【是】后,程序开始模拟滚动行为,分页拉取历史文章链接。日志持续刷新:
正在获取文章列表,目前数量:10 正在获取文章列表,目前数量:20 正在获取文章列表,目前数量:38 ...当数量达到约 60~70 篇时,大概率会遇到微信公众平台的反爬机制:
【抖音背后的体验增长奥秘】触发公众号的反爬机制,等待60秒后进行重试!不过 wechatDownload 内建了智能重试策略,会在设定延迟后自动恢复请求。实测过程中虽有中断,但整体流程未受影响,最终成功获取共计 539 篇文章,几乎覆盖全部公开发布内容。
多格式导出能力:满足不同使用场景
每篇文章均可导出为四种格式:
- ✅HTML:保留原始排版结构,适合离线浏览
- ✅Markdown:便于二次编辑、导入笔记软件(如 Obsidian、Typora)
- ✅PDF:归档阅读友好,适合作为参考资料打印或分享
- ✅图片资源单独下载:包括封面图、正文插图等,方便素材复用
日志示例如下:
【LiveVideoStack暂停商业化运营】保存Markdown完成 【LiveVideoStack暂停商业化运营】保存HTML完成 【LiveVideoStack暂停商业化运营】保存pdf的html文件完成 【LiveVideoStack暂停商业化运营】保存PDF完成 【LiveVideoStack暂停商业化运营】下载完成,共1张图所有文件按标题命名,目录组织清晰,后期检索极为方便。
能否绕过“仅前10篇可见”的限制?
很多人误以为微信公众号只能查看最近10篇或最多60篇历史文章,因此怀疑此类工具也无法获取更早内容。
这是误解。
实际上,wechatDownload 并非依赖前端展示逻辑,而是逆向分析了微信后台的文章列表接口。它通过构造合法请求头(如 Referer、Cookie),模拟用户不断下滑加载的行为,逐页发起请求,从而绕过页面限制。
即使中途被限流,也能通过指数退避算法自动重试。只要不频繁操作,基本可以稳定采集到几乎所有公开文章。
实测对 LiveVideoStack 的采集结果表明:539 篇无一遗漏,最早可追溯至 2017 年的技术分享。
工具原理深度剖析:白帽式抓取的技术链路
wechatDownload 的工作流程可拆解为以下几个核心环节:
启动 AnyProxy HTTP(S) 代理服务
- 监听本地8001端口
- 支持 SSL 中间人解密(需安装 CA 证书)配置设备连接代理
- 手机连同一局域网,设置 WiFi 代理指向 PC IP + 8001 端口
- 或直接在桌面版微信中打开网页文章(推荐方式,更稳定)拦截
/s?__biz=类型请求
- 匹配微信文章 URL 模式
- 提取__biz参数确定公众号唯一标识逆向解析文章列表接口
- 模拟浏览器滚动加载
- 维护会话 Cookie 和 Referer
- 分页抓取所有历史文章链接内容清洗与多格式转换
- 使用 Puppeteer 渲染页面
- 提取正文 DOM 节点(去除广告、无关脚本)
- 转换为 Markdown / PDF / HTML 输出
整个过程完全在本地运行,不上传任何数据,也不涉及账号登录或 API 调用,属于典型的“白帽抓取”实践,安全合规。
常见问题与实战建议
Q1:安装证书后仍无法解密?
A:请确保将证书导入到“受信任的根证书颁发机构”,而非“个人”或“其他人员”。可在“运行”中输入certmgr.msc查看证书库确认。
Q2:Mac/Linux 用户能用吗?
A:可以。项目基于 Electron 构建,理论上跨平台支持。Linux/macOS 用户可通过源码运行:
git clone https://github.com/xiaoguyu/wechatDownload cd wechatDownload npm install npm run dev注意可能需要手动安装carlo或调整 Chromium 启动参数。
Q3:能否只下载某一年的文章?
A:当前版本暂不支持时间筛选,但导出后的文件名通常包含发布时间(如【2023-08-15】XXX】.md),可用脚本进行批量过滤。
Q4:会不会导致微信封号?
A:风险极低。工具仅监听流量,不执行登录、发送消息等敏感操作。但仍建议仅用于个人知识归档,避免大规模高频请求。
高效利用海量资料:结合 VibeThinker-1.5B-APP 实现智能提炼
下载只是第一步。面对数百篇技术文章,如何高效“消化”才是关键。
这时候就需要引入另一个利器:VibeThinker-1.5B-APP—— 一个轻量但专精于推理任务的小参数模型。
来源:VibeThinker-1.5B-APP
尽管只有 15 亿参数,但它在多个高强度评测中表现惊人:
| 基准测试 | 成绩 | 对比表现 |
|---|---|---|
| AIME24 数学竞赛 | 80.3 | 超越 DeepSeek R1(79.8) |
| HMMT25 | 50.4 | 远超同级模型 |
| LiveCodeBench v6 | 51.1 | 略胜 Magistral Medium(50.3) |
更难得的是,其总训练成本仅7,800 美元,堪称“性价比之王”。
如何配合 wechatDownload 使用?
设想这样一个场景:你已经下载了 539 篇 LiveVideoStack 文章,现在想快速掌握每篇的核心要点。
传统做法是逐篇阅读,耗时耗力。而借助 VibeThinker-1.5B-APP,你可以实现自动化摘要:
快速上手步骤:
- 部署 VibeThinker-1.5B 镜像环境;
- 进入 JupyterLab,在
/root目录执行./1键推理.sh; - 返回网页推理界面;
- 输入提示词:“Summarize the key technical points of the following article in English.”
- 粘贴某篇文章的 HTML 或 Markdown 内容;
- 获取结构化输出,例如:
This article discusses the challenges of WebRTC congestion control in heterogeneous networks, proposing an adaptive algorithm based on RTT variance and packet loss rate…
🔁 若需批量处理,可编写 Python 脚本调用其 API 接口,自动遍历本地文件夹中的文章并生成摘要数据库。
小结:构建“获取 + 理解”的双重能力
在这个信息极易消逝的时代,真正的技术人不仅要会学习,更要懂得保存和转化知识。
- wechatDownload解决了“怎么拿”的问题——让你能在平台关闭前抢救出珍贵的技术资产;
- VibeThinker-1.5B-APP则解决了“怎么看”的问题——把海量文本转化为可检索、可复用的知识节点。
二者结合,形成一条完整的“个人知识护城河”闭环:
下载 → 存档 → 解析 → 摘要 → 归类 → 应用
这不是简单的收藏癖,而是一种主动建构知识体系的能力。
💾 所以,别再犹豫了。趁 LiveVideoStack 的内容还能访问,立刻行动起来,把那些曾启发过你的文章,稳稳地放进自己的数字仓库里。