SonyはPS5のハードウェアを徐々にロックダウンしており、ユーザーがコンソールの機能でできることが制限されている。注目すべき制限の一つとして、PS5はDiscordへの画面共有をサポートしていない。Discordはゲームプレイヤーがゲームの様子を配信するための一般的なプラットフォームになっている。コンソールには「放送」ボタンがあるが、Sonyが公式に承認した数のサービスのみをサポートしている。
RTMPプロトコル(Real-Time Messaging Protocol)は、ライブ音声・ビデオストリーム配信で広く使用されている。ユーザーがPS5で放送を開始すると、コンソールはこのプロトコルを使用してストリームをYouTubeまたはTwitchに送信し、ユーザーがそれらのアカウントにログインしていることを前提とする。PS5は放送を開始するたびに、DNS経由で適切なホスト名を解決する。
開発者はこのストリームを任意の宛先にリダイレクトする技術を発見した。鍵となる洞察はDNS解決パターンの観察から得られた。PS5は`ingest.global-contribute.live-video.net`を解決し、それが`aps30.contribute.live-video.net`——実際のRTMPサーバー——に連鎖する。DNS応答を制御することで、PS5のストリームをパーソナルマシンにリダイレクトできる。
この技術は二つの主要なコンポーネント、dnsmasqとnginx-rtmpを経由して動作する。dnsmasq DNSサーバーは、Twitchのインジェストドメインを攻撃者のMacのLAN IPアンドレスに解決するように構成されている。具体的には、`contribute.live-video.net`と`ingest.global-contribute.live-video.net`などのサブドメインはMacのIPを指す。PS5がこれらのエンドポイント针对DNSクエリを発行すると、dnsmasqはTwitchのサーバーの代わりにMacのIPを返す。PS5はその後、Twitchであると信じてMacに接続する。
受信側では、ポート1935でリッスンするnginx-rtmpが着信RTMPストリームを受け入れる。ストリームが開始されると`on_publish`コールバックが発火し、RTMP URLをコピーできるようにするメニューバーアプリに通知する。ストリームはH.264ビデオとAACステレオ音声で1080p60として到着する。
OBSを使用する代わりに、開発者は低遅延プロファイル付きのmpvを使用して共有ウィンドウをDiscordに引き込む。結果の遅延は1秒未満に収まり、このセットアップは驚くほど毎週使用に適している。
YouTubeの回避策は別の問題に直面した。PS5は定期的にYouTubeのAPIをチェックしてストリームが生きていることを確認する。YouTubeがストリームを受信したことがなかったため、このチェックは約60秒後に失敗し、放送が停止した。TwitchのDNSアプローチは、ストリームがローカルネットワークから出なかったため、この特定の障害モードを回避した。
DNS設定にはネットワークレベルのセットアップが必要である。開発者はOpenWRTを動作させるGL.iNetルーターを使用し、PS5のDHCPリース针对してMacのIPをDNSサーバーとして渡すように構成した。"PS5"という名前のDHCPオプション6タグは、コンソールが次の更新でカスタムDNSサーバーを取得し、コンソール自体の手動DNS設定の必要を排除する。
