オンラインツール

拡張機能をインストールせずに使用できる M3U8/HLS および MPD/DASH ストリーミングメディアのオンラインダウンローダー——ストリームアドレスを取得、URL を貼り付け、画質を選択、ワンクリックでダウンロード。

FlowPick はブラウザ拡張機能に加えて、2つの独立したオンラインツールページを提供しており、ソフトウェアをインストールすることなくストリーミングメディアをダウンロードできます。これらのツールは拡張機能と同じダウンロードエンジンを共有していますが、ウェブ環境で動作します。


オンラインツールを使用するタイミング

オンラインツールは拡張機能の補完ソリューションであり、以下のシーンに適しています:

シーン推奨される方法理由
日常閲覧中いつでもダウンロードブラウザ拡張機能自動検知、ワンクリックダウンロード
ストリームアドレスがあり、素早くダウンロードしたい場合オンラインツールインストール不要、開いてすぐ使用可能
拡張機能をインストールできない環境(会社のPC、公共デバイス)オンラインツール純粋なウェブページ、インストール要件なし
複数の既知 URL を一括ダウンロードする必要がある場合オンラインツール + 一括ダウンロード1つずつ貼り付け、キューマネジメント
CORS 制限に遭遇した場合ブラウザ拡張機能拡張機能の権限で同一オリジンポリシーをバイパス可能
どちらの方法を使うか迷った場合は、優先的に拡張機能をインストールしてください。オンラインツールは「手元にストリームアドレスがあり、拡張機能をインストールしたくない」一時的なシーンに適しています。詳細は インストールガイド を参照してください。

拡張機能との違い

特性ブラウザ拡張機能オンラインツール
自動メディア検知サポート、ページ読み込み時に自動検知非サポート、手動で URL を貼り付ける必要あり
インストール要件拡張機能のインストールが必要インストール不要、ウェブページを開くだけで使用可能
クロスドメイン制限拡張機能権限で一部制限をバイパス可能ブラウザの同一オリジンポリシーに制約される
ダウンロードエンジン同じ同じ
保存ディレクトリ選択サポートサポート
適用シーン日常閲覧中いつでもダウンロード既存ストリーム URL の高速ダウンロード
オンラインツールと拡張機能は完全に同じダウンロードエンジン(useStreamMerge)を使用しており、ダウンロード速度、マージロジック、暗号化復号能力は完全に一致しています。唯一の違いはメディア検知方式です。

M3U8/HLS ストリーミングメディアダウンローダー

アクセスパス:/m3u8-downloader

機能概要

M3U8 ダウンローダーは HLS(HTTP Live Streaming)ストリーミングメディアプロトコル専用に処理します。Master Playlist と Media Playlist の2種類のマニフェストフォーマットをサポートします。

HLS プロトコルの詳細な原理(Master Playlist vs Media Playlist、セグメント構造、暗号化メカニズム)については、動画検知 — HLS ストリーム を参照してください。

使用フロー

  1. M3U8 URL の取得:ブラウザ開発者ツール(Network パネル)またはサードパーティツールから .m3u8 アドレスを取得
  2. URL の貼り付け:アドレスを入力ボックスに貼り付けると、ツールが自動的にマニフェストを解析
  3. 画質の選択:Master Playlist の場合、画質リストから対象解像度を選択
  4. パラメータ設定:並列スレッド数、出力フォーマット、ファイル名を設定
  5. ダウンロード開始:ダウンロードボタンをクリックすると、ツールが自動的にすべてのセグメントをダウンロードしてマージ
M3U8 アドレスの取得方法がわからない? 動画プラットフォーム — 手動 URL 取得モード での F12 開発者ツール操作ガイドを参照してください。

サポートされるマニフェストタイプ

Master Playlist(複数ビットレートマニフェスト)

異なる画質の複数のサブストリームを含みます。解析後、画質セレクターが表示されます:

1080p · 5.2 Mbps · avc1.640028
720p · 2.8 Mbps · avc1.64001f
480p · 1.2 Mbps · avc1.64001e

ある画質を選択すると、ツールが対応する Media Playlist をダウンロードし、セグメントリストを取得します。

Media Playlist(単一ビットレートマニフェスト)

TS セグメントリストを直接含み、画質を選択する必要はありません。解析後、セグメント数と推定サイズが直接表示されます。

暗号化サポート

M3U8 ダウンローダーは以下の暗号化方式をサポートしています:

暗号化方式サポート状況説明
AES-128 CBC完全サポート自動的にキーを取得してセグメントを復号
SAMPLE-AES非サポート専用デコーダーが必要
Clear Key非サポートDRM 保護コンテンツ
Widevine / PlayReady非サポート商用 DRM、復号不可

AES-128 で暗号化されたストリームの場合、ツールは以下を行います:

  1. #EXT-X-KEY タグを解析してキー URI を取得
  2. キーファイルをダウンロード
  3. Web Crypto API(crypto.subtle.decrypt)を使用してブラウザ内で各セグメントを復号
  4. 復号されたセグメントを最終ファイルにマージ
すべての復号操作はブラウザローカルで完了し、キーとセグメントデータはどのサーバーにもアップロードされません。詳細は プライバシーとセキュリティ を参照してください。

セグメントダウンロードとマージ

ダウンロードフローは3つの段階に分かれます:

フェーズ1:解析(0% ~ 5%)

  • M3U8 マニフェストをダウンロードして解析
  • セグメント URI リストを抽出
  • サンプリングで総サイズを推定

フェーズ2:ダウンロード(5% ~ 85%)

  • マルチスレッド並列でセグメントをダウンロード
  • リアルタイムで進捗、速度、残り時間を表示
  • 失敗したセグメントを自動リトライ(最大3回、指数バックオフ)

フェーズ3:マージ(85% ~ 100%)

  • セグメントを順番に連結
  • TS フォーマットの場合:直接バイナリ連結(最速)
  • MP4 出力の場合:FFmpeg WASM を使用してコンテナ変換
並列ダウンロードの基盤実装(Worker Pool、リトライ戦略、メモリ管理)については、ダウンロードエンジンアーキテクチャ を参照してください。TS→MP4 リマックスの詳細原理については、フォーマット変換 を参照してください。

進捗情報

ダウンロード中にリアルタイムで以下を表示:

指標説明
進捗パーセント現在完了したセグメント数 / 総セグメント数
ダウンロード速度スライディングウィンドウに基づくリアルタイム速度推定
推定残り時間現在の速度と残りセグメント数に基づいて計算
ダウンロード済みバイト数累計ダウンロードデータ量


MPD/DASH ストリーミングメディアダウンローダー

アクセスパス:/dash-downloader

機能概要

DASH ダウンローダーは MPEG-DASH ストリーミングメディアプロトコルを処理します。HLS とは異なり、DASH ストリームの動画と音声は通常分離されており、それぞれダウンロードしてからマージする必要があります。

DASH プロトコルの詳細な原理(MPD 構造、音声/動画分離、FMP4 カプセル化)については、動画検知 — DASH ストリーム を参照してください。

使用フロー

  1. MPD URL の取得:ブラウザ開発者ツールから .mpd アドレスを取得
  2. URL の貼り付け:アドレスを入力ボックスに貼り付け
  3. 画質の選択:解析された動画ストリームリストから選択
  4. パラメータ設定:並列スレッド数とファイル名を設定
  5. ダウンロード開始:ツールが自動的に動画・音声セグメントをダウンロードしてマージ

MPD マニフェスト解析

DASH ダウンローダーは mpd-parser ライブラリを使用して MPD マニフェストを解析し、以下の情報を抽出します:

  • Period:時間帯定義
  • AdaptationSet:メディアタイプグループ(動画/音声)
  • Representation:具体的な画質/ビットレートオプション
  • SegmentTemplate / SegmentList:セグメント URL パターン

解析結果はビットレート降順に並べ替えられ、以下の形式で表示されます:

1080p · 5.2 Mbps · avc1.640028
720p · 2.8 Mbps · avc1.64001f

音声/動画分離処理

DASH ストリームの重要な特徴の1つは、動画トラックと音声トラックが分離していることです。ダウンローダーの処理フロー:

  1. MPD を解析し、動画と音声の AdaptationSet を識別
  2. ユーザーが動画画質を選択すると、自動的に最適な音声ストリームをマッチング(通常最高ビットレートを選択)
  3. 動画セグメントと音声セグメントを並列ダウンロード
  4. FFmpeg WASM を使用して動画と音声を単一の MP4 ファイルにマージ

マージコマンドは以下と等価です:

ffmpeg -f concat -i video_list.txt -f concat -i audio_list.txt \
  -c:v copy -c:a copy -movflags +faststart output.mp4
DASH 音声/動画マージには FFmpeg WASM エンジンを使用しています。FFmpeg WASM の読み込みメカニズム、メモリ制限、パフォーマンス最適化については、フォーマット変換 — FFmpeg WASM エンジン を参照してください。

FMP4 サポート

FMP4(Fragmented MP4)でカプセル化された DASH ストリームの場合、ダウンローダーは以下をサポートしています:

  • urn:mpeg:dash:ffmpeg:2013 などの FMP4 識別子を認識
  • 初期化セグメント(init segment)とメディアセグメントをダウンロード
  • FFmpeg WASM を使用して FMP4 セグメントを標準 MP4 に再構成

暗号化サポート

暗号化方式サポート状況
AES-128 CTR部分サポート
Widevine非サポート
PlayReady非サポート
ClearKey非サポート

共通機能

保存ディレクトリ選択

2つのオンラインツールはいずれも File System Access API のディレクトリ永続化機能をサポートしています:

  1. 「保存ディレクトリを選択」ボタンをクリック
  2. 表示されるシステムダイアログで対象フォルダを選択
  3. 認可後、すべての後続ダウンロードが直接そのディレクトリに書き込まれる
  4. ディレクトリ名が画面上に表示され、いつでも消去または変更可能

技術的実装

  • window.showDirectoryPicker() を使用してディレクトリハンドルを取得
  • handle.requestPermission({ mode: 'readwrite' }) 経由で永続化権限を要求
  • ディレクトリ名を localStorage にキャッシュして UI 表示に使用
  • 権限状態を navigator.permissions.query() 経由でサイレントチェック
File System Access API には Chrome 86+ または Edge 86+ が必要です。お使いのブラウザがサポートしていない場合、自動的に StreamSaver.js または Blob ダウンロードにフォールバックします。詳細は ブラウザ互換性 を参照してください。

書き込み戦略の優先順位

ダウンロードエンジンは以下の優先順位でファイル書き込み方式を選択します:

優先順位戦略メモリ消費適用条件
1File System Access API極低(ストリーミング書き込み)Chrome 86+、Edge 86+
2StreamSaver.js極低(ストリーミング書き込み)Service Worker サポートが必要
3Blob ダウンロードファイルサイズと同等兜底方案、1.5GB 上限あり
書き込み戦略の詳細比較とフォールバックロジックについては、ダウンロードエンジンアーキテクチャ — 書き込み戦略 を参照してください。

エラー処理

ダウンロード中に発生する可能性のあるエラーと処理方式:

エラータイプ原因処理方式
HTTP 403リソースに認証または Referer チェックが必要ユーザーに URL が有効かどうか確認するよう促す
HTTP 404セグメントの有効期限切れまたは URL エラーユーザーにストリームアドレスを再取得するよう促す
CORS エラークロスドメインリクエストがサーバーによって拒否されたブラウザ拡張機能バージョンの使用を提案
ネットワークエラー接続中断またはタイムアウト自動リトライ3回
暗号化非サポートサポートされていない暗号化方式に遭遇明確に処理できないことを提示
DRM 保護コンテンツが DRM で保護されているユーザーにコンテンツがダウンロードできないことを提示
CORS エラーに遭遇するのが最も一般的な問題です。この際、ブラウザ拡張機能 のインストールをお勧めします。拡張機能は同一オリジンポリシー制限をバイパスできます。より多くのトラブルシューティング方法については よくある問題のトラブルシューティング を参照してください。

ダウンロード完了後

ダウンロード完了後に以下の操作を提供:

  • パスをコピー:ファイル保存パスをクリップボードにコピー
  • もう1つダウンロード:状態をリセットし、次回のダウンロードに備える
  • 保存ディレクトリを消去:ディレクトリ認可を削除

技術的制限

オンラインツールは拡張機能バージョンと比較して以下の制限があります:

  1. クロスドメイン制限:ブラウザの同一オリジンポリシーにより、一部 CDN 上のセグメントのダウンロードがブロックされる可能性があります。拡張機能バージョンは webRequest 権限により一部の制限をバイパスできます
  2. Referer チェック:一部のストリーミングサーバーは特定の Referer ヘッダーを要求しますが、オンラインツールではカスタマイズできません
  3. Service Worker 依存:StreamSaver 書き込み戦略には Service Worker サポートが必要であり、ページが正しい COEP/COOP ヘッダーを設定していることが求められます
  4. SharedArrayBuffer:FFmpeg WASM マルチスレッドモードには SharedArrayBuffer が必要であり、これはページに Cross-Origin-Isolated ヘッダーの設定を求めます

FlowPick ウェブサイトにはこれらの機能をサポートするために必要なセキュリティヘッダーが設定されています:

Cross-Origin-Opener-Policy: same-origin
Cross-Origin-Embedder-Policy: require-corp
COEP/COOP ヘッダーの技術的背景とブラウザ互換性については、ブラウザ互換性 — セキュリティヘッダー要件 を参照してください。

典型的な使用シーン

シーン1:既知のストリームアドレスの高速ダウンロード

M3U8 URL を取得 → /m3u8-downloader を開く → 貼り付け → 画質を選択 → ダウンロード

F12 開発者ツール経由でストリームアドレスを取得済みのシーンに適しています。動画プラットフォーム — 手動 URL 取得 を参照してください。

シーン2:一時的なデバイスでのダウンロード

公共 PC → FlowPick ウェブサイトを開く → ストリームアドレスを貼り付け → USB メモリにダウンロード

ソフトウェアのインストールが一切不要であり、会社の PC、学校の PC ラボ、インターネットカフェなど、拡張機能をインストールできない環境に適しています。

シーン3:複数のストリームの一括ダウンロード

すべての M3U8 URL を収集 → オンラインツールで1つずつダウンロード → キューが自動管理

複数のコース動画やシリーズ動画をダウンロードする必要があるシーンに適しています。オンラインコースダウンロード を参照してください。


関連ドキュメント