macOS sierra / High sierraでHLSなストリーミングビデオをmp4として保存する。

※ 2020.9追記

いまだにこちらの記事に一定のアクセスがございます。ただ、すでにもう内容が古くなってますので、こちらの新しい記事を貼っておきます。

※ 以下、2016年の古い記事も一応そのまま残しておきます。


には、どーしたらいいかと相談を受けました(笑) ま、深くは聞かない事にしましょう(笑)

えーと、さっと考えると出来ないんですよね、実は。ストリーミングですから。でも、ffmpegを使えば出来ちゃうんですよ、実は。コマンドラインでの操作になっちゃいますけど、「出来る」ってのが目的な訳で、多分方法としては現時点ではこれしかないです、ハイ。以下、ざっと書きますけど、自己責任でお願いします。うん。

 

【準備偏】

まず、ココからMac用にバイナリ化されたffmpegをダウンロードして下さい。

解凍したフォルダの中にffmpegがあるので、これを

/bin

に移動すれば準備オッケーなんですが・・・。macOS sierraではデフォルトではRootlessというシステム整合性保護機能が働いててsudoでもアクセス権が無いといわれて/binに移動出来ません。で、まず、Rootlessをoffにします。

リカバリーモードのターミナルを使います。macOS sierraを一旦シャットダウンします。command+RをおしながらMacを起動します。するとリカバリーモードで起動しますから、メニュー→ユーティリティ→ターミナルを起動します。(ちなみに、書いときますが、下記のコマンドの頭にある$はプロンプトですょ。打ち込みませんょw)

$ csrutil status

と打ち込んでみてください。

System Integrity Protection status: enabled

となったと思います。Rootlessが有効になってるぜ、ってことっすね。OFFにします。

$ csrutil disable

と打ち込むと

Successfully disabled Systemうんちゃらかんちゃら。。。

と言われるのでこれでオッケー。そのまま

$ reboot

と打ってMacを通常状態で再起動します。sudoがフルに使えるようになってると思うので、ターミナルを立ち上げます。

$ cd  [移動するフォルダのパスとか]

でffmpegがあるフォルダまで移動します。移動しおわったら念のため

$ ls

でffmpegがあるフォルダに居る事を確認したら/binにコピーします。

$ sudo cp ffmpeg /bin

するとパスワードを入れろと出てくるので、ログインしている管理者権限のパスワードを打ちます。(そうそう、管理者権限のアカウントでログインしてないとダメっすよ)

(ffmpegがあるフォルダに移動しなくてもフルパスでffmpegを指定しても、もちろんOK)

これで準備オッケー。もう一度リカバリーモードのターミナルを起動して

$ csrutil enable

としてRootlessを再度有効にしておく事もわすれずに。

 

【実践編】

まずはそのHLSストリーミングVideoのURLを入手しなくてはなりません。Safariでも出来るんですけど、FireFoxとそのプラグインVideo DownloadHelperを使うと簡単です。つかHLSじゃなけりゃVideo DownloadHelperだけでダウンロード出来ちゃうし(笑)。で、それで説明しますけど、再生始めたらVideo DownloadHelperのアイコンをクリックしてHLS streamingと書いてある行の→をクリック。サブメニューから「Download」ではなくて、「Copy URL」を選択すればURLゲットです。超簡単。

URLをゲットしたのでターミナルを起動します。次のコマンドを打ち込みます。

$ ffmpeg -i http://example.com/…/nanchara.m3u8 -movflags faststart -c copy -bsf:a aac_adtstoasc myvideo.mp4

以上。もうちょっと詳しく書いとくと最初の「ffmpeg -i 」と打ち込んだあと(スペースに注意!)コピーしといたURLをペーストした部分が赤い部分です。最後がm3u8になってりゃOKです。そのあと、更にコマンドを上記の通り打ち込んで、青い文字のmyvideo.mp4はそういう名前で保存せぃ!という事なので、favorite.mp4でもxxx.mp4でもお好きに。拡張子がmp4ならファイル名は何でもエエデスヨ。

しばらく待つと、myvideo.mp4というファイル名でユーザーフォルダに保存されていますので、あとは煮るなり焼くなり(笑)

・・・コマンドラインに慣れてない人がほんとにココまでやるか?っていう別の問題もあるのだが(笑) ま、そんときゃ諦めて下さいw

注) ゲットしたURLの最後がm3u8になってない場合があります。その場合もこの方法は使えません。また、https:// な場合もうまくいきませんので、それぞれなにか考えてくださいw

2018.10.14追記

そういやこの件、半年ぐらい前からFireFoxのVideo DownloadHelperがHLS streamingに対応してそのままDownloadできるようになりました。そのためのヘルパープログラムは入れなくちゃですけど、指示通り進めばできるので、特に難しくもないかと。てことで、2018.10.14現在では「FireFoxとVideo DownloadHelperを使え」です。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA