采集卡要上百美元,作者决定自己冒充Twitch服务器
9月28日,开发者Yash Garg发文分享了他劫持PS5直播流的完整方案。起因很实际:他想在Discord上给朋友串流玩PS5,但PS5原生不支持Discord屏幕共享;正规解法是把HDMI输出接进采集卡再喂给Mac上的OBS,但像样的采集卡要花上百美元,他不想为这个功能掏钱。索尼对PS5硬件的封锁一向严格,除了官方支持的少数几个直播平台,广播按钮几乎什么都干不了,第三方蓝牙外设同样被拒之门外。
PS5直播的机制成了突破口。主机向YouTube和Twitch推流时用的是RTMP协议,关键在于PS5并不在固件里硬编码Twitch服务器地址——每次开播都走DNS解析。也就是说,谁能控制DNS应答,就能决定视频流发往哪里。作者最初的尝试是直接伪装ingest.twitch.tv,但这个域名其实只是发现端点:PS5先通过443端口的HTTPS请求它,询问该用哪个区域推流服务器,Twitch回一个类似ap-southeast-1.prod.fi.contribute.live-video.net的真实地址,推流才真正发过去。
RTMPS证书校验绕不过,最终在DNS日志里找到裸RTMP端点
真正的Twitch推流走RTMPS(RTMP over TLS,443端口),PS5会校验服务器证书是否来自受信CA,自签证书无效,而PS5又没有任何导入自定义CA的入口。作者转头试YouTube:它的推流用1935端口的裸RTMP,没有TLS门槛,PS5顺利把流推到了Mac上。但新问题随之出现——PS5会定期调用YouTube API确认直播真的在线,YouTube那边始终没收到流,检查失败后约60秒就自动停播。
最终答案藏在DNS日志里。作者一边直播一边盯着dnsmasq日志,发现PS5解析的是ingest.global-contribute.live-video.net,它再链式解析到aps30.contribute.live-video.net——那才是真正的RTMP服务器。只要在本地DNS里接管contribute.live-video.net及其全部子域,就能把实际推流改道到Mac,且完全绕开证书问题。接收端用nginx-rtmp监听1935端口,on_publish回调触发菜单栏应用生成可复制的推流地址。
整套工具链被作者打包成一个macOS菜单栏应用,内置dnsmasq与nginx-rtmp。dnsmasq把上游服务器指向1.1.1.1与8.8.8.8,并开启查询日志记录每一次解析,作者正是靠这份日志抓到PS5的真实推流域名。他还利用运行OpenWRT的GL.iNet路由器,通过DHCP选项6把Mac的IP作为DNS服务器单独下发给PS5的静态租约,主机端无需任何手动配置。实际效果是PS5把1080p60、H.264编码、AAC双声道的画面直接推进Mac,用mpv的低延迟配置播放,延迟可以压到一秒以内;作者称已稳定使用数周。
Hacker News上这篇帖子获得217点赞,讨论焦点很快落到协议层面:有评论指出这更像是RTMP与Twitch的安全缺陷而非PS5的锅——最后一跳推流服务器不启用证书校验,等于谁都能中间人截流;也有长期在该领域工作的评论提到,Lightstream Studio早年正是靠类似的中间人手法给主机直播做画面叠加,直到微软把更完善的协议接进官方平台才告别这套黑科技。2026年直播数据仍以明文在网上跑,让不少读者感到意外。