PS5のRTMPストリームを横取りする方法

原題: Hijacking the PS5's RTMP stream

なぜ重要か

PS5のネットワーク挙動を分析しDNS操作で制限を回避するこの手法は、ゲーム機のオープン活用やホームラボ文化の観点で注目される事例だ。

エンジニアのYash Garg氏が、PS5のブロードキャスト機能が対応していないDiscordへのゲーム画面共有を実現するため、DNS偽装によってPS5のRTMPストリームを自身のMacに誘導する手法を2026年9月に公開した。キャプチャカードを使わずに実現した技術的な回り道だ。

PS5はYouTubeとTwitchへのブロードキャストをデフォルトでサポートしているが、Discordへの画面共有には対応していない。一般的な解決策はHDMIキャプチャカードだが、品質の良いものは100ドル以上かかる。Remote Playを使ってMacBook経由で共有する方法もあるが、コントローラーや周辺機器の接続し直しが必要で、入力遅延も発生する。

Garg氏が着目したのは、PS5がブロードキャスト時にTwitchやYouTubeのサーバーをIPハードコードせず、毎回DNSで名前解決している点だ。DNS応答を制御すれば、ストリームの送信先を任意のマシンに向けられる。

最初の試みはTwitchの`ingest.twitch.tv`を偽装することだったが、このホスト名は実際には地域別のIngestionサーバーを返すディスカバリーエンドポイントだった。返されたサーバー(`ap-southeast-1.prod.fi.contribute.live-video.net`など)はRTMPS(TLS上のRTMP、ポート443)を使用しており、PS5が証明書を検証するため自己署名証明書では通らない。PS5にカスタムCAをインストールする手段もない。

次にYouTubeを試したところ、YouTubeのRTMPはポート1935の平文通信を使うためTLSの問題はなかった。しかしYouTubeはAPI経由で定期的にストリームの死活確認を行うため、約60秒後にブロードキャストが停止してしまった。

解決の糸口はDNSログの監視だった。`sudo tail -f /tmp/dnsmasq.log`でログを確認すると、PS5が`ingest.global-contribute.live-video.net`を解決し、最終的に`aps30.contribute.live-video.net`(実際のRTMPサーバー)に到達していることが判明。`contribute.live-video.net`全体をDNS偽装すれば、すべてのサブドメインをカバーできる。このエンドポイントは平文RTMPを使用しており、証明書検証の問題を回避できた。最終的にGarg氏は自分のMacをRTMPサーバーとして機能させ、PS5のストリームをキャプチャカードなしで受信することに成功した。

出典

yashgarg.dev — 元記事を読む →