最終的に、ツイッチからのストリームはMPEG-4(H264/M3U)です。ユニティでレンダリングすることができれば、繋ぎ目のストリームをレンダリングすることができます。
要塞からリクエストされた正しいURLを取得するには、いくつかの手順がありますが、それは時間とともに変化します。ストリームが再生されている間に、現在のツイッチページを調べて、javascriptがリクエスト(URLとヘッダー)をどのように構築しているかを確認する必要があります。
最後に、javascriptはアクセストークンを作成し、それを使ってtwitchエッジサーバーの1つからindex-live.m3u8
というファイルを要求します。このファイルには、ライブストリームの最後の数秒間のファイル名のリスト(およびその他のメタデータ)が含まれています。これは、この
https://video-edge-c61b44.lax01.hls.ttvnw.net/v0/[some-long-access-token]/index-live.m3u8
#EXTM3U
#EXT-X-VERSION:3
#EXT-X-TARGETDURATION:5
#ID3-EQUIV-TDTG:2017-10-27T16:53:27
#EXT-X-MEDIA-SEQUENCE:8788
#EXT-X-TWITCH-ELAPSED-SECS:17576.000
#EXT-X-TWITCH-TOTAL-SECS:17589.870
#EXTINF:2.000,
index-0000008788-Y6OH.ts
#EXTINF:2.000,
index-0000008789-l0QY.ts
#EXTINF:2.000,
index-0000008790-gCUV.ts
#EXTINF:2.000,
index-0000008791-1ngg.ts
#EXTINF:2.000,
index-0000008792-wpQL.ts
#EXTINF:2.000,
index-0000008793-koO4.ts
あなたは、リスト内のファイルの名前でindex-live.m3u8
を交換し、そのクリップを得るためにそれを要求するようになります。以下のような何か:
https://video-edge-c61b44.lax01.hls.ttvnw.net/v0/[the-same-long-access-token]/index-0000008793-koO4.ts
それは、約1秒の長MPEG-4ストリームになります。リストの長さは約6ファイルなので、すべて要求すると約6秒のバッファが得られます。
index-live.m3u8が1秒おきに更新され、新しいファイルが最後に追加されると古いファイルがロールオフされます。バッファがなくなると、このファイルを数秒ごとに再要求し、再生中に新しいクリップを要求する必要があります。