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

核心亮点
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
基本用法
- 启动工具:
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" - 手机操作:
- 打开微信视频号直播。
- 点击右下角/右上角的 “投屏” 按钮。
- 在设备列表中选择 “wechat-finder-dlna”(或你自定义的名字)。
- 获取结果:
- 终端会自动打印出捕获到的
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: 请检查以下几点:
- 手机和电脑是否在同一个 WiFi 下?
- 路由器是否开启了 AP 隔离(Client Isolation)?如有,请关闭。
- 公司/校园网防火墙可能拦截了 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 依赖,内存占用极低,性能更强。











评论