Webページの音声を検知してダウンロードする方法:ポッドキャスト、BGM、オーディオブックをまとめて取得
あるサイトのBGMが気に入ったけど、ダウンロードボタンがどこにもない。ポッドキャストプラットフォームで数エピソードをオフライン保存したいけど、公式アプリは有料。オーディオブックサイトは各章が別々の音声ファイルで、一つずつクリックするのが面倒。
この記事で伝えるのは一つ:こうした隠れた音声をどうやって取得するか。
Web音声が直接ダウンロードしにくい理由
ブラウザには音声ファイルの「一括保存」機能が組み込まれていません。<audio> 要素を右クリックすると「名前を付けて保存」が表示されることもありますが、ほとんどのモダンなサイトは右クリックメニューを無効にしているか、メニューの「保存」が一時的なトークン付きURLしか保存せず、開こうとするとすでに403です。
さらに面倒なケース:
HLS音声ストリーム — ポッドキャストプラットフォームや講座サイトはよくHLSで音声を配信します。動画のHLSと同様に数百のセグメントに分割されています。M3U8 URLを取得しても直接再生はできますが、「名前を付けて保存」では数KBのプレイリストファイルしか保存されません。原理は同じです。詳しくは M3U8/HLSストリーミングのダウンロード:完全初心者ガイド を参照。
署名トークン付きの直接リンク — 一部のプラットフォームはリクエストごとに有効期限付きURLを生成します。リンクをコピーしてIDMやブラウザのダウンロードバーに貼り付けても、ほぼ確実に403です。
ログイン必須のコンテンツ — 会員専用コンテンツは、裸のリンクではまったく取得できず、現在のセッションのCookieが必要です。
FlowPickはブラウザ拡張機能として、ネットワークリクエスト層で直接インターセプトします——FlowPickが見るURLはあなたのブラウザが見るものと完全に同じで、Cookie付き、トークン付き、リアルタイムで有効です。
FlowPickが検出できる音声
webRequest APIを通じてすべてのネットワークリクエストを監視し、FlowPickは以下を検出できます:
- 直接音声ファイル:MP3、M4A、AAC、WAV、FLAC、OGG、WEBAなど。ページ読み込み時に表示されます
- HLS音声ストリーム:M3U8プレイリスト内の音声のみのトラック。再生をクリックしてリクエストをトリガーする必要があります
- DASH音声トラック:DASHストリーム内の独立した音声AdaptationSet。通常M4A/AAC形式
- ページBGM:ページ読み込み時に自動リクエストされるBGM。ページを更新すれば検出できます
検出できないケース:
- Web Audio APIでクライアントサイド合成された音声(ネットワークリクエストを経由しない)
- Widevine/PlayReady DRMで暗号化された音声(Spotifyなどのプラットフォーム)
- HTMLにBase64でインライン埋め込みされた音声データ
対応音声フォーマット
| フォーマット | 拡張子 | よくあるシーン |
|---|---|---|
| MP3 | .mp3 | ポッドキャスト、音楽、オーディオブック |
| M4A/AAC | .m4a、.aac | Appleデバイス、YouTube音声トラック |
| WAV | .wav | ゲーム効果音、プロ録音 |
| FLAC | .flac | ロスレス音楽 |
| OGG | .ogg | ゲームBGM、一部のポッドキャスト |
| WebM Audio | .weba | Chrome系ブラウザ |
| HLS音声ストリーム | .m3u8 | ポッドキャストプラットフォーム、講座サイト |
| DASH音声トラック | .mpd | Bilibili音声のみ、YouTube Music |
音声の検知とダウンロード手順
ステップ1:ページを更新するか再生をトリガー
重要なポイントは音声タイプによって異なります:
- ページBGM / 自動再生音声:直接ページを更新。BGMの読み込みリクエストはすぐにFlowPickがキャプチャします。手動操作不要
- クリック再生が必要なポッドキャスト/オーディオブック:再生ボタンをクリックし、再生開始を待って(通常2〜3秒)、FlowPickを開く
- HLS音声ストリーム:再生をクリックした後、FlowPickがM3U8リクエストを認識します。再生しないとストリームは見えません
ステップ2:FlowPickポップアップを開く
ブラウザのツールバーにあるFlowPickアイコンをクリックします。ポップアップのバッジの数字は、現在のページで検出されたすべてのメディアリソースの総数です。

ステップ3:音声タブに切り替え
ポップアップ上部にメディアタイプタブがあります。音声タブ(🎵アイコン)をクリックしてください。検出されたすべての音声リソースの一覧が表示され、各エントリにファイル名、フォーマット、ファイルサイズ(サーバーが Content-Length を返した場合)が表示されます。
ファイルサイズが「不明」と表示される場合——これは正常で、サーバーがレスポンスヘッダーにサイズを返していないだけです。ダウンロードには影響しません。
ステップ4:選択してダウンロード
単一ファイル:右側のダウンロードアイコンをクリックして直接ダウンロード。
一括ダウンロード:複数のエントリにチェックを入れる → 上部の選択したものをダウンロードをクリック。FlowPickはキューに従って順次ダウンロードし、ポップアップに進捗が表示されます。
HLS音声ストリームの場合、FlowPickは自動的にすべてのセグメントをダウンロードし、完全なM4AまたはMP3ファイルに結合します。手動処理は不要です。背後にある結合パイプラインは FlowPickがブラウザ内で数百の動画セグメントをMP4に結合する仕組み で完全に解説されています。音声ストリームも同じ仕組みです。

具体的なシーン別操作
ポッドキャストの一括保存
ポッドキャストプラットフォームでよくある状況:トップページのリスト読み込み時、各エピソードの音声URLはまだリクエストされていない可能性があります——エピソードページに入るか再生をクリックして初めて、音声リクエストが送信されます。
操作の流れ:
- ポッドキャスト番組ページを開く
- エピソードごとに再生をクリック(2秒だけでもOK)
- タブを閉じずに、次のエピソードの再生をクリックし続ける
- 複数エピソードを順次トリガーした後、FlowPickを開く → 音声タブ
- すべて選択 → 選択したものをダウンロード
これでトリガーしたすべてのエピソードを一括でキューに入れられ、1エピソードずつ待つ必要はありません。
注意: プラットフォームが一度に20エピソードしか読み込まない場合、一番下までスクロールしてさらに読み込んだ後、引き続き再生をトリガーしないと後続のエピソードは検出できません。
オーディオブックの章別ダウンロード
オーディオブックプラットフォームは通常、各章を独立した音声ファイルに分割しています。視聴ページに入り、第1章を再生すると、FlowPickに音声エントリが表示されます。プラットフォームが複数章をプリロードする場合、すべて表示されます——全選択して一括ダウンロードすればOKです。
プラットフォームが1章再生し終わってから次の章を読み込む場合:再生、ダウンロード、次の章に切り替え、再生、再ダウンロード、の繰り返し。ブラウザで右クリック保存を繰り返すより、FlowPickの方が速く処理できます。特にHLSストリームはセグメントを手動処理する必要がありません。
WebサイトのBGM
多くのクリエイティブサイト、ゲームプロモーションページ、製品ランディングページには凝った作りのBGMがあります。この種の音声は通常、ページ読み込み時に自動リクエストされ、操作不要です。
ページを開く(BGMが流れ始めるのを待つ) → すぐにFlowPickを開く → 音声タブに表示されています。通常MP3またはM4A形式で、直接ダウンロードできます。
YouTube Music / Bilibili音声のみ
YouTubeとBilibiliの音声のみのコンテンツはDASHを使用し、音声トラックと映像トラックが分離されています。FlowPickポップアップには映像エントリと音声エントリの両方が表示されます——音声だけ必要な場合は、音声タブに切り替えて音声トラックを直接ダウンロードすれば、動画全体をダウンロードしてから抽出する必要はありません。DASHがなぜこのように設計されているかは、DASHストリーミングとは?MPDファイル解析 を参照してください。
BilibiliのDASH音声トラックは通常M4A形式で、128kbpsまたは320kbps(プレミアム会員)。Bilibiliの完全なダウンロード手順は Bilibili動画をローカルにダウンロードする方法 でより詳しく解説しています。
講座プラットフォームの音声講義
一部の講座プラットフォームでは、講座に独立した音声バージョンがあるか、本編動画自体のHLS音声トラックを個別にダウンロードできます。FlowPickポップアップで:動画ストリーム(M3U8)が表示されると同時に、音声タブにも独立したM3U8エントリがある場合、プラットフォームが音声と映像を分離して配信していることを意味します——音声トラックを直接ダウンロードすれば、ファイルが小さく、通勤中に聴くのに最適です。
不要な音声をフィルタリング
ページ上の音声がすべて必要なものとは限りません——広告音声、UI操作音、ページ通知音も検出されます。
ファイルサイズでフィルタリング:FlowPickの設定で最小ファイルサイズ(例:500KB)を設定すれば、ほとんどの短いUI効果音や広告音声を除外できます。ポッドキャストの1エピソードは通常数十MB、オーディオブックの章も数MB以上なので、このしきい値は非常に有効です。
手動でチェックを外す:一括ダウンロード前にリストをざっと確認し、ファイル名に「ad」「jingle」「notify」などのキーワードがあるものは手動でチェックを外してください。
よくある質問
検出されたのにダウンロードに失敗する
ほとんどの場合、URLに有効期限付きトークンが含まれており、ポップアップを開いてから実際にダウンロードをクリックするまでの間に時間が経ちすぎてトークンが期限切れになっています。ページを更新し、再生を再トリガーし、再検出して、すぐにダウンロードしてください。
HLS音声をダウンロードしたら空ファイルまたは数KB
M3U8ファイル自体は数KBで、プレイリストであり音声コンテンツではありません。FlowPickはHLS音声のダウンロード時に自動的にすべてのセグメントを解析・ダウンロードして結合します——数KBのファイルができる場合、FlowPickがプレイリストのみを保存し、セグメントダウンロードが開始されていないことを意味します。
ChromeまたはEdgeに切り替えてください。結合機能はこの2つのブラウザで最も安定しています。
ファイルはダウンロードできたが再生できない
いくつかのケース:
- フォーマットの誤認識:サーバーがM4Aを送信しているのにContent-Typeが
audio/mpegと書かれているため、.mp3として保存された。VLCで強制再生するか、拡張子を手動で.m4aに変更してみてください - HLSセグメント欠落:プレーヤーのバッファリングが完了する前に停止し、一部のセグメントがダウンロード完了していない。再ダウンロードし、FlowPickのプログレスバーが100%になるのを確認してください
- DRM暗号化:Spotify、NetEase Cloud MusicのVIP楽曲などのプラットフォームはDRMを使用。ダウンロードされるのは暗号化データで、どのプレーヤーでも再生不可。FlowPickはこの種のコンテンツに対応できません
ダウンロードしたポッドキャストがBGMだけで声が入っていない
ごく稀なケース:プラットフォームがBGMと音声を2つの独立した音声トラック(DASHの複数AdaptationSet)に分けていて、片方だけダウンロードした。FlowPickの音声リストにもう一つのエントリがないか確認し、両方選択してダウンロードし、FFmpegでミックスします:
ffmpeg -i voice.m4a -i bgm.m4a -filter_complex amix=inputs=2 output.mp3
プライバシーについて
FlowPickの音声検出とダウンロードは全工程がブラウザローカルで完結します。検出されたURLやダウンロードされたファイルはFlowPickのサーバーを経由しません。あなたのアカウントのCookieやセッション情報は、あなたのブラウザが対象サーバーに直接リクエストを送信するためだけに使われます——ページを直接開いて音声を聴くのとまったく同じネットワーク経路です。
おすすめ記事
- M3U8/HLSストリーミングのダウンロード:完全初心者ガイド — 音声ストリームも動画ストリームも原理は同じ。こちらでより詳しく解説
- DASHストリーミングとは?MPDファイル解析 — DASHが音声と映像を分離伝送する仕組み。音声の個別ダウンロードはこの仕組みのおかげ
- Bilibili動画をローカルにダウンロードする方法 — BilibiliのDASH音声トラックも個別ダウンロード可能
- FlowPickがブラウザ内で数百の動画セグメントをMP4に結合する仕組み — HLS音声ストリームのセグメント結合も同じパイプライン
- Webページから画像を一括ダウンロードする方法 — 画像も音声も一括取得可能。これを読めば応用が利く