把电脑伪装成电视,用 DLNA 投屏拿到视频号直播流地址

4 月 15 日
 Junian
最近想把视频号的一些直播存下来,搜了一圈发现这事居然这么麻烦 —— 要么挂代理抓包装证书,要么上逆向 Hook 微信进程,总之没一个省心的。

后来突然想到一个事:微信投屏到电视不是用的 DLNA 吗?那电视能拿到直播流地址,我电脑装个假电视不就行了?

试了一下,还真可以。SSDP 组播宣告自己是 MediaRenderer ,微信就会在投屏列表里显示出来。选中之后微信会通过 SOAP 把 m3u8 地址 POST 过来,直接截获就完事了。

整个过程不需要动微信客户端,不需要证书,不需要代理,因为这就是标准的 DLNA 协议流程 —— 微信没法区分真电视和假电视。

用纯 Python 标准库写的,零依赖,500 来行代码:

```bash
pip install wechat-finder-dlna
wechat-finder-dlna
# 手机投屏过来就能拿到直播流地址
```

拿到地址之后 ffmpeg 录制、VLC 播放都行。也支持 `--record` 直接录。

B 站、爱奇艺那些支持 DLNA 投屏的 App 也都能用,不只是微信。

项目在这: https://github.com/gtoxlili/wechat-finder-dlna

有想法欢迎提 issue 交流。
6943 次点击
所在节点    Python
17 条回复
yautou
4 月 15 日
好办法,点赞👍,包装成小程序、app 卖钱去
Puteulanus
4 月 15 日
jackOff
4 月 15 日
额,有什么意义?省 CDN 分发费用?
cwxiaos
4 月 15 日
@jackOff 他这个是为了下载视频,直接抓取地址,如果抓包干微信等等,非常麻烦,这个思路还是可以
andyskaura
4 月 15 日
所以 dlna 就变得越来越烂了,现在电视上 b 站要装小电视,cctv 要装央视频
docx
4 月 15 日
好东西,微信视频号的东西要下过来是真的麻烦
wjxd
4 月 15 日
goodryb
4 月 15 日
试了下可以打包成 exe ,这样就不依赖专门的 python 环境了
goodryb
4 月 15 日
试了 b 站和西瓜视频都可以,微信直播死活搜不到
Junian
4 月 15 日
@goodryb 微信 ios 端的协议似乎不一样,我们今天是拿安卓测试的
alect
4 月 16 日
有没有人知道怎么录制快手的直播?
jackOff
4 月 16 日
@cwxiaos 主要是微信的视频有啥营养和价值吗?花活没有抖音多啊?我只能想到可以偷取直链接来省 cdn 费用,但是正经国内公司又不可能这样子干
nilaoda
4 月 16 日
没什么意义了,现在各大平台都限制了 DLNA 的清晰度,要装各种客户端才能看 4K 之类的
jifengg
4 月 22 日
其实视频网站已经意识到这个问题了,像 @nilaoda 说的,dlna 投屏的最高码率都被限制了。比如我所知的 b 站,视频(不是直播)标准 dlna 最高 720p
jifengg
4 月 22 日
哦,还是得说一点,楼主做得好!以上言论不是给你泼冷水。
iorilu
4 月 23 日
可能有人需要大量扒视频有点用
godall
5 月 14 日
谢谢楼主,我需要的是演唱会视频录制。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/1206122

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX