多くの「動画ダウンローダー」は同じ仕組みで動いている。リンクを貼ると、それが向こうのサーバーに送られ、そのサーバーがファイルを取得してあなたに返す。これはあなたのデータが途中で一つ余計な停留所を経由するということだ——他人のサーバーが、あなたが何をダウンロードしたか知ることになる。Doomlyにはこの経路にサーバーがまったく存在しない。これはプライバシー機能というより、この拡張機能の作り方そのものの直接の結果だ。バックエンドが存在しない、それだけのこと。設定もテーマもフィルターも、すべてあなたのブラウザ自身のストレージの中にあり、どこにも送信されない。

簡単なケース:写真と短い動画

写真や短い動画をダウンロードするとき、あなたのブラウザ自身がXのメディアサーバーから直接ファイルを取得する。それはそのメディアをそもそも表示するために、あなたのブラウザがすでに話しかけていたのと同じサーバーだ。間に誰も入らず、リクエストを見ることもない。投稿を開いた時点で、すでに越えていた信頼の境界と同じものだ。

難しいケース:長い動画

Xの長い動画は一つのファイルではない。HLSという形式で、プレイリストに列挙された小さなセグメントに分割されていて、しかも音声が動画とは完全に別のトラックになっていることが多い。これを扱えないダウンローダーは、長い動画で完全に失敗するか、音のないファイルを渡してくる。それは「できません」と正直に言うより悪い結果だ。

Doomlyは動画トラックのすべてのセグメントを取得し、別トラックの音声が存在すればそのセグメントもすべて取得したうえで、それらを一つの.mp4にまとめる——すべてあなたのブラウザのタブの中で、まさにこの用途のために作られた小さなライブラリを使って。これは再エンコードではなく、パケットのパススルーだ。実際の映像・音声データはデコードして描き直されるのではなく、一つのコンテナに詰め直されるだけ。だから画質は元のソースと変わらず、処理として重く感じないくらい速く終わる。

音声と映像を結合する処理が何らかの理由で失敗しても、動画自体はちゃんと手元に届く——ただ音がなく、その旨の警告つきで。Doomlyは、何も渡さないより、不完全なファイルでも渡すことを選ぶ。

これがダウンロードにできる約束の形を決めている

リクエストを中継するサーバーが存在しないので、この経路の中で、単独で落ちたり、Xとは別にレート制限を受けたり、あなたの接続とは無関係なサービス障害でブロックされたりするものも存在しない。それでも個別の投稿ならではの理由でダウンロードが失敗することはある——セグメント構成が特殊な長い動画がいまのところの主な原因で、そこは今も調整を続けている。ただ、何がうまくいかないにしても、それはDoomlyがその特定の動画を読み取る処理の不具合であって、独自の稼働状況を気にする必要がある第二のサービスが割り込んでいるわけではない。

それでも有料機能である理由

サーバーコストがないなら、なぜ料金を取るのか。コストはホスティングではなく、HLSのセグメントや別トラックの音声を正しく取得し、無音のまま壊れたファイルを作らずに結合する、そのエンジニアリング部分にあるからだ。その作業は、無料の階層であるスクロールモード以外のすべてと同じように、ProとShieldの購読者が支えているものだ。