BFTVDL boyfriendtvdl.com P203

なぜダウンロードはブラウザで走るのか

P203

多くのダウンロードサイトは、動画を自分のサーバーに引き込んでから、あなたに渡します。ここはそうしません。そのたった1つの判断が、使っていて気づくことのすべて——遅い部分も含めて——を説明します。

MPEG-TSのセグメントが右から流れ込み、その下で1本のMP4のバーとして積み上がっていく様子。
セグメントはMPEG-TSとして届き、あなたのブラウザの中で1つのMP4に結合されます。数分かかるのはこの部分です。

普通は何が起きているか

よくある作りは中継です。あなたがサイトにリンクを渡し、そのサーバーが動画をダウンロードして、それからファイルをあなたに送ります。すべてのバイトが2回運ばれ、運営者は両方の運賃を払います。

だからそうしたサイトは、あなたを待ち行列に並ばせ、速度を絞り、解像度に上限を設け、あるいは料金を求めます。帯域が運営費のすべてであり、それは訪問者が増えるほど膨らみます。

ここで何が起きているか

このサーバーが読むのは小さな2つだけです。動画ページとストリーム目次、合わせて約330KB。そこから画質一覧と署名付きリンクを読み取れば、仕事は終わりです。

その後はすべてあなたのブラウザの中で起きます。ブラウザがBoyFriendTVの配信網から動画セグメントを直接取得し、ローカルで1つのMP4に結合します。動画のバイトがこのサーバーを通ることは、一度もありません。

それを可能にしているのは、そのCDNの2つの性質です。1つは緩やかなクロスオリジンのヘッダーを返すこと。おかげで別のサイトにいるブラウザがセグメントを読むことを許されます。もう1つは、署名付きリンクがIPアドレスに縛られていないこと。このサーバー向けに発行されたリンクが、あなたの回線からでも通ります。実際に確認済みです。スイスのサーバーに発行されたトークンを使い、ベトナムの回線からセグメントを取得できました。

その代償を、はっきりと

BoyFriendTVはこの動画をHLSで配信しています。つまり1つのファイルとして置かれているのではなく、4秒ごとの断片に切られています。そのまま渡せる単純なMP4は存在せず、CDNに求めても拒否されます。

そのためブラウザは82個ほどの断片をすべて取得し、1つのMP4に縫い直さなければなりません。この作業は現実のもので、あなたの端末上で行われ、大きなファイルでは数分かかります。タブを開いたままにする必要があるのは、作業をしているのがそのタブだからです。

これが正直な取引です。この待ち時間は待ち行列でも速度制限でもありません。本来サーバーがあなたに課金して行う作業を、あなた自身の回線と端末が引き受けているだけです。

その見返り

並ぶものがないので待ち行列がありません。画質の上限がないので、動画が持っていれば4Kも提示されます。回収すべき費用がないのでアカウントも不要です。人が増えてもこのサーバーの負担はほとんど増えないので、速度が絞られることもありません。

そして進捗バーは、割合を推測せず実際のセグメント数を数えます。ブラウザが残りの断片数を本当に知っているからです。

ダウンローダーに戻る