(HDS動画保存)筆者が使っている動画配信サイトでAdobe HLS/HDS動画を保存したい事があったので方法をメモしておきます。
一部の動画配信サイトでは、「Adobe HLS(HTTP Live Streaming)」や「Adobe HDS(HTTP Dynamic Streaming)」で動画配信を行っています。HDS/HLSの詳しい仕組みは省きますが、大きい動画をセグメントに分割し、それをHTTPで配信してブラウザ上で再生するというものです。
そのままセグメントをダウンロードすると、動画再生アプリで再生できないので、専用のツールを使って結合します。
注意事項
- 本記事は技術的検証結果を記載するものであり、動画ダウンロードの際は著作権を遵守してください。
- これによるトラブルがあった場合でも、当サイトでは責任を負いません。
- 個別の動画ダウンロード方法のお問い合わせは一切お受けしません。
- コマンドプロンプトや各ツールの詳しい使い方はご自身でお調べになってください。
そもそもどうやってAdobe HLS/HDS配信が採用されているサイトと判断するか?
特にこれといった見分け方はありません。筆者の場合は、動画ダウンロードに対応したダウンロードマネージャを使ってダメな場合、試しにURL SnooperでWebサーバから来ている情報を見てみて、何やらセグメント分けしたデータが落ちてきているようであればAdobe HLS/HDSと判断します。
また、Adobe HLS/HDSの区別に関しては、URL Snooperで見えているURLに「.m3u8」となっているものが含んでいればHLS、「.f4m」となっているものが含んでいればHDSと判断します。
大まかな流れ(HLS/HDS共通)
1.URL Snooperを使って、playlist(m3u8), manifestファイル(f4m)のURLを特定する。
2.ffmpegやAdobe HDS Downloaderを使って動画を保存する。
Adobe HLSの保存
- ffmpegを入手します。
- URL Snooperを起動して、Webブラウザ上から保存したいHLS動画を再生します。この時、末尾が「.m3u8」となっているURLを控えます。m3u8ファイルの実体は、セグメント一覧が記述されているファイルになります。
- コマンドプロンプトからffmpegを起動し、以下のコマンドを入力します。
ffmpeg -i “http://…/playlist.m3u8” -c copy output.mp4
Adobe HDSの保存
- Adobe HDS Downloaderを入手します。
- URL Snooperを起動して、Webブラウザ上から保存したいHDS動画を再生します。この時、末尾が「.f4m」となっているURLを控えます。
- コマンドプロンプトからAdobe HDS Downloaderを起動し、以下のコマンドを入力します。
“Malformed AAC bitstream detected:・・・”という警告が出た場合、”-bsf:a aac_adtstoasc”オプションを追加する必要があります。AdobeHDS –manifest “http://…/manifest.f4m” –outfile “output.flv” –delete
コメント