PaPoo
cover
technews
Author
technews
世界の技術ニュースをリアルタイムでキャッチし、日本語でわかりやすく発信。AI・半導体・スタートアップから規制動向まで、グローバルテックシーンの「今」をお届けします。

PS5の配信をTwitchのふりで受け取るまで

PS5の画面共有をDiscordに回したいのに、標準機能だけでは思うようにいかない。そんな不便を、ある開発者がかなり遠回りな方法で突破した話だ。単なる裏技紹介ではなく、PS5が配信先をどう決めているのかをDNSとRTMPの側からほどいていくのが面白い。ソニーのプラットフォーム制限が強まる中で、どこに穴があり、どこでつまずくのかもよく見える。

PS5のBroadcastをMacに向け替えるまでの道のり

元記事の筆者は、友人とDiscordでゲーム配信を見せ合うことが多いが、PS5にはDiscordへ直接画面共有する手段がない、と書いている。そこで最初に思いつくのはキャプチャカードだ。HDMI出力をカードに入れ、Mac上のOBSで再配信するやり方である。ただし、まともな製品は100ドルを超えることもあり、そこまでお金をかけたくなかったという。

次に試したのがRemote Playだった。PS5をMacBookにつないで、そのMacの画面をDiscordに流す方法だ。これは一応動くものの、コントローラーやイヤホンなどをRemote Play側に付け替える必要があり、入力遅延も時々気になる。しかも画質や配信条件はPS5側に握られていて、細かく調整できない。普段の物理的な構成を毎回変えたくない、というのが筆者の不満だった。

そこで筆者は、PS5がYouTubeやTwitchへ送る配信そのものを横取りできないかと考える。PS5のBroadcastはRTMPというライブ配信の通信方式を使っている。PS5は配信開始時にTwitchの配信先ドメインをDNSで引き、返ってきた宛先へ接続する。ならばDNSの返答を操作して、PS5をMacへ向けてしまえばよい、という発想だ。

最初に筆者が狙ったのは ingest.twitch.tv だったが、これは実際のRTMPサーバーではなく、どの地域の配信先を使うかを教える問い合わせ用の入口だった。しかもTwitchの実配信はRTMPS、つまりTLSで暗号化されたRTMPで、PS5は証明書の検証も行う。自己署名証明書では通らず、PS5に独自のCAを入れることもできない。次にYouTubeを使うと、こちらは平文RTMPのためMacにストリームを送らせること自体は成功した。ただしYouTube側のAPI確認に引っかかり、実際にはYouTubeに配信されていないため、およそ60秒で止まってしまった。

そこでDNSログを見ながら探った結果、PS5が最終的に ingest.global-contribute.live-video.net を引いており、そこから aps30.contribute.live-video.net にたどり着くことが分かった。ここが実際のRTMPサーバーで、contribute.live-video.net 配下をまとめてMacに向ければ、証明書の問題を避けたまま配信を受け取れる。

実装は dnsmasq と nginx-rtmp の組み合わせだ。Mac上で dnsmasq を動かし、contribute.live-video.net や各地の live-*.twitch.tv をMacのLAN内IP、筆者の環境では 192.168.8.175 に向ける。さらにOpenWRTのルーターで、PS5のDHCP割り当てにだけDNSサーバーとしてそのMacのIPを返すよう設定する。こうすると、PS5側で手動のDNS設定は不要で、次のDHCP更新時に自動でMacへ向く。

受け側は nginx-rtmp だ。1935番ポートでRTMPを待ち受け、ps5 というアプリケーションを定義し、配信開始時には on_publish でローカルのメニュー常駐アプリへ通知する。これでPS5が配信を始めると、1080p60、H.264、AAC stereo の映像と音声がそのままMacに届く。あとはOBSで再配信してもいいし、ローカル録画でもいいし、そのまま見ることもできる。筆者は最終的に mpv --profile=low-latency --audio-buffer=0.3 rtmp://127.0.0.1/ps5/stream-key で再生し、Discordにそのウィンドウを共有した。遅延は1秒未満に収まり、数週間使っても安定しているという。

これは「裏技」より、閉じられた設計の隙間を読む話だと思う

まず面白いのは、筆者がやっていることが単なるハッキングというより、「PS5がどういう前提で外部配信をしているか」を丁寧に読み解く作業になっている点だと思う。DNSで行き先を変える、RTMPの入口と本体を見分ける、RTMPSの証明書検証で止まる、YouTubeのAPIチェックで失敗する。ひとつずつ観察していくと、プラットフォームが想定する正規ルートから外れた瞬間に何が起きるかがよく見える。技術記事として気持ちがいいのは、この順番が雑ではないからだ。思いつきではなく、失敗した経路も含めて筋道が通っている。

ただの「安く済ませた」話ではなく、制御を取り戻す話でもある

キャプチャカードを買えば済む、というのは確かに現実的だ。けれど筆者が嫌がっていたのは価格だけではない。Remote Playでもキャプチャカードでも、結局はPS5の外に別の機材や配線を増やすことになるし、音声機器やコントローラーの扱いも変わる。そこにあるのはコストというより、日常の手間だと思う。毎回配信のたびに物理構成を組み替えるのは、たとえ可能でも気分が重い。DNSを書き換えて“PS5のほうを騙す”発想は、その面倒を一気に避ける。小さな工夫に見えるが、使い勝手の差はかなり大きいはずだ。

いちばん引っかかったのは、ソニーの閉鎖性が妙な創意工夫を生んでいること

冒頭で筆者は、PS5では配信先が限られていたり、Bluetooth周りも純正品寄りに固められていたりすると書いている。これは単独の不満ではなく、コンソール全体の哲学に近い。ユーザーが勝手に構成を広げる余地を狭めるほど、メーカーはサポートしやすくなる一方で、使い手は工夫を強いられる。今回のようなRTMP横取りは、その閉鎖性への小さな反撃に見える。もちろん、こうした回避策は誰にでも勧められるものではないし、将来的に挙動が変わる可能性もある。だが、既製品の“便利”がどこまで本当に自由なのかを考えさせるには十分だと思う。

この手法が効くのは、配信者というより「自分の環境を崩したくない人」だ

記事の中心はPS5配信だが、価値があるのはゲーム配信の話に限らない。既存の機材や部屋の配置を変えずに、手元の機器だけで完結させたい人にとって、DNSとRTMPの組み合わせはかなり実用的だ。しかも筆者はMac上で dnsmasq と nginx-rtmp を束ね、メニューバーアプリまで作っている。つまり、一度作れば「配信のたびに手で細工する」段階を越えられる。ここが重要で、単発の裏技ではなく、日常利用に耐える道具へ落とし込んでいる。技術者がこういう一工夫をすると、プロダクトの弱い部分がどこかを逆に教えてくれる。

結局、この話の本質は「配信先は見えているよりずっと簡単にすり替えられる」ことだと思う

PS5はTwitchに送っているつもりでも、実際にはDNSが返した先へ配信しているだけだ。そこを押さえると、サービス名の見た目より、ネットワークの層のほうが支配的だとわかる。これは技術的には当たり前でも、実際に手を動かしてみないと実感しにくい。筆者の記事は、その当たり前を、失敗込みでちゃんと見せている。しかも最後は「数週間安定している」と締めていて、単なる思いつきで終わっていないのも良かった。閉じた機器でも、入口の設計を理解すれば抜け道はある。その事実を、かなり気持ちよく示した記事だったと思う。


参考: Hijacking the PS5

同じ著者の記事