FRESH by AbemaTV をもう一度眺めた(仕様改変に対応する)

179abd5d6b0564f3c107ab7891532fa9_04821dbfa30ab550496be9622eaf5f13.png

前回記事を書いてから2ヶ月。
FRESH by AbemaTV を眺めた
http://nyarudiary.blog.fc2.com/blog-entry-102.html

1月の「AmebaFRESH!」サービス開始から8ヶ月。
4月にAbemaTVと統合して「FRESH by AbemaTV」と名称を変えてから5ヶ月。

いつもの様にアーカイブを保存しようとすると404。
マスタープレイリストファイル(マニフェストファイル)の命名規則が変わっていました。

正確にはわかりませんが、9月放送分から変わったのかな?

生放送中の録画、放送後のアーカイブの録画・保存向けにどうぞ。


○前提条件
番組IDは、配信ページのURLの末尾。
同じチャンネルでも番組IDは毎回変わります。
1/28放送のmc1242の場合、番組URLは
https://abemafresh.tv/mcplus1242/35340
ですので、IDは”35340”。
以下、番組IDは青で示します。

○生放送中
・解像度の定義|マスタープレイリスト
https://movie.abemafresh.tv/manifest/35340/live.m3u8

これを展開すると以下のようになっています。

#EXTM3U
#EXT-X-VERSION:3
#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=220000,CODECS=”avc1.77.31,mp4a.40.2″,RESOLUTION=256×144
/playlist/122889.m3u8
#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=730000,CODECS=”avc1.77.31,mp4a.40.2″,RESOLUTION=512×288
/playlist/122890.m3u8
#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=1600000,CODECS=”avc1.77.31,mp4a.40.2″,RESOLUTION=768×432
/playlist/122891.m3u8
#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=2760000,CODECS=”avc1.77.31,mp4a.40.2″,RESOLUTION=1024×576
/playlist/122892.m3u8

・配信ストリームの定義|メディアプレイリスト
https://movie.abemafresh.tv/playlist/122892.m3u8
というわけでメディアプレイリストのURLが大変短くなりました。
生放送中ならこれをVLCなりffmpegに入力すれば良いことになります。

○アーカイブ
・解像度の定義|マスタープレイリスト
https://movie.abemafresh.tv/manifest/35340/archive.m3u8

#EXTM3U
#EXT-X-VERSION:3
#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=220000,CODECS=”avc1.77.31,mp4a.40.2″,RESOLUTION=256×144
/playlist/122893.m3u8
#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=730000,CODECS=”avc1.77.31,mp4a.40.2″,RESOLUTION=512×288
/playlist/122894.m3u8
#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=1600000,CODECS=”avc1.77.31,mp4a.40.2″,RESOLUTION=768×432
/playlist/122895.m3u8
#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=2760000,CODECS=”avc1.77.31,mp4a.40.2″,RESOLUTION=1024×576
/playlist/122896.m3u8

・配信ストリームの定義|メディアプレイリスト
https://movie.abemafresh.tv/playlist/122896.m3u8
アーカイブの録画ならこれを。
メディアプレイリストがLive~Archiveで連番になったことで、予測は楽になりましたね。

以上です。

2016/11/20
11月頃よりサーバーがhttps://movie.freshlive.tv/に変わりました。
ex:
https://movie.freshlive.tv/manifest/35340/live.m3u8
https://movie.freshlive.tv/manifest/35340/archive.m3u8
https://movie.freshlive.tv/playlist/122896.m3u8

コメント

  1. sox より:

    SECRET: 1
    PASS: d635959e0a3b5f13eed2aa2f0aaef9c6
    https://abemafresh.tv/mcplus1242/39551
    このアーカイブを保存したくこちらを参考にさせていただいたのですが
    m3u8探し、URLを変換しffmpegに下記のどちらも追加してみたのでしがエラーが出てしまいます

    ffmpeg -c copy "ameba" -i "https://movie.abemafresh.tv/manifest/40738\/archive.m3u8"
    ffmpeg -c copy "ameba" -i "https://movie.abemafresh.tv/playlist/40738.m3u8"

    URLまたはコマンドが間違っていますか?
    ffmpegも初めて使うので根本的に間違えていたらすみません。

  2. minolabo より:

    SECRET: 0
    PASS: 74be16979710d4c4e7c6647856088456
    > https://abemafresh.tv/mcplus1242/39551
    > このアーカイブを保存したくこちらを参考にさせていただいたのですが
    > m3u8探し、URLを変換しffmpegに下記のどちらも追加してみたのでしがエラーが出てしまいます
    >
    > ffmpeg -c copy "ameba" -i "https://movie.abemafresh.tv/manifest/40738\/archive.m3u8"
    > ffmpeg -c copy "ameba" -i "https://movie.abemafresh.tv/playlist/40738.m3u8"
    >
    > URLまたはコマンドが間違っていますか?
    > ffmpegも初めて使うので根本的に間違えていたらすみません。

    番組IDは"39551"なので、アクセスするべきURLが違います。
    ブラウザで
    https://movie.abemafresh.tv/manifest/39551/archive.m3u8
    にアクセスして、プレイリストを一旦PCに保存してください

    次にそのプレイリストをメモ帳で開くと、166990.m3u8~166993.m3u8までの解像度別メディアプレイリストが記述されているので、
    それをffmpegに引数として加えます。

    一番好解像度のものを保存するならば、
    https://movie.abemafresh.tv/playlist/166993.m3u8
    が適切です。

    ffmpegの引数についてですが、Fresh by AbemaTVのHLS(セグメント化されたMPEG2-TS)をそのままコピーした場合、シークに失敗することが多々合ったので、私はmp4コンテナに変換しています。

    注意点として、MPEG2-TSからMP4へただコピーするだけ[-vcodec copy -acodec copy]ですと、
    「Malformed AAC bitstream detected: use the audio bitstream filter ‘aac_adtstoasc’ to fix it (‘-bsf:a aac_adtstoasc’ option with ffmpeg)」
    オプション付けろと怒られますので、

    [-vcodec copy -acodec copy -bsf aac_adtstoasc]とするか、
    入力元のビットレートに合わせて音声のみ再エンコード(AbemafreshはVBR 90kbpsなので)
    [-vcodec copy -ab 96k]とすると良いかと思います。

    参考までに。
    [ffmpeg.exe -i "https://movie.abemafresh.tv/playlist/166993.m3u8" -vcodec copy -acodec copy -bsf aac_adtstoasc out.mp4]

  3. 匿名 より:

    SECRET: 0
    PASS: 74be16979710d4c4e7c6647856088456
    理解できました!
    とてもわかりやすく、すぐに教えて頂きありがとうございました。

  4. nanashi より:

    SECRET: 1
    PASS: 74be16979710d4c4e7c6647856088456
    https://abemafresh.tv/ichigekiya/47052
    こちらの動画を保存するのに参考にさせていただいたのですが、
    どうしてもエラーになってしまいます。
    ( https://movie.abemafresh.tv/manifest/47052/archive.m3u8 )

    IDは合っていると思うのですが、どこか違うのでしょうか。
    もしくは対応していなかったりするのでしょうか。
    すみません、よろしくお願いします。

  5. minolabo より:

    SECRET: 0
    PASS: 74be16979710d4c4e7c6647856088456
    > https://abemafresh.tv/ichigekiya/47052
    > こちらの動画を保存するのに参考にさせていただいたのですが、
    > どうしてもエラーになってしまいます。
    > ( https://movie.abemafresh.tv/manifest/47052/archive.m3u8 )
    >
    > IDは合っていると思うのですが、どこか違うのでしょうか。
    > もしくは対応していなかったりするのでしょうか。
    > すみません、よろしくお願いします。

    少し調べてみましたが、生放送限定公開でもデータがサーバーに残るもの、残らないものがあるようです。
    お役に立てずすみません。

  6. nanashi より:

    SECRET: 0
    PASS: 74be16979710d4c4e7c6647856088456
    そうだったんですね……!
    お手数おかけしてすみません。ありがとうございます。

  7. 匿名 より:

    SECRET: 0
    PASS: 74be16979710d4c4e7c6647856088456
    ○生放送中
    ・解像度の定義|マスタープレイリスト

    仕様かわってません?

  8. minolabo より:

    SECRET: 0
    PASS: 74be16979710d4c4e7c6647856088456
    > ○生放送中
    > ・解像度の定義|マスタープレイリスト
    >
    > 仕様かわってません?

    若干変わりましたね。
    cloudfrontから見れば迷惑なアクセスですし。
    構成は同じです。

  9. meronnu より:

    SECRET: 0
    PASS: bd41bd935604097ee3b00fce68c55344
    こちらの情報大変参考になりました。

    無料のチャンネルはこの方法で保存できましたが、有料チャンネルはアドレス?が違うのか保存できませんでした。
    正確に言うと、普段有料で放送しているチャンネルの限定無料公開のアーカイブ動画です。
    こちらの動画です"https://freshlive.tv/lovetannnnnn/119306"

    この保存方法は分かりますでしょうか?
    保存可能ならば心置きなく課金しようと思っています。

    古めの記事なのでもう見てないかしら・・・

  10. minolabo より:

    SECRET: 0
    PASS: 74be16979710d4c4e7c6647856088456
    > こちらの情報大変参考になりました。
    >
    > 無料のチャンネルはこの方法で保存できましたが、有料チャンネルはアドレス?が違うのか保存できませんでした。
    > 正確に言うと、普段有料で放送しているチャンネルの限定無料公開のアーカイブ動画です。
    > こちらの動画です"https://freshlive.tv/lovetannnnnn/119306"
    >
    > この保存方法は分かりますでしょうか?
    > 保存可能ならば心置きなく課金しようと思っています。
    >
    > 古めの記事なのでもう見てないかしら・・・

    freshの有料アーカイブは使ったことがないのでわかりません。
    m3u8のURIにtokenが記述されていたり、m3u8内部にキーが記述されていたりするのでなければ、cookieで判断している可能性があります
    その際、403 Access Deniedや404等の応答も参考になるかもしれません。
    頑張ってください。

  11. meronnu より:

    SECRET: 0
    PASS: bd41bd935604097ee3b00fce68c55344
    ダメ元で課金して試してみて、ダメだったらキャプチャで済ませようと思います。
    ありがとうございました。

  12. KYG より:

    SECRET: 0
    PASS: 7b4571d0a253d1ff7ebe974feba1830b
    playlistを取得しようとしたのですが、「このサイトは安全に接続できません

    movie.abemafresh.tv ではサポートされていないプロトコルが使用されています。」と出てきました
    これはどのように対処すれば良いのでしょうか?

  13. minolabo より:

    SECRET: 0
    PASS: 74be16979710d4c4e7c6647856088456
    > playlistを取得しようとしたのですが、「このサイトは安全に接続できません
    >
    > movie.abemafresh.tv ではサポートされていないプロトコルが使用されています。」と出てきました
    > これはどのように対処すれば良いのでしょうか?

    追記をどうぞ。

  14. KYG より:

    SECRET: 0
    PASS: 74be16979710d4c4e7c6647856088456
    見落としてました
    ありがとうございます

  15. HA より:

    SECRET: 0
    PASS: a1fc2a674e6fd0c2ab46e243d6317fc2
    https://freshlive.tv/official-anime/103518
    上記の動画をDLしようとしてみたのですが、うまくできませんでした。

    https://movie.freshlive.tv/manifest/103518/archive.m3u8

    コマンド:
    ffmpeg -i "https://movie.freshlive.tv/playlist/906754.m3u8" -c copy "test.ts"

    エラー:
    https protocol not found, recompile FFmpeg with openssl, gnutls or securetransport enabled.

    対処の仕方がわかりません。
    httpでもやってみましたが、
    [http @ 0x7fae11d06620] HTTP error 403 Forbidden
    http://movie.freshlive.tv/playlist/906754.m3u8: Server returned 403 Forbidden (access denied)
    となりました。

    自分はmacからffmpegを利用しています。
    お手数ですが助けていただけたら幸いです。

    それから、showroomの録画について何かご存知であれば、教えてくれると助かります。

  16. minolabo より:

    SECRET: 0
    PASS: 74be16979710d4c4e7c6647856088456
    > https://freshlive.tv/official-anime/103518
    > 上記の動画をDLしようとしてみたのですが、うまくできませんでした。
    >
    > https://movie.freshlive.tv/manifest/103518/archive.m3u8
    >
    > コマンド:
    > ffmpeg -i "https://movie.freshlive.tv/playlist/906754.m3u8" -c copy "test.ts"
    >
    > エラー:
    > https protocol not found, recompile FFmpeg with openssl, gnutls or securetransport enabled.
    >
    > 対処の仕方がわかりません。
    > httpでもやってみましたが、
    > [http @ 0x7fae11d06620] HTTP error 403 Forbidden
    > http://movie.freshlive.tv/playlist/906754.m3u8: Server returned 403 Forbidden (access denied)
    > となりました。
    >
    > 自分はmacからffmpegを利用しています。
    > お手数ですが助けていただけたら幸いです。
    >
    > それから、showroomの録画について何かご存知であれば、教えてくれると助かります。

    エラーに書かれている通りです。
    opensslが組み込まれたffmpegをコンパイルするかどこからか探してみてください。

    SHOWROOMは最近は知りませんが、変わっていなければrtmpdumpで拾うことが出来ます。
    コマンドがわからないのであればrtmpdumphelperなどで頑張ってみてください。

  17. HA より:

    SECRET: 0
    PASS: a1fc2a674e6fd0c2ab46e243d6317fc2
    コンパイルする際に、一度アンインストールしてから改めて行う必要があるのでしょうか?
    recompileのやり方を教えてくださるとありがたいです。

    http://ericholsinger.com/install-ffmpeg-on-a-mac
    上記のサイトを参考にmacに入れたのですが、何か足りないfeature等ありますでしょうか?

    http://ffmpeg.zeranoe.com/builds/
    windows版のstaticのものと同じ機能が入って入れば良いのですが、windows版ではコンパイルエラーは出てきたことがなかったものですから…

  18. minolabo より:

    SECRET: 0
    PASS: 74be16979710d4c4e7c6647856088456
    > コンパイルする際に、一度アンインストールしてから改めて行う必要があるのでしょうか?
    > recompileのやり方を教えてくださるとありがたいです。
    >
    > http://ericholsinger.com/install-ffmpeg-on-a-mac
    > 上記のサイトを参考にmacに入れたのですが、何か足りないfeature等ありますでしょうか?
    >
    > http://ffmpeg.zeranoe.com/builds/
    > windows版のstaticのものと同じ機能が入って入れば良いのですが、windows版ではコンパイルエラーは出てきたことがなかったものですから…

    ご返信遅くなりました。
    大変申し訳ございませんがお役に立てる知識はあいにく持ち合わせていませんでした…
    どうか成功をお祈りしております。

  19. 名無しのhiphopper より:

    SECRET: 0
    PASS: 74be16979710d4c4e7c6647856088456
    ちなみに管理者様はabematvのアーカイブについての保存方法はご存知ですか?

    https://abema.tv/channels/special-plus-2/slots/F5ZmLiQopta5D1
    こちらの動画の保存を試みていますがID等のミスなのか保存に成功しません。

    m3u8の取得までは成功しているようなのですが。。。
    もしよろしければ教えていただけると幸いです

  20. AIKA より:

    SECRET: 0
    PASS: de477712def49217858da9c0d06623ed
    方法があればいいのですが…
    もしも何か可能な方法があれば教えてください。 🙂