1. 拡張機能が 12 ではなく 1 つである理由 (および「クライアント側」の実際の意味)
ダウンローダー市場は、プラットフォームのカバレッジを無秩序に解決しました。プラットフォームごとに 1 つのサイトまたは拡張機能があり、それぞれに独自の癖、広告、信頼プロファイル、更新スケジュールがありました。ユーザーは、最終的に 3 つのブックマークされたコンバーター サイト、出所不明の 2 つの拡張機能、および各プラットフォームで閲覧内容を別のオペレーターに漏らす、貼り付け、リンク、ダウンロードのルーチンを実行することになります。メンテナンスの経済性が、統合が実現しなかった隠れた理由です。すべてのプラットフォームで DOM とペイロード スキーマが年に数回ローテーションされるため、12 プラットフォーム ツールは 12 個のツールが貼り合わされたものではありません。これは、12 個のシン アダプターを備えた 1 つの共有抽出コアであり、システムとして更新されます。
これが、Video Downloader Bundle が構築されているアーキテクチャであり、それを説明するフレーズ「クライアント側」は正確な作業を行っています。抽出のすべてのバイトはブラウザ タブ内で行われます。メディア URL はページ独自のデータ レイヤーから読み取られ、リクエストに応じてセッションの Cookie を使用してストリームが取得され、多重化またはセグメント ステッチはローカル Web ワーカーで実行され、ファイルはブラウザのダウンロード API を通じて書き込まれます。ダウンロード中にプロキシ サーバーは存在しません。 URL を送信するバックエンドはなく、他人のデータベースにあなたのアクティビティのログはなく、古いレンディションを提供するキャッシュはなく、セッション Cookie がブラウザ自身のキーストア内以外の場所に移動するステップもありません。
ユーザーに見える結果はエッジに現れます。自分自身としてダウンロードしているため、ログインゲート型コンテンツは機能します。プライベート コンテンツとメンバーシップ コンテンツは、ユーザー自身のアクセスのラインまで正確に機能し、それを 1 ピクセルも超えることはありません。 2 番目のエンコードがないため、品質は第 1 世代です。そして、ビデオのダウンロード ボタン、プロフィールのバッチ コントロール、ポップアップの MP3 オプションなど、同じインタラクション モデルが 12 のプラットフォームすべてに適用されるため、TikTok で構築された筋肉の記憶はそのまま Patreon に引き継がれます。
以下にプラットフォームごとのマップを示します。各パイプラインがどのようなもので、どのような品質が期待され、各パイプラインのエッジ ケースがどこに存在するのかを示します。
2. ソーシャル 6: TikTok、Instagram、Twitter/X、Reddit、Threads、Pinterest
ソーシャル プラットフォームは配信パターン (ハイドレーション ペイロードまたは GraphQL 応答のメディア オブジェクト、セッションにバインドされた署名付き CDN URL、ワンショット DOM スキャンを無効にする仮想化フィード) を共有していますが、品質とワークフローに重要な詳細が異なります。
TikTok はクリーンなマスターを CDN に保存し、そのウォーターマークを Web プレーヤーの DOM オーバーレイとして適用するため、抽出によりブランドのない 1080p playAddr レンディションがハイドレーション ペイロードから直接取得されます。上限の品質: ソース、通常は 1080p H.264。対照的に、リンク貼り付けエコシステムでは、ほとんどの場合、透かし問題が未解決の再エンコードされた 540p が返されます。
Instagram は、GraphQL ペイロード内で video_versions 配列 (640p、720p、1080p MP4 レンディション) を公開します。リール、フィード ビデオ、セッション内のストーリー、およびカルーセル ビデオの子はすべて、同じメディア オブジェクト形状を通じて解決されます。署名付きトークンは期限切れが早いため、クリック時にすぐにフェッチが行われます。 MP3 へのオーディオ抽出は、トレンドサウンドのユースケースをカバーします。
Twitter/X はシンジケーション API プラットフォームです。最大 1080p のツイート ビデオ バリアントは、計算されたトークンを使用してシンジケーション エンドポイントを介して解決され、トークンが回転すると GraphQL フォールバックが行われます。スレッドヘビーなアーカイブはプラットフォームの特徴的な使用例であり、バッチ ダウンローダーは他のすべてのフィードと同じようにプロファイル タイムラインをたどります。
Reddit は分割ストリーム プラットフォームです。DASH ビデオとオーディオは v.redd.it の下に個別のファイルとして保存され、mp4box.js を介してブラウザ内でサウンド付きの 1 つの faststart MP4 に多重化されます。ここでは、すべての汎用ツールが無音ビデオを返します。タブ内のマルチプレクサーは修正であり、すべてのクラウド ダウンローダーを強制終了する NSFW セッションのケースも処理します。
Threads は、Instagram 型のメディア オブジェクトを備えた Meta の CDN ファミリに乗り、エンドツーエンドで動作することが検証されており、アダプタがスキーマ チャーン アップデートを頻繁に取得できるほど若いため、セット内の最新プラットフォームのメンテナンス コストに相当します。
Pinterest は、v.pinimg.com ビデオ CDN のポスター フレーム画像の背後に MP4 を隠しています。これが、右クリックで JPEG を保存する理由です。抽出はピンの video_list を読み取り、HD レンディションを優先し、タブ内の pin.it 短いリンクを解決し、ボードをバッチアーカイブします。これは、「画像が保存されました」という苦情の原因となったプラットフォームです。
3. クリエイター 4: Substack、Patreon、Ghost、出版プラットフォーム パターン
クリエイターのパブリッシング プラットフォームは別のパターンを共有しています。ビデオは製品の中核ではないため、サードパーティのインフラストラクチャ (Mux、Wistia、Vimeo の埋め込み、直接アップロード) を通じて埋め込まれ、抽出ジョブは出版物が使用するものを問わず実際にメディア解像度になります。
サブスタック投稿には、直接アップロードされた MP4 やポッドキャスト エピソードを兼ねる音声投稿とともに、Mux 経由で署名付き再生 URL を含むビデオが埋め込まれるのが一般的です。このアダプターは、ポスト ペイロードから Mux 再生 ID を解決し、HLS パスとプログレッシブ MP4 の両方を処理し、ポッドキャスト オーディオを MP3 に抽出します。これは、Substack のポッドキャスト エコノミーを考慮すると、ほとんどの加入者が実際に使用する機能です。
Patreon はメンバーシップ ウォール プラットフォームです。ビデオはセッション限定の権利の背後にある Mux インフラストラクチャに乗り、抽出は誓約層が提供するものを正確にキャプチャします。HLS マニフェストはローカルで取得、セグメント化、再多重化されます。 DRM フラグが設定された投稿は正直にスキップされました。 Cookie トラップの警告はプラットフォーム固有のものであり、繰り返す価値があります。Patreon セッション Cookie の貼り付けを求めるダウンローダー サイトは、あなたのアカウントを要求していることになります。
Ghost パブリケーションの範囲は、ホストされた Ghost.io サイトから自己ホストされたカスタム ドメインまで多岐にわたります。そのビデオは、直接 MP4 アップロード、埋め込まれた Vimeo または Mux プレーヤー、およびパブリッシャーが構成した HLS など、最も多様です。ここではアダプターの汎用 HTML5 コアがほとんどの作業を実行し、Ghost 固有のレイヤーがカスタム ドメインの検出を処理します。
これら 4 つが共有するパブリッシング プラットフォーム パターンが、バンドルが 1 つのアーキテクチャでそれらをカバーする理由です。困難な問題 (HLS 処理、トークンフレッシュフェッチ、セッションコンテキストリクエスト) はそれらの間で同一であり、ペイロードの形状のみが異なります。これは、出版プラットフォームの報道が古くなる理由でもあります。ニュースレター プラットフォームが投稿マークアップを変更することは、ソーシャル プラットフォームがフィードを変更することよりも重要ではありません。これは、その下のメディア層があまり頻繁に変更されないためです。
4. ビデオホスト 3: Vimeo、Dailymotion、Rumble - および品質の上限
専用ビデオ ホストは、ソーシャル プラットフォームの妥協ではなく、プロフェッショナルなビットレートで第一世代のエンコードを提供するため、抽出品質が限界に達する場所です。
Vimeo は主力製品です。プレーヤー設定は、直接 CDN URL で最大 1080p (プロレベルのソースでは 4K) までのプログレッシブ MP4 を公開し、タブ内抽出はプラットフォームを定義するケース (コース プラットフォームや代理店サイトでのプライベートおよびドメイン制限付きの埋め込み) を処理します。ブラウザのタブは、サーバー側ツールが偽装できないホワイトリストに登録されたコンテキストです。 HLS のみの構成は、セグメントと再多重化の処理にフォールスルーされます。
Dailymotion は、最大 1080p の MP4 レンディションと HLS マニフェストを返すプレーヤー メタデータ API を公開しています。抽出では、プレーヤーのメタデータを読み取り、表現を明示的に並べ替え (自動品質のデフォルトは最大ではありません)、最上位の MP4 をフェッチします。これは、安定した API、安定した DOM、長寿命のアダプターなど、このセットの中で最も手間のかからないプラットフォームです。
Rumble は、埋め込み API とともに直接 MP4 CDN ストリームを提供し、ページ内の JSON-LD ビデオ メタデータを使用して解決を簡単にします。コンテンツは寛大なビットレートで 720 ~ 1080p に偏り、プラットフォームの安定性により、バンドル内で最も信頼できるダウンローダー ターゲットになります。
どこにでも当てはまる品質上限の誠実さについては、ここで改めて説明する価値があります。なぜなら、ビデオホスト ユーザーは、プラットフォームが保存しているものを抽出によってキャプチャすることに気づいているからです。ビデオの最適なレンディションが 720p の場合、ファイルは 720p です。ソースを超えるツールはなく、アップスケーリングを主張するツールはありません。ホストとソーシャル プラットフォームの違いは、上限が高く、エンコードが慎重であることです。これが、3 つのホストがバンドルの出力で最も大きく、最もクリーンなファイルを生成する理由です。
3 つすべてにおいて、インタラクション モデルは変更されていません。プレーヤーのボタン、チャンネルとショーケースのバッチ、オーディオが重要な場合は MP3 です。また、これらのプラットフォームはほとんど変更されないため、メンテナンスの負担 (マルチプラットフォーム対応の実際のコスト) はこの層で最も低くなります。
5. バッチ、MP3、プライバシー: どこでも同じように機能する機能
プラットフォームごとのセクションでは、何が異なるのかを説明します。これは、共有機能が 1 つのツールに統合する理由であるため、そうでないものについても説明します。
バッチ ダウンローダーは、12 のプラットフォームすべてにまたがる 1 つのシステムです。プロファイル、ボード、タイムライン、チャンネル、クリエイター フィードでキュー マネージャーをトリガーすると、キュー マネージャーはプラットフォームのデータ層 (マウントされたアイテムだけを保持する可視 DOM ではない) をたどって、検出されたすべてのビデオを解像度メタデータとともにキューに入れ、意図的なペーシング (測定されたリクエスト タイミング、バックオフによる再試行、進行状況モーダルでのアイテムごとのステータス、重複なしの再開) で処理します。ペーシングは遅延ではなく機能です。セッションにフラグが立てられるのはマシンガン リクエスト パターンであり、セッションを保護するツールは、そのプラットフォーム上で行う他のすべての作業を保護します。
MP3 抽出は、2 番目のクロスプラットフォームの定点です。オーディオエレメンタリストリームは、ソースビットレートでビデオから逆多重化され、AACはAAC由来のMP3として出力され、非可逆の2番目のトランスコードはありません。これは、ポッドキャスト層のPatreonメンバー、Substackオーディオ投稿購読者、Reelsのトレンドサウンドハンター、およびインタビュークリップアーキビストに平等にサービスを提供します。プラットフォームがネイティブに分離されたオーディオ (Reddit) を提供する場合、マルチプレクサーはマージすることでその取引のステレオ側を処理します。オーディオがビデオ (Instagram、TikTok) 内にのみ存在する場合、デマルチプレクサーはそれを取り出します。
プライバシー アーキテクチャは 3 番目の定数であり、信頼基盤です。サードパーティのサーバーはいかなるダウンロードにも関与しません。設定と履歴はデバイスの chrome.storage.local に保存されます。分析 SDK、広告ネットワーク、テレメトリ ping はありません。セッション Cookie は、どこにも読み取られ、コピーされ、送信されることなく、リクエストのためにブラウザによって使用されます。ジャーナリスト、研究者、訴訟サポートなどの専門家にとって、機密情報に使用できるツールと使用できないツールの違いはアーキテクチャです。
正直な結論: メンテナンスなしでスキーマ変更に耐えられるツールは存在せず、プラットフォームの移行時には 12 プラットフォームのアダプター セットを更新する必要があります。共有コア アーキテクチャの利点は、抽出コアへの 1 つの更新ですべてのプラットフォームを一度に修正できることです。これが、コードで記述されたツールが 12 つではなく 1 つであるという主張全体です。