オンラインツール
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 ストリーム を参照してください。
使用フロー
- M3U8 URL の取得:ブラウザ開発者ツール(Network パネル)またはサードパーティツールから
.m3u8アドレスを取得 - URL の貼り付け:アドレスを入力ボックスに貼り付けると、ツールが自動的にマニフェストを解析
- 画質の選択:Master Playlist の場合、画質リストから対象解像度を選択
- パラメータ設定:並列スレッド数、出力フォーマット、ファイル名を設定
- ダウンロード開始:ダウンロードボタンをクリックすると、ツールが自動的にすべてのセグメントをダウンロードしてマージ
サポートされるマニフェストタイプ
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 で暗号化されたストリームの場合、ツールは以下を行います:
#EXT-X-KEYタグを解析してキー URI を取得- キーファイルをダウンロード
- Web Crypto API(
crypto.subtle.decrypt)を使用してブラウザ内で各セグメントを復号 - 復号されたセグメントを最終ファイルにマージ
セグメントダウンロードとマージ
ダウンロードフローは3つの段階に分かれます:
フェーズ1:解析(0% ~ 5%)
- M3U8 マニフェストをダウンロードして解析
- セグメント URI リストを抽出
- サンプリングで総サイズを推定
フェーズ2:ダウンロード(5% ~ 85%)
- マルチスレッド並列でセグメントをダウンロード
- リアルタイムで進捗、速度、残り時間を表示
- 失敗したセグメントを自動リトライ(最大3回、指数バックオフ)
フェーズ3:マージ(85% ~ 100%)
- セグメントを順番に連結
- TS フォーマットの場合:直接バイナリ連結(最速)
- MP4 出力の場合:FFmpeg WASM を使用してコンテナ変換
進捗情報
ダウンロード中にリアルタイムで以下を表示:
| 指標 | 説明 |
|---|---|
| 進捗パーセント | 現在完了したセグメント数 / 総セグメント数 |
| ダウンロード速度 | スライディングウィンドウに基づくリアルタイム速度推定 |
| 推定残り時間 | 現在の速度と残りセグメント数に基づいて計算 |
| ダウンロード済みバイト数 | 累計ダウンロードデータ量 |

MPD/DASH ストリーミングメディアダウンローダー
アクセスパス:/dash-downloader

機能概要
DASH ダウンローダーは MPEG-DASH ストリーミングメディアプロトコルを処理します。HLS とは異なり、DASH ストリームの動画と音声は通常分離されており、それぞれダウンロードしてからマージする必要があります。
DASH プロトコルの詳細な原理(MPD 構造、音声/動画分離、FMP4 カプセル化)については、動画検知 — DASH ストリーム を参照してください。
使用フロー
- MPD URL の取得:ブラウザ開発者ツールから
.mpdアドレスを取得 - URL の貼り付け:アドレスを入力ボックスに貼り付け
- 画質の選択:解析された動画ストリームリストから選択
- パラメータ設定:並列スレッド数とファイル名を設定
- ダウンロード開始:ツールが自動的に動画・音声セグメントをダウンロードしてマージ
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つは、動画トラックと音声トラックが分離していることです。ダウンローダーの処理フロー:
- MPD を解析し、動画と音声の AdaptationSet を識別
- ユーザーが動画画質を選択すると、自動的に最適な音声ストリームをマッチング(通常最高ビットレートを選択)
- 動画セグメントと音声セグメントを並列ダウンロード
- 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
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 のディレクトリ永続化機能をサポートしています:
- 「保存ディレクトリを選択」ボタンをクリック
- 表示されるシステムダイアログで対象フォルダを選択
- 認可後、すべての後続ダウンロードが直接そのディレクトリに書き込まれる
- ディレクトリ名が画面上に表示され、いつでも消去または変更可能

技術的実装:
window.showDirectoryPicker()を使用してディレクトリハンドルを取得handle.requestPermission({ mode: 'readwrite' })経由で永続化権限を要求- ディレクトリ名を
localStorageにキャッシュして UI 表示に使用 - 権限状態を
navigator.permissions.query()経由でサイレントチェック
書き込み戦略の優先順位
ダウンロードエンジンは以下の優先順位でファイル書き込み方式を選択します:
| 優先順位 | 戦略 | メモリ消費 | 適用条件 |
|---|---|---|---|
| 1 | File System Access API | 極低(ストリーミング書き込み) | Chrome 86+、Edge 86+ |
| 2 | StreamSaver.js | 極低(ストリーミング書き込み) | Service Worker サポートが必要 |
| 3 | Blob ダウンロード | ファイルサイズと同等 | 兜底方案、1.5GB 上限あり |
エラー処理
ダウンロード中に発生する可能性のあるエラーと処理方式:
| エラータイプ | 原因 | 処理方式 |
|---|---|---|
| HTTP 403 | リソースに認証または Referer チェックが必要 | ユーザーに URL が有効かどうか確認するよう促す |
| HTTP 404 | セグメントの有効期限切れまたは URL エラー | ユーザーにストリームアドレスを再取得するよう促す |
| CORS エラー | クロスドメインリクエストがサーバーによって拒否された | ブラウザ拡張機能バージョンの使用を提案 |
| ネットワークエラー | 接続中断またはタイムアウト | 自動リトライ3回 |
| 暗号化非サポート | サポートされていない暗号化方式に遭遇 | 明確に処理できないことを提示 |
| DRM 保護 | コンテンツが DRM で保護されている | ユーザーにコンテンツがダウンロードできないことを提示 |
ダウンロード完了後
ダウンロード完了後に以下の操作を提供:
- パスをコピー:ファイル保存パスをクリップボードにコピー
- もう1つダウンロード:状態をリセットし、次回のダウンロードに備える
- 保存ディレクトリを消去:ディレクトリ認可を削除
技術的制限
オンラインツールは拡張機能バージョンと比較して以下の制限があります:
- クロスドメイン制限:ブラウザの同一オリジンポリシーにより、一部 CDN 上のセグメントのダウンロードがブロックされる可能性があります。拡張機能バージョンは
webRequest権限により一部の制限をバイパスできます - Referer チェック:一部のストリーミングサーバーは特定の Referer ヘッダーを要求しますが、オンラインツールではカスタマイズできません
- Service Worker 依存:StreamSaver 書き込み戦略には Service Worker サポートが必要であり、ページが正しい COEP/COOP ヘッダーを設定していることが求められます
- SharedArrayBuffer:FFmpeg WASM マルチスレッドモードには
SharedArrayBufferが必要であり、これはページにCross-Origin-Isolatedヘッダーの設定を求めます
FlowPick ウェブサイトにはこれらの機能をサポートするために必要なセキュリティヘッダーが設定されています:
Cross-Origin-Opener-Policy: same-origin
Cross-Origin-Embedder-Policy: require-corp
典型的な使用シーン
シーン1:既知のストリームアドレスの高速ダウンロード
M3U8 URL を取得 → /m3u8-downloader を開く → 貼り付け → 画質を選択 → ダウンロード
F12 開発者ツール経由でストリームアドレスを取得済みのシーンに適しています。動画プラットフォーム — 手動 URL 取得 を参照してください。
シーン2:一時的なデバイスでのダウンロード
公共 PC → FlowPick ウェブサイトを開く → ストリームアドレスを貼り付け → USB メモリにダウンロード
ソフトウェアのインストールが一切不要であり、会社の PC、学校の PC ラボ、インターネットカフェなど、拡張機能をインストールできない環境に適しています。
シーン3:複数のストリームの一括ダウンロード
すべての M3U8 URL を収集 → オンラインツールで1つずつダウンロード → キューが自動管理
複数のコース動画やシリーズ動画をダウンロードする必要があるシーンに適しています。オンラインコースダウンロード を参照してください。
関連ドキュメント
- インストールガイド — ブラウザ拡張機能のインストール方法
- 使用ガイド — 拡張機能とオンラインツールの完全操作ガイド
- 動画検知 — HLS/DASH プロトコルの検知原理
- フォーマット変換 — TS→MP4 リマックスと FFmpeg WASM
- 一括ダウンロード — 複数リソースキューマネジメント
- プライバシーとセキュリティ — ローカル処理、ゼロデータアップロード
- ダウンロードエンジンアーキテクチャ — 並列ダウンロードと書き込み戦略
- ブラウザ互換性 — FSA/StreamSaver サポート状況
- 動画プラットフォームダウンロード — 各プラットフォームのストリームアドレス取得方法
- オンラインコースダウンロード — コース動画の一括ダウンロード
- ライブ配信アーカイブ保存 — 大容量ファイルストリーミングダウンロード
- よくある問題のトラブルシューティング — CORS エラーなどの問題の診断
- 既知の問題 — オンラインツールの既知の制限