FRESH by AbemaTV を眺めた

179abd5d6b0564f3c107ab7891532fa9_04821dbfa30ab550496be9622eaf5f13.png

この記事は古い記事です。新しい記事はこちら↓
FRESH by AbemaTV をもう一度眺めた(仕様改変に対応する)
http://nyarudiary.blog.fc2.com/blog-entry-107.html


さて、4月にAbemaTVと統合したFRESH by AbemaTV。
運営元はサイバーエージェントで共通ですが、チャンネルページ等は独自。

そして配信プロトコルはどちらもHLSですが、Abemafreshにセキュリティ保護はありません。
※HLS=HTTP Live Streaming

放送が終了したページには”この番組は生放送限定公開です”という文字列が見られるのですが、
データはサーバーに残っている場合もあるようです。

ふと番組ページを開いておいたらプレイリストが降って来てました。

そんなわけで、メモを残しておきます。

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

また、HLSクライアント側でスムーズな解像度切替を行うため、4つの解像度が定義されています。
※いわゆる「Adaptive bitrate streaming」である。
live.m3u8/archive.m3u8共に、256×144/512×288/768×432/1024×576の四種類。
m3u8ファイルのURLには縦解像度が定義されているので、録画する場合、一番綺麗なのは”576”になります。

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

コレを展開すると、以下のストリーム(解像度別のプレイリストファイル)が得られます。

・配信ストリームの定義|メディアプレイリスト
https://movie.abemafresh.tv/playlist/movie.amebafresh.tv/movie/fresh10360/038/576/live.m3u8
ここに、細切れのtsファイル(メディアセグメント)が定義されています。

有料放送の場合、空のPlaylistが送られて来るようです。

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

・配信ストリームの定義|メディアプレイリスト
https://movie.abemafresh.tv/playlist/movie.amebafresh.tv/movie/fresh18169/008/576/playlist.m3u8


規則性が見えますね。
予測ですが、末尾の”008”や”038”は収容サーバーだと思われます。(020や017、etc…)

保存する場合は、live.m3u8/archive.m3u8から、収容サーバーを特定し、
ffmpeg等にlive.m3u8/playlist.m3u8を投げ込むのが良いかもしれません。
※生放送中に送られてくるセグメントを見ておけば特定の必要はありません。