显/隐菜单

wechat-finder-dlna:伪装成电视,一键捕获微信视频号直播流

wechat-finder-dlna 是一款极简、优雅的开源工具,它利用标准的投屏协议(DLNA, AirPlay, Chromecast),将你的电脑伪装成一台智能电视。当你在微信视频号中点击“投屏”时,该工具能直接截获真实的 m3u8 直播流地址,无需抓包、无需安装证书、无需代理,完全规避了微信客户端的反爬机制。

wechat-finder-dlna:伪装成电视,一键捕获微信视频号直播流插图

核心亮点

1. 零检测风险

  • 标准协议:完全基于 DLNA/UPnP, AirPlay 和 Google Cast 标准协议实现。
  • 无感伪装:微信无法区分你的电脑和真正的索尼/小米电视,因为通信流程完全一致。
  • 无需Hook:不注入微信进程,不修改系统网络设置,安全纯净。

2. 三协议全支持

同时模拟三种主流投屏设备,确保极高的兼容性:

  • DLNA/UPnP: 通过 SSDP 组播宣告,接收 SOAP 请求。
  • AirPlay: 通过 mDNS/Bonjour 广播为 Apple TV,接收 HTTP POST。
  • Chromecast: 通过 mDNS 广播,在 TLS 加密通道上接收 Cast V2 LOAD 命令。

3. 即捕即用

  • 获取链接:直接输出 .m3u8 直播流地址。
  • 直接录制:内置 ffmpeg 支持,一键录制直播视频。
  • 即时播放:管道输出,可直接对接 VLC, mpv 等播放器。

安装与使用

前置要求

  • Python 3.10+
  • 手机与电脑处于同一局域网(同一 WiFi)
  • (可选)ffmpeg:用于录制功能

安装

推荐使用 uv(极速 Python 包管理器)或 pip

# 推荐
uv tool install wechat-finder-dlna

# 或者
pip install wechat-finder-dlna

基本用法

  1. 启动工具wechat-finder-dlna 终端会显示类似以下信息:📺 DLNA "wechat-finder-dlna" on 192.168.1.100:9090 🍎 AirPlay "wechat-finder-dlna" on 192.168.1.100:9091 📡 Cast "wechat-finder-dlna" on 192.168.1.100:8009 Protocols: DLNA, AIRPLAY, CAST Open your app > cast > select "wechat-finder-dlna"
  2. 手机操作
    • 打开微信视频号直播。
    • 点击右下角/右上角的 “投屏” 按钮。
    • 在设备列表中选择 “wechat-finder-dlna”(或你自定义的名字)。
  3. 获取结果
    • 终端会自动打印出捕获到的 http://...m3u8?... 直播流地址。

高级功能

1. 直接录制直播

无需额外命令,工具可直接调用 ffmpeg 进行录制:

# 录制1小时,保存为 live.mp4
wechat-finder-dlna --record live.mp4 --duration 01:00:00

2. 管道对接播放器

将捕获的 URL 直接传递给 VLC 或 mpv 播放:

# VLC
wechat-finder-dlna | xargs vlc

# mpv
wechat-finder-dlna | xargs mpv

3. 自定义设备名称

让投屏列表显示更友好的名字:

wechat-finder-dlna --name "客厅大电视"

4. 指定协议

如果某些协议在你的网络环境下不稳定,可以只启用特定的协议:

# 仅启用 DLNA
wechat-finder-dlna --protocol dlna

# 启用 AirPlay 和 Chromecast
wechat-finder-dlna --protocol airplay cast

5. 作为 Python 库使用

from wechat_finder_dlna import capture

# 捕获直播流地址
url = capture(name="我的录制器")
print(f"直播流: {url}")

# 指定协议
url = capture(name="我的录制器", protocols=["dlna", "airplay"])

常见问题 (FAQ)

Q: 能录制视频号的回放/点播吗?
A: 不能。此工具仅针对直播流(Live Stream)。回放/点播通常采用不同的加密或分片机制,需要其他专门的解析工具。

Q: 微信能检测到我在用这个工具吗?
A: 不能。对于微信来说,它就是一台普通的 DLNA/AirPlay 渲染设备。没有异常流量特征,没有客户端注入。

Q: 为什么手机搜不到设备?
A: 请检查以下几点:

  1. 手机和电脑是否在同一个 WiFi 下?
  2. 路由器是否开启了 AP 隔离(Client Isolation)?如有,请关闭。
  3. 公司/校园网防火墙可能拦截了 UDP 组播流量(SSDP/mDNS),建议切换至个人热点或家庭网络测试。

Q: 录制的视频没声音或花屏?
A: 尝试调整 ffmpeg 参数。例如去掉 -re 或使用重新编码:

ffmpeg -i <m3u8_url> -c:v libx264 -c:a aac output.mp4

Rust 版本推荐

如果你需要长时间挂机录制,或者部署在 NAS/嵌入式设备上,推荐使用 Rust 重写版

  • 项目名wechat-finder-dlna-rs
  • 优势: 单静态二进制文件,零 Python 依赖,内存占用极低,性能更强。

评论