AbemaTVをStreamlinkで直接録画・ダウンロードする

毎回忘れてしまうので備忘録がてらメモ…

注意

  • 全て自己責任でお願いします。どこかから怒られても責任は取れません。
  • 私は AbemaTV のプレミアム会員ではないのですが、今の所プレミアム会員(Abemaプレミアム)のみ閲覧できる動画はダウンロードできません。(Streamlink 側の AbemaTV プラグインにログイン処理がなさそうなので Python 書ける人は適宜改造してください)
  • 一応「 AbemaTV の規約違反」であって(どっかにうpしない限りは)「違法」ではありません(その辺りは YouTube やニコニコも全て同じです)。
  • 私は技術的保護手段の解除には当たらないと判断していますが、割とグレーではあるので怖い方は今のうちにやめておきましょう(確かめようがない所ではあります・法の専門家ではないのでネットに強い弁護士にでも聞いてください)
  • 綺麗な画質で直接録画・ダウンロードしたい方向けの内容です。画面(スクリーン)録画だけで満足している方には面倒なだけだと思います。
  • 比較的作業が難しい箇所があるため、PC中級者以上の方向けの内容になっています。
  • 今後対策され、この方法が使えなくなる可能性もあります。あらかじめ留意の上行ってください。

前提用語

  • Streamlink … コマンドプロンプト上で実行する、AbemaTVを録画(ダウンロード)するのに必要なCLIソフト(Python製)
    • AbemaTVの他にも、YouTube Live・Ustream・Vimeo・Twitch・facebook など、色々なサイトの録画・ダウンロードに対応しているらしいです
    • youtube-dlと機能が被っていたりもします(youtube-dlもライブ動画を一応ダウンロード可能ですが、AbemaTV には対応していません)
  • ffmpeg … コマンドプロンプト上で実行する、万能なCLIメディア変換ソフト
    • 機能面で言えば有料ソフトと大差ないくらいの事が出来る変換ソフトです
    • 世の中に存在するほぼ全てのメディア形式を相互に変換できます
    • コマンドプロンプトから実行するCLIソフトのため、ffmpeg.exe 自体をクリックしても何も起きません(念のため)
  • Abema-DL.bat … 私が作成したダウンロードをURL・画質・保存先を入力するだけで比較的簡単にできるようにするバッチファイルの事
    • ダブルクリックで実行できます(デスクトップにでも配置してください)
    • バッチファイルの中身は右クリックからメモ帳などで編集できるので、環境に合わせて適宜書き換えてください
  • 生録画 … AbemaTVの個々のチャンネルで流されている生の放送の事
    • どうやらCMに入るタイミングで映像が破損するようなので、録画はあまりおすすめしません(CMを手動で回避すればできる可能性もあります)
    • 基本的には1週間程度アーカイブが残るので私はほとんどやったことがありません
  • タイムシフト動画 … AbemaTVの個々に放映されていた番組のアーカイブの事
    • 前述の ffmpeg にて無劣化変換を行うことで正常に再生出来るようになります
  • ビデオ化された動画 … AbemaTVで放送された後、AbemaTVビデオとしてアーカイブされる動画の事
    • いまいちタイムシフト動画との違いがよく分かっていないのですが、こちらも ffmpeg で無劣化変換することで正常に再生出来るようになります
  • .tsファイル … MPEG2-TS 形式の動画ファイルの事
    • AbemaTV の動画は全て MPEG2-TS 形式で保存されます
    • ちなみに、テレビ放送も MPEG2-TS 形式で制作されています
    • MPEG2-TS 形式は一般的ではない上うまく再生できない場合があるため、前述のように ffmpeg にて無劣化変換を行い MP4 に変換しておく事を推奨します
  • .mp4ファイル … みんな大好き MP4 形式の動画ファイルの事
    • 無劣化変換すると出来る動画ファイルです
    • 多くのプレイヤーで再生する事ができます
  • 無劣化変換 … 動画ファイルの中に入っている動画データや音声データをまるごと別のコンテナにコピーする事
    • 動画ファイルはコンテナになっていて、中には動画データと音声データが入っています
    • そのため、画質が一切劣化しない他、コンテナを移し替えるだけのため変換処理は一瞬で終わります
    • AbemaTVの MPEG2-TS 形式の場合、主に動画が H.264 形式、音声が AAC 形式で入っているので、その中身はそのままにMP4形式のコンテナに移し替えるイメージです
    • 無劣化な分ファイルサイズが100MBを超えます、ファイルサイズを削減したい方は普通に ffmpeg で変換した方がいいかもしれません(ただし、ファイルサイズと画質はトレードオフです)

長くなりましたが、サラッと理解できれば大丈夫だと思います。
(上記の内容が微塵も理解できない場合、やめておいた方が良いと思います…)

必要なソフトの導入

この記事では、Streamlinkは C:\Applications\Streamlink\・ffmpegは C:\Applications\ffmpeg\ に置いてあることを前提としています。

C:\Program Files\ 以下は特殊な権限が設定されているため、配置はおすすめしません。

Abema-DL.batのデフォルト設定は C:\Applications\ 以下になっています。
もし別の場所にインストールした場合は適宜読み替えてください。

  • StreamlinkGitHub より、一番上にある最新バージョンの streamlink-1.2.0.exe をダウンロードします。
    • 執筆時点のバージョンは v1.2.0 ですが、出来るだけ最新版をダウンロードしてください。
    • ダウンロードが終わったらダブルクリックで実行し、インストールします。
    • デフォルトでは C:\Program Files(x86)\Streamlink\ にインストールされるようになっていますが、C:\Applications\Streamlink\ のように変更しておくことをお勧めします。

  • ffmpegこちらから Download Build ボタンをクリックし、ダウンロードします。
    • Version は安定版(執筆時点では 4.2・上は開発版です)・Architecture はそれぞれの OS に合ったものを選択(基本的に Windows 64bit でOK)・Linking は必ず Static を選んでダウンロードしてください。
    • ダウンロード(60MBくらいあります)したら解凍し、C:\Applications\ffmpeg\ など任意のフォルダに配置します。
    • フォルダ名はffmpegにリネームしておいて下さい。
    • C:\Applications\ffmpeg\bin\ に ffmpeg.exe・ffprobe.exe・ffplay.exe があれば OKです。
  • Abema-DL.batこちらから私が作成したバッチファイルをダウンロードできます(使う方のみ・コマンドを打つ方が楽な方は導入する必要はありません)。
    • 適当にデスクトップにでも配置してください。
    • ダウンロード後、右クリック→編集から内部のソースが見れるので、上の方の設定箇所( ffmpeg.exe のあるパス)の部分を自分の環境に合わせて変更して下さい( C:\Applications\ 以下に Streamlink・ffmpeg を配置している場合は変更する必要はありません)。
    • 見慣れないアイコンかもしれませんが、ダブルクリックで実行できます。
    • セキュリティ警告が出る場合がありますが、ウイルスではありません(不安であれば実行しないようにしてください)

環境変数の設定

この作業は、後述の Abema-DL.bat を使用する際には必要ありませんが、出来るだけ設定しておくことをお勧めします。
環境変数の設定は Windows10 と Windows7 では画面が一部異なります。この記事では Windows10 の画面で説明します。

  1. Windows10 の場合、検索窓から「システム環境変数の編集」と入力し、検索結果に出てくるのでダブルクリックします。
  2. [システムのプロパティ] ウインドウが出るので、[環境変数] をクリックします。
  3. [環境変数] ウインドウが出るので、システム環境変数の表の中の Path を選択し [編集] をクリックします。
  4. [環境変数名の編集] ウインドウが出るので、[新規] をクリックします
  5. 入力できるようになるので、ffmpeg.exe・Streamlink.exe のあるフォルダのパスをそれぞれ入力するか、[参照] をクリックし、.exe ファイルのあるフォルダを選択します。
    C:\Applications\ 以下にインストールした場合、それぞれのパスは
    ffmpeg … C:\Applications\ffmpeg\bin
    Streamlink … C:\Applications\Streamlink

    Streamlink はインストール時に既に環境変数が設定されていると思います。
    その場合は ffmpeg のみ設定してください。
  6. 最後に [OK] をクリックし、ウインドウを閉じて保存します。

環境変数の設定は以上です。
この作業を行うと、コマンドプロンプトから「Streamlink」「ffmpeg」と入力するだけで、Streamlink や ffmpeg が実行できるようになります。

録画(ダウンロード)方法

ようやく録画(ダウンロード)に入ります。

AbemaTVは 1080p・720p・480p・360p・240p・180p 全ての画質が用意されているので、画質設定を best にしておけば、基本的に 1080p でダウンロードされます。

ただ、AbemaTVが制作していないアニメなどの番組では、画質設定としては 1080p も含め全て用意されているものの、ソース動画が 720p・480p までしかない場合もあり、
1080p を入力しても実際には 720p の動画がダウンロードされてくる事もあります…
(正常に 1080p をダウンロードしたはずなのに中身が 720p だった、のようなイメージでしょうか)
大人の事情が絡んでいそうなので仕方なさそうです…

番組によっても変わってくるようですが、1080p でダウンロードした場合、物によりますがファイルサイズが 300MB は確実に超えるので、出来れば TB 級の HDD を用意しておいた方が良いと思います。

ストレージ容量を圧迫する分、もし 1080p で配信されていればテレビで放映されている物(1440×1080) よりも綺麗な画素数(1920×1080)でダウンロードできる上(当然局ロゴは入らない)、
一応(無料では1週間の期間限定ですが)公式で配信されているものなので、合法的に 1080p の綺麗なアニメをダウンロードする方法、という意味ではある意味唯一と言えるのかもしれません。

Abema-DL.bat を使用する方法(比較的簡単)

  1. デスクトップにでも配置した Abema-DL.bat をダブルクリックして実行します。

  2. すると上のような黒いウインドウが出てくるので、
    ダウンロードしたい動画・生放送の URL をコピペして貼り付け Enter キーを押します。

    • 右クリックするとコピーした URL を貼り付ける事ができます。
    • 黒画面は怖いイメージがあるかもしれませんが、このバッチを使う場合は出てくる指示通りに入力して Enter キーを押すだけなので、コマンドを打つことはありません。

  3. Enter キーを押すと動画の画質を訊かれるので、best・1080p・720p・480p・360p・240p・180p から選んで入力します。

    • best を入力しておけば基本的に 1080p でダウンロードされます。
    • ファイルサイズが気になる場合、720p・480p 等にしておくとファイルサイズを削減できます(720p だと気にならない場合が多いと思いますが 480p 以下になると画質が荒くなります)

  4. 最後に動画の保存先を訊かれるので、動画の保存先を入力します。

    • エクスプローラーのフォルダをドロップするとそのフォルダのパスが入力されます。
    • ファイルパス中に空白を入れるとエラーになる可能性があります。出来るだけ避けてください。
    • 指定されたフォルダがない場合、自動で作成します。

  5. Enter キーを押すと 「ダウンロードを開始します」と表示されるので、再度 Enter キーを押すとダウンロードとMP4形式への変換が自動で開始されます。

    • ファイルサイズが大きいだけあり、回線速度にもよりますがダウンロードにはそこそこの時間がかかります。お茶でも飲んで待ちましょう。
    • 「ダウンロードに失敗しました…」と出ていなければ正常に録画・ダウンロード出来ているはずです。お疲れ様でした。

直接コマンドラインから実行する方法(上級者向け)

※上級者(コマンド操作に慣れてる人)向けの内容です。コマンドの方が楽な方以外はおすすめしません。

  1. コマンドプロンプトを開きます。
  2. Streamlink “(AbemaTVの動画・チャンネル等のURL)”  “(画質(best・1080p・720p・480p・360p・240p・180pの中から選ぶ))”  -o “出力先のフォルダ\ファイル名.ts” のように入力・実行し、動画をダウンロードします。
  3. このままだと MPEG2-TS のままなので、ffmpeg -i “出力先のフォルダ\ファイル名.ts” -c copy “出力先のフォルダ\ファイル名.mp4″ のようにコマンドラインで実行し、.mp4 形式に無劣化変換します。
    • ここでは無劣化変換していますが、ファイルサイズが気になる方は上記のように -c copy を外し、-vcodec libx264 -vb (変換したい動画のビットレート) -acodec aac -ab 192k として変換してください。
    • ビットレートを低くするほど画質が落ちファイルサイズが小さくなりますが、上げすぎるとファイルサイズが増えるだけで元動画より綺麗にはなりません。注意してください。
  4. 変換が終われば指定のフォルダにファイルが出来ているはずです。お疲れ様でした。

DRM のかかった動画について

ダウンロードできない動画

最近、とある科学の超電磁砲T など、AbemaTV 内でも DRM (デジタル著作権管理) が掛かっている動画が出てきています。

ダウンロードした動画が上の画像のようになっている場合は、DRM が掛かっているため AbemaTV からはダウンロードする事ができません。
素直に諦めましょう(ダウンロードできたとしても法に抵触する)。

AbemaTV の2つの配信形式

技術的な話になりますが、AbemaTV は HLS (HTTP Live Streaming) + AES-128 暗号化 と、MPEG-DASH or HLS + DRM (PlayReady・Widevine・FairPlay) という2種類の規格を併用して運用しているようです。

DRM は Netflix や Amazon Prime などのサービスも採用しているなど守りに関しては鉄壁ですが、一方で DRM による配信にはコストが掛かり、iOS 端末向けの PlayReady という DRM の場合、再生端末ごとに $0.35 (約38円) 掛かるとのこと。
Netflix のように有料課金が前提のサービスなら DRM の使用料を賄えますが、無料配信を行っている AbemaTV のモデルとは相性が悪そうです。
また、テレビや古い端末では DRM に対応していない事が結構あるため、全ての端末で再生できる訳ではありません。

一方、HLS + AES-128 暗号化 はこの記事でダウンロードできているように守りは脆弱ですが、それでも VideoDownloadHelper といったブラウザの拡張機能や、開発者ツールから .ts ファイルを直接ダウンロードしてもダウンロードできない / 再生できないため、( Streamlink のような玄人向けソフトでようやくダウンロードできるあたり)コンテンツ保護には一定の効果があると考えられます。
ゲーム機などでは対応していない事がありますが、それ以外の端末では概ね対応している形式といえます。

このため、AbemaTV では基本は HLS + AES-128 暗号化 を利用し、コンテンツの提供元(超電磁砲Tなら KADOKAWA )からの要望があった場合は DRM を利用するようにしていると考えられます。

DRM が掛かっている動画をダウンロードすると「お使いの端末では再生できないコンテンツです」と表示されるのも、DRM に非対応な環境向けのダミーファイルと考えるのが自然でしょう。

余談

ちなみに、ニコニコ動画の一部の公式配信(製作委員会に KADOKAWA が入っているもの)は最近になって HLS + AES-128 暗号化 で保護されるようになりました( DRM じゃないんだーとか思ったけどニコニコ金ないし多少は)

HLS + AES-128 暗号化が行われている動画は、動画を右クリック →「視聴方法の切り替え (hls > http)」が表示されない事が特徴です。
それより前は(画質悪いとはいえ)ダウンロードし放題だったので、今までがルーズすぎたとも…

HLS + AES-128 暗号化が行われている動画は、私が改造した youtube-dl を使うことでダウンロードできます(本家にプルリクしたけど Merge してくれない…)
インストール・利用方法はここでは説明しません。わかる方のみ使ってください。

AbemaTV では DRM がかかっているコンテンツがニコニコでも配信されている場合は、ニコニコからダウンロードするのもありだとは思います(もっとも「ニコニコチャンネル」の透かし入りですが…)

コメント

  1. いま(2020/01/03)ではできなくなったかもです。
    APIにアクセスするとBadRequestを返してしまうので。

    • まじすか… 確認しておきます…

    • 確認しましたが、少なくともビデオ化された動画であれば Streamlink で正常にダウンロードできることを確認しました。
      宜しくお願いします。

  2. はじめまして、お聞きしてすみません。
    Streamlinkのexeを実行しようとするとセキュリティのエラーが出るのですが、ご紹介のリンク先からのファイルであれば実行して大丈夫でしょうか…?

    ttps://abema.tv/video/title/218-101

    このコンテンツのアーカイブを保存したいと思うのですが対応していますでしょうか…?

    • セキュリティに関しては大丈夫かと思います。
      ただ、記事内でも書いているように、現状、残念ながらプレミアム会員のみ視聴可能な動画(=無料では見れない動画)はダウンロードすることができません…
      ログインしない状態で見れる動画(あと○日間 と表示されているもの)であれば Streamlink でダウンロードできると思います。

      • 無料視聴可能ビデオはDLできないように対策がされました。
        (現在確認できているのは以下のみ)
        今後も増えていくと思われますので回避方法があれば、ご教示下さい。

        ttps://abe ma.tv/video/title/199-30

        ttps://abe ma.tv/video/episode/199-30_s3_p6

        ※DLが約9MBでストップします。
        ※サイトで再生直後に警告メッセージが表示されます。

        • あー…
          どうも超電磁砲だけ DRM (WideVine) が掛かっているらしく、Streamlink で DL しようとすると「お使いのデバイスでは視聴できないコンテンツです」というメッセージが表示された動画が DL されます。
          DLが9MBで終了するのもそのメッセージ動画を DL しているからでしょう。
          再生直後のDVDみたいな警告メッセージはおそらく関係ないと思いますが、製作委員会の方針なのかもしれません。

          残念ながら DRM で保護されているコンテンツは基本的に DL できませんし、DL できたとしてもおそらく法に触れます…
          今後増えていくのか、それとも特定のアニメのみなのかはわかりません。
          ニコニコチャンネルの方は 私が改良した youtube-dl を使うことでダウンロードできることを確認しました(何故か本家が Merge してくれなくてつらみ…)。

          • 確認ありがとうございます。
            DRMが掛かっていたとは思いもよりませんでした・・・・。

            tsukumi さんが改良されたyoutube-dlからexeを作成し、
            「youtube-dl –version」を実行しましたがエラーとなりました。

            <エラー>
            Traceback (most recent call last):
            File “youtube-dl”, line 3, in
            ModuleNotFoundError: No module named ‘youtube_dl’
            [8976] Failed to execute script youtube-dl

            Pythonの知識がないため、ビルドのやり方が
            間違っていると思うので確認させて下さい。

            exe作成には/bin配下のyoutube-dlを以下コマンドで
            ビルドする事で間違いないでしょうか。

            <コマンド>
            pyinstaller youtube-dl –onefile

          • わっかんないですね… Python はあまり詳しくないので…
            No module named ‘youtube_dl’ なので、恐らく youtube-dl 本体が読み込めてない状態だと思います。
            どうにかして youtube-dl 本体のパスを指定できれば exe 化できるかと…

  3. ありがとうございます。
    exe作成はもう少し調べてみます。

    ニコニコチャンネルからのDL確認はどのようにされたのか教えて下さい。

    tsukumiさんが改良されたyoutube-dlを使用するためには
    exeを作成が必要と考えていました。

    • >>ニコニコチャンネルからのDL確認
      どういう意味かよくわかりませんが、期間限定で公開中のアニメの URL を指定してみたらいいんじゃないんでしょうか
      PC に Python の実行環境をいれれば exe 化しなくても実行できるような気がします

  4. 簡単にフルHD画質でDLできて助かりました。
    アーカイブ動画について質問があります。
    プレミアム会員になって、URLを使ったとしても、Streamlink内のabematv.pyの書き換えが必要という意味でしょうか?

    • そういうことになりますね(Python書ける人じゃないと難しいですが)
      書き換え、というより、現状の abematv.py はログインに対応していないので、ログインに対応できるよう改造すればいけるんじゃないですか、程度です
      AbemaTV の会員ではないのでなんとも

  5. Abema-DL.bat を実行すると『エラーコード:9009』と表示され、ダウンロードに失敗してしまいます。
    念のため他の動画でも実行してみたのですが、同様のエラーが表示されてしまいます。
    Streamlinkは1.3.1、ffmpegは4.2.2をインストールしました。
    現在はこのダウンロード方法は利用できないのでしょうか。
    何か解決策がございましたらご教示頂ければ幸いです。

    • 少なくともうちの環境と https://abema.tv/video/episode/54-43_s1_p12 で試してみたところ普通にダウンロードできることを確認しました。
      エラーコード:9009とのことなので、ファイルの読み書き周りのエラーなんだと思いますが…謎…
      AbemaTV では DRM がかかった動画も確認している(DRM のかかっているものはダウンロードできない)のでそれかもしれません。