# 微信视频号批量下载工具配置指南 > 工具:ltaoo/wx_channels_download v260706 > 平台:macOS Apple Silicon (arm64) > 微信版本:4.1.11 (App Store 版) > 监控视频号:剑哥聊餐饮(finder: `sphnu5kSqZT224x`) > 下载目录:`/Volumes/Projects/视频/剑哥聊餐饮` > 整理日期:2026-07-14(更新于 2026-07-14) --- ## 一、工具简介 `wx_channels_download` 是一个开源的微信视频号视频下载工具,支持: - 单个视频下载 - 批量下载某创作者的全部视频 - 自动解密加密视频 - Web 管理页面管理下载任务 - 自动去重,避免重复下载 **GitHub 地址**:https://github.com/ltaoo/wx_channels_download --- ## 二、下载与安装 ### 1. 下载预编译版本 ```bash # 创建目录 mkdir -p /Users/freedak/WorkBuddy/2026-07-14-07-31-44/wx_video_download # 下载 macOS arm64 版本(v260706) cd /Users/freedak/WorkBuddy/2026-07-14-07-31-44/wx_video_download curl -L -o wx_video_download_darwin_arm64.zip \ "https://github.com/ltaoo/wx_channels_download/releases/download/v260706/wx_video_download_v260706_darwin_arm64.zip" ``` ### 2. 解压 ```bash unzip -o wx_video_download_darwin_arm64.zip ``` ### 3. 移除 macOS 隔离标记 ```bash xattr -d com.apple.quarantine wx_video_download ``` ### 4. 文件结构 ``` wx_video_download/ ├── wx_video_download # 可执行文件 └── config.yaml # 配置文件 ``` --- ## 三、配置文件详解 配置文件路径:`wx_video_download/config.yaml` ```yaml # 调试模式(排查问题时开启) debug: error: true echolog: true # 下载设置 download: defaultHighest: false # 是否下载最高画质 filenameTemplate: "{{filename}}_{{spec}}" dir: "/Volumes/Projects/视频/剑哥聊餐饮" # 下载目录(自定义) pauseWhenDownload: false # 下载时是否暂停视频播放 playDoneAudio: true # 下载完成时播放提示音 frontend: false # API 服务 api: protocol: "http" hostname: "127.0.0.1" port: 2022 # Web 管理页面端口 # 代理设置 proxy: system: true # 是否设置系统代理 hostname: "127.0.0.1" port: 2023 # 代理服务端口 tun: true # TUN 模式(关键!必须开启) skipInstallRootCert: false # 是否跳过根证书安装 # Cloudflare 配置(可选,用于 API 解析模式) cloudflare: accountId: "" apiToken: "" sphCookie: "561553b295037d16=..." # 从 yuanbao.tencent.com 获取(已配置) ``` ### 关键配置说明 | 配置项 | 推荐值 | 说明 | |--------|--------|------| | `proxy.tun` | `true` | TUN 模式通过虚拟网卡拦截流量,是 macOS 上的必选项 | | `debug.error` | `true` | 排查问题时开启,正常运行可关闭 | | `debug.echolog` | `true` | 排查问题时开启,正常运行可关闭 | | `download.dir` | `/Volumes/Projects/视频/剑哥聊餐饮` | 自定义下载目录,可设为任意路径 | | `download.defaultHighest` | `false` | 设为 `true` 可下载最高画质 | | `cloudflare.sphCookie` | 从 yuanbao.tencent.com 获取 | 用于 API 解析模式,可选配置 | --- ## 四、启动步骤 ### 第 1 步:禁用 IPv6(macOS 关键步骤!) > ⚠️ **这是 macOS 上工具能否正常工作的关键!** > > macOS 微信视频号浏览器 (WeChatAppEx) 默认使用 IPv6 进行所有网络连接。 > TUN 模式仅拦截 IPv4 流量,IPv6 流量会完全绕过工具,导致下载按钮无法注入。 ```bash # 禁用 Wi-Fi 接口的 IPv6 sudo networksetup -setv6off Wi-Fi # 验证是否已禁用 networksetup -getinfo Wi-Fi # 应显示:IPv6: Off ``` > 📌 **恢复 IPv6**(使用完毕后执行): > ```bash > sudo networksetup -setv6automatic Wi-Fi > ``` ### 第 2 步:关闭 VPN / 代理软件 > ⚠️ 如果运行了 LetsVPN、Clash、Surge 等代理软件,必须先关闭! > > 这些软件会占用代理端口或干扰 TUN 虚拟网卡,导致工具无法正常拦截流量。 ``` # 检查 7890 端口是否被占用(LetsVPN 默认端口) lsof -i :7890 # 如有占用,退出对应的 VPN 软件 ``` ### 第 3 步:以管理员身份启动工具 ```bash sudo /Users/freedak/WorkBuddy/2026-07-14-07-31-44/wx_video_download/wx_video_download ``` 首次运行会自动安装 SunnyNet 根证书(用于 HTTPS 解密),输入电脑密码即可。 ### 第 4 步:确认启动成功 终端应出现以下提示: ``` v260706 问题反馈 https://github.com/ltaoo/wx_channels_download/issues 配置文件 /Users/freedak/WorkBuddy/2026-07-14-07-31-44/wx_video_download/config.yaml 下载目录 /Users/freedak/Downloads API服务启动成功, 地址: 127.0.0.1:2022 代理服务启动成功, 地址: 127.0.0.1:2023 已启用 TUN 模式,流量将通过虚拟网卡自动转发 请打开需要下载的视频号页面进行下载 按 Ctrl+C 退出... ``` ### 第 5 步:重启微信 1. 右键 Dock 微信图标 → **退出**(确保完全关闭) 2. 等待几秒 3. 重新打开微信 ### 第 6 步:打开视频号 1. 微信 → **发现** → **视频号** 2. 等首页视频刷出来 3. 视频播放后暂停,查看视频下方操作栏是否出现 **下载按钮** --- ## 五、SunnyNet 根证书信任设置 如果首次运行后证书未自动信任,需要手动设置: ### 方法一:终端命令 ```bash # 从钥匙串导出证书 security find-certificate -c "SunnyNet" -a -p /Library/Keychains/System.keychain > /tmp/SunnyNet.pem # 添加到系统信任 sudo security add-trusted-cert -d -r trustRoot -k /Library/Keychains/System.keychain /tmp/SunnyNet.pem # 添加到用户信任 security add-trusted-cert -r trustRoot -k ~/Library/Keychains/login.keychain /tmp/SunnyNet.pem ``` ### 方法二:钥匙串访问 GUI 1. `Cmd + Space` 搜索 **钥匙串访问**,打开它 2. 左侧选择 **系统** 钥匙串 3. 上方标签选 **证书** 4. 找到 **SunnyNet** → 双击打开 5. 展开 **信任** 那一栏 6. 把"使用此证书时"改为 **始终信任** 7. 关闭窗口,输入电脑密码确认 --- ## 六、下载方式 ### 方式一:单个视频下载 1. 在视频号首页刷视频 2. 每个视频的操作栏(点赞/评论/转发旁边)会多出一个 **下载按钮** 3. 页面右侧也有一个 **悬浮下载按钮** 4. 点击即可下载当前视频 ### 方式二:微信内批量下载(推荐) 1. 在视频号中找到目标创作者 → 点击头像/名称进入 **TA 的个人主页** 2. 主页右上角有一个 **下载图标**(向下箭头按钮) 3. **向下滚动**主页,让更多视频加载出来 > 每刷出一批视频,工具就会自动检测到 4. 点击右上角 **下载图标** → 弹出下载面板 5. 面板中会列出已检测到的所有视频 → **勾选要下载的视频** → 点击下载 ### 方式三:Web 管理页面批量下载 **访问地址**:http://127.0.0.1:2022/download 1. 在微信视频号中浏览/播放视频(工具会自动检测) 2. 打开浏览器访问 Web 管理页面 3. 页面中会列出所有已检测到的视频 4. **全选/多选**视频 → 点击批量下载 5. 实时查看下载进度 --- ## 七、下载文件位置 | 配置 | 路径 | |------|------| | 当前下载目录 | `/Volumes/Projects/视频/剑哥聊餐饮/` | | 默认下载目录 | `%UserDownloads%`(即 `/Users/freedak/Downloads/`) | | 自定义方法 | 修改 `config.yaml` 中 `download.dir` 字段,重启工具生效 | > 修改下载目录后需重启工具才能生效。在终端 `Ctrl+C` 停止工具,重新运行启动命令即可。 文件命名格式:`视频标题_画质.mp4` 示例文件: ``` 餐饮赚钱的本质就是读懂人性#餐饮 #餐饮人_xWT111.mp4 连锁餐饮如何解决餐厅统采统配问题_xWT111.mp4 餐厅从单店到连锁必须经过的五个阶段_xWT111.mp4 ``` --- ## 八、完整排查过程记录 本次配置过程中遇到的问题及解决方案,按排查顺序记录: ### 问题 1:nobiyou/wx_channel 不支持 macOS - **现象**:nobiyou 版仅提供 Windows 可执行文件 - **解决**:改用 ltaoo/wx_channels_download,明确支持 macOS ### 问题 2:SunnyNet 证书信任设置不完整 - **现象**:证书已安装到钥匙串,但 `trust settings: 0`(未设为"始终信任") - **解决**:导出证书并手动添加信任 ```bash security find-certificate -c "SunnyNet" -a -p /Library/Keychains/System.keychain > /tmp/SunnyNet.pem sudo security add-trusted-cert -d -r trustRoot -k /Library/Keychains/System.keychain /tmp/SunnyNet.pem security add-trusted-cert -r trustRoot -k ~/Library/Keychains/login.keychain /tmp/SunnyNet.pem ``` ### 问题 3:LetsVPN 占用 7890 端口 - **现象**:微信视频号浏览器将流量发到 `127.0.0.1:7890`(LetsVPN 代理),完全绕过工具 - **解决**:关闭 LetsVPN ### 问题 4:微信沙箱绕过系统代理 - **现象**:微信 Mac 客户端运行在 App Sandbox 中,系统代理模式(`tun: false`)下部分流量不走代理 - **解决**:启用 TUN 模式(`tun: true`),通过虚拟网卡在网络层拦截流量 ### 问题 5:微信视频号走 IPv6 绕过 TUN(根因!) - **现象**:TUN 模式仅拦截 IPv4 流量,而 macOS 微信视频号浏览器 (WeChatAppEx) 所有连接走 IPv6,完全绕过 TUN 虚拟网卡 - **诊断**: ```bash lsof -i -n -P | grep WeChatApp | grep ESTABLISHED # 所有连接均为 IPv6:[2409:8a00:...] -> [2409:8c02:...]:443 ``` - **解决**:禁用 Wi-Fi 接口的 IPv6 ```bash sudo networksetup -setv6off Wi-Fi ``` - **验证**:禁用后 WeChatApp 所有连接从 `10.99.99.1`(TUN 虚拟网卡)发出 ```bash lsof -i -n -P | grep WeChatApp | grep ESTABLISHED # 所有连接均为 IPv4:10.99.99.1:xxxxx -> x.x.x.x:443 ``` ### 问题 6:`[FRONTEND ERROR]没有获取到视频详情` - **现象**:工具拦截到流量,JS 注入正常,但前端无法获取视频详情 - **原因**:间歇性问题(GitHub Issue #415),多刷新几次视频可解决 - **解决**:在视频号中上下滑动切换几个视频,错误会自行消失 --- ## 九、常见问题 | 问题 | 解决方案 | |------|---------| | 没看到下载按钮 | 1. 检查 IPv6 是否已禁用:`networksetup -getinfo Wi-Fi` 应显示 `IPv6: Off`;2. 检查 VPN 是否已关闭;3. 重启微信 | | 代理服务启动失败 | 检查端口 2022/2023 是否被占用:`lsof -i :2022` | | 与 VPN/翻墙软件冲突 | 关闭 VPN 软件,或设置 `proxy.tun: true` 使用 TUN 模式 | | 证书安装失败 | 确保以 `sudo` 运行,参考第五节手动信任证书 | | 下载的视频无法播放 | 工具会自动解密,如仍无法播放检查版本是否为最新 | | 想下载最高画质 | `config.yaml` 中设 `download.defaultHighest: true` | | `channels.available: false` | 不影响微信内下载按钮使用,Web 搜索功能可能受限 | | `[FRONTEND ERROR]没有获取到视频详情` | 间歇性问题,在视频号中多切换几个视频即可 | --- ## 十、使用完毕后恢复 ```bash # 1. 在工具终端按 Ctrl+C 停止工具 # 2. 恢复 IPv6 sudo networksetup -setv6automatic Wi-Fi # 3. 如需要,重新打开 VPN 软件 ``` --- ## 十一、sphCookie 配置(API 解析模式) sphCookie 用于工具的 API 解析模式,可以在不依赖微信客户端 WebSocket 连接的情况下解析视频号分享链接。 ### 获取方法 1. 使用 Chrome 浏览器访问 `https://yuanbao.tencent.com` 并登录 2. 打开 Chrome 开发者工具(F12)→ Application → Cookies 3. 找到 `yuanbao.tencent.com` 域名下的所有 cookie 4. 复制完整 cookie 字符串 ### 配置方法 将 cookie 写入 `config.yaml`: ```yaml cloudflare: sphCookie: "561553b295037d16=...; _TDID_CK=..." ``` ### 自动提取脚本 工具目录下提供了 Python 脚本可自动从 Chrome 提取 cookie: ```bash python3 /Users/freedak/WorkBuddy/2026-07-14-07-31-44/wx_video_download/extract_sph_cookie.py ``` > 注意:cookie 有时效性,过期后需重新获取。配置后需重启工具生效。 --- ## 十二、API 接口说明 工具启动后提供以下 API 接口(基地址 `http://127.0.0.1:2022`): | 接口 | 方法 | 说明 | |------|------|------| | `/api/channels/version` | GET | 获取工具版本信息 | | `/api/channels/parse_sph` | GET | 解析视频号分享链接(需 `url` 参数) | | `/api/channels/feed/profile` | GET | 获取创作者信息(需微信客户端连接) | | `/api/channels/contact/feed/list` | GET | 获取创作者视频列表(需微信客户端连接) | | `/api/channels/shared_feed/profile` | GET | 获取分享链接对应的创作者信息 | | `/api/sph` | GET | SPH 相关功能 | | `/api/open_download_dir` | GET | 打开下载目录 | | `/api/task/create_batch` | GET | 创建批量下载任务 | ### 测试 API ```bash # 检查工具是否运行 curl -s http://127.0.0.1:2022/api/channels/version # 解析视频号分享链接 curl -s "http://127.0.0.1:2022/api/channels/parse_sph?url=https://weixin.qq.com/sph/xxxxx" ``` > 注意:`feed/profile` 和 `contact/feed/list` 接口需要微信客户端通过 WebSocket 连接到工具才能工作。使用前需确保微信已打开且工具成功拦截到微信流量。 --- ## 十三、自动监控下载(规划中) ### 目标 每日自动监控指定视频号(剑哥聊餐饮),发现新视频后自动下载。 ### 监控目标 - **视频号**:剑哥聊餐饮 - **Finder 用户名**:`sphnu5kSqZT224x` - **下载目录**:`/Volumes/Projects/视频/剑哥聊餐饮/` ### 方案设计 由于工具获取视频号完整视频列表的 API(`contact/feed/list`)依赖微信客户端的 WebSocket 连接,全自动方案需要微信保持运行状态。 **流程**: 1. 检查工具和微信是否在运行 2. 通过 `/api/channels/contact/feed/list` API 获取视频号的完整视频列表 3. 与已下载文件比对,找出新视频 4. 自动下载新视频 5. 通过定时任务每日执行 **前提条件**: - 工具以 `sudo` 运行 - IPv6 已禁用 - 微信保持后台运行(无需手动操作) - VPN 已关闭 --- ## 十四、关键技术要点总结 1. **IPv6 是 macOS 上的最大坑**:微信视频号浏览器默认走 IPv6,必须禁用 IPv6 才能让 TUN 拦截到流量 2. **TUN 模式优于系统代理模式**:系统代理模式无法拦截 WebSocket 连接,TUN 模式可以完整拦截所有流量 3. **VPN 软件冲突**:LetsVPN、Clash 等代理软件会占用端口或干扰 TUN,使用前必须关闭 4. **必须 sudo 运行**:TUN 模式需要创建虚拟网卡,必须以管理员权限运行 5. **首次运行需信任证书**:SunnyNet 根证书用于 HTTPS 解密,必须设为"始终信任" 6. **下载目录可自定义**:修改 `config.yaml` 中 `download.dir` 字段,支持绝对路径,重启生效 7. **sphCookie 可选配置**:从 yuanbao.tencent.com 获取,配置后可使用 API 解析模式 8. **API 接口可用**:工具提供 REST API,可用于编程式批量操作和自动化集成 --- > ⚠️ **版权提醒**:下载的视频仅供个人收藏、学习使用,请勿二次上传到公共平台或用于商业用途,尊重原创。