※ 2020.9追記
いまだにこちらの記事に一定のアクセスがございます。ただ、すでにもう内容が古くなってますので、こちらの新しい記事を貼っておきます。
※ 以下、2016年の古い記事も一応そのまま残しておきます。
には、どーしたらいいかと相談を受けました(笑) ま、深くは聞かない事にしましょう(笑)
えーと、さっと考えると出来ないんですよね、実は。ストリーミングですから。でも、ffmpegを使えば出来ちゃうんですよ、実は。コマンドラインでの操作になっちゃいますけど、「出来る」ってのが目的な訳で、多分方法としては現時点ではこれしかないです、ハイ。以下、ざっと書きますけど、自己責任でお願いします。うん。
Contents >>>>>>>>
【準備偏】
まず、ココから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を使え」です。