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

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

Sponsored Link

注意

  • 全て自己責任でお願いします。どこかから怒られても責任は取れません。
  • 細心の注意は払っていますが、だいぶ前に書いた記事を継ぎ足しながら更新しているので、一部古かったり不正確な情報が含まれていることがあるかもしれません。
  • AbemaTV は最近 ABEMA に名前が変わりましたが、この記事では旧来の AbemaTV の名称で統一します。
  • 私は AbemaTV のプレミアム会員ではないのですが、今のところプレミアム会員(Abemaプレミアム)のみ閲覧できる動画はダウンロードできません。
    • Streamlink 側の AbemaTV プラグインにログイン処理がなさそうなので Python 書ける人は適宜改造してください…
  • 一応「 AbemaTV の規約違反」であって(どっかにうpしない限りは)「違法」ではありません。
    • その辺りは YouTube やニコニコも全て同じです。
    • 少なくとも、「公式からはあまり快く思われない行為である」ということは心得ておいてください。
  • 私は技術的保護手段の解除には当たらないと判断していますが、グレーではあるので怖い方は今のうちにやめておきましょう…
    • 法の専門家ではないのでネットに強い弁護士にでも聞いてください…
  • 綺麗な画質で直接録画・ダウンロードしたい方向けの内容です。画面(スクリーン)録画だけで満足している方には面倒なだけだと思います。
  • 比較的作業が難しい箇所があるため、PC 中級者以上の方向けの内容になっています。
    • (読めば分かると思いますが)スマホからはこの方法は使えません。
    • Android であれば Termux で Python 入れて pip install streamlink すれば streamlink 本体は使えるようになりそう…?(未検証・どちらにせよ中級者以上向け)
  • 今後対策され、この方法が使えなくなる可能性もあります。あらかじめ留意した上で行ってください。
    • 後述しますが、DRM が掛けられている一部の番組ではこの方法でのダウンロードは不可能です。素直に諦めましょう…
    • また、DRM が掛かっていなくてもダウンロードできない番組もあるようです(未検証)。

前提用語

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

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

必要なソフトの導入

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

Abema-DL.bat の初期設定では FFmpeg が C:\Applications 以下に配置されている事が前提になっています。
もし別の場所にインストールした場合は適宜読み替えて実行してください(後述)。

Streamlink

GitHub より、一番上にある最新バージョンの streamlink-(バージョン番号).exe をダウンロードします。

執筆時点のバージョンは v1.2.0 ですが、できるだけ最新版をダウンロードしてください。
ダウンロードが終わったらダブルクリックで実行し、インストールします。

デフォルトでは C:\Program Files(x86)\Streamlink にインストールされるようになっていますが、C:\Applications\Streamlink のように変更しておくことをお勧めします。

FFmpeg

Windows 版の ffmpeg のビルドを配布していることで著名だった Zeranoe ですが、2020/09/18 をもって閉鎖されてしまいました。代替のサイト もあるのですが少しわかりにくいため、この記事では今のところ Zeranoe のアーカイブ(魚拓)から DL するよう紹介しています。
魚拓のため、サイトの読み込みとダウンロードは重いです…
Version がなかなか切り替わらなかったりすることもありますが、しばらく待てば切り替わります。

こちら(Wayback Machine・Zeranoe の最終アーカイブ) からダウンロードします。

  • Version … 安定版を選択(執筆時点では 4.3.1・日付-ハッシュ値 の形のリリースは開発版です)
  • Architecture … それぞれの OS に合ったものを選択(基本的に Windows 64bit で OK)
  • Linking … Static を選択
  • License … GPL 3.0 を選択

すべて設定できたら Download Build ボタンをクリックし、ダウンロードします。

Wayback Machine 上の FFmpeg 4.3.1(Zeranoe で公開されていた最終バージョン)の直リンクは 32bit: ffmpeg-4.3.1-win32-static.zip64bit: ffmpeg-4.3.1-win64-static.zip です。
バージョンにこだわりがないのであれば直リンクからの方が早いと思います。
導入が面倒な方は Streamlink 自体に FFmpeg が同梱されているので、それを使っても構いません。
Streamlink を C:\Applications にインストールした場合は C:\Applications\Streamlink\ffmpeg\ffmpeg.exe にあります。
Streamlink 同梱の FFmpeg を使う場合は、Abema-DL.bat の設定で ffmpeg.exe のあるパスを変更してください(後述)。

ダウンロード(60MB くらいあります)できたら解凍し、C:\Applications\ffmpeg など任意のフォルダに配置します。
C:\Applications\ffmpeg\binffmpeg.exeffprobe.exeffplay.exe があれば OKです。

解凍後はフォルダ名が長くなっているので、「ffmpeg」にリネームしておいてください。
C:\Program Files 以下にファイルを配置すると、正しく動作しない場合があるためおすすめしません。

Abema-DL.bat

こちら から私が作成したバッチファイルをダウンロードできます(使う方のみ・コマンドを打つ方が楽な方は導入する必要はありません)。
ダウンロードできたら適当にデスクトップにでも配置してください。

ダウンロード後、右クリック → [編集] をクリックするとメモ帳が開きソースを編集できる状態になるので、上の方の設定箇所( ffmpeg.exe のあるパス)の部分を自分の環境に合わせて変更してください。
C:\Applications 以下に FFmpeg を配置している場合は変更の必要はありません。

後述のシステム環境変数の設定で FFmpeg へのパスを追加している場合は、単に set ffmpeg_path=ffmpeg.exe と指定するだけでも OK です。
.bat ファイルは見慣れないかもしれませんが、exe ファイル同様にダブルクリックで実行できます。
セキュリティ警告が出る場合がありますが、ウイルスではありません(不安であれば実行しないようにしてください)

環境変数の設定

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

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

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

Sponsored Link

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

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

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 を使用する方法(比較的簡単)

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

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

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

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

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

最後に動画の保存先を訊かれるので、動画の保存先を入力します。
エクスプローラーのフォルダをドロップするとそのフォルダのパスが入力されます。

指定されたフォルダが存在しない場合、自動で作成します。
また、ファイルパスに半角スペースが含まれている場合、まれにうまく動作しない事があります。

Enter キーを押すと 「ダウンロードを開始します」と表示されるので、再度 Enter キーを押すとダウンロードと MP4 形式への変換が自動で開始されます。
ファイルサイズが大きいだけあり、回線速度にもよりますがダウンロードにはそこそこの時間がかかります。お茶でも飲んで待ちましょう。

「ダウンロードに失敗しました…」と出ていなければ正常に録画・ダウンロードできているはずです。
ダウンロードできているか確認してみましょう。お疲れ様でした。

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

上級者(コマンド操作に慣れてる人)向けの内容です。コマンドの方が楽な方以外はおすすめしません。
また、Streamlink と FFmpeg にパスが通っていることが前提です。

コマンドプロンプト(もしくは PowerShell)を開きます。

Streamlink "(AbemaTV のチャンネル・動画の URL)" "(画質:best・1080p・720p・480p・360p・240p・180pの中から選択)"  -o "(出力先のフォルダ)\(ファイル名).ts"

のように入力・実行し、動画をダウンロードします。

このままだと MPEG2-TS 形式のままなので、

ffmpeg -i "(出力先のフォルダ)\(ファイル名).ts" -c copy "(出力先のフォルダ)\(ファイル名).mp4"

のように実行し、FFmpeg を使って MP4 形式に無劣化変換します。

ここでは無劣化変換していますが、ファイルサイズが気になる方は -c copy を外し、

ffmpeg -i "(出力先のフォルダ)\(ファイル名).ts" -vcodec libx264 -crf (ビットレート(固定品質)・22~25あたりを推奨) -acodec aac -ab 192k "(出力先のフォルダ)\(ファイル名).mp4"

のようにしてください。

ビットレートを低くするほど画質が落ちファイルサイズが小さくなりますが、上げすぎるとファイルサイズが増えるだけで元動画より綺麗にはなりません。注意してください。

変換が終われば指定のフォルダに MP4 ファイルが作成されているはずです。お疲れ様でした。

Sponsored Link

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

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

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

ダウンロードしたはずの動画が上の画像のようになっている場合は、DRM が掛かっているため AbemaTV からはダウンロードする事ができません。
素直に諦めましょう(ダウンロードしても動画ファイル自体が DRM により暗号化されており復号できず、仮に復号できても法に抵触する)。

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 では暗号鍵の生成に若干工夫を加えている(m3u8 に暗号鍵への URL が直接書かれていない)ため、m3u8 の URL を指定しただけではダウンロードできません。

DRM と AES-128 暗号化の違いは復号鍵が隠されているか、公開されているかの違いです
DRM は暗号化された動画ファイルを復号して見れるようにするための鍵(復号鍵)、もしくはネットから DL してきた「暗号化された復号鍵」を復号して復号鍵として使えるようにするための鍵がブラウザなどの再生クライアント側に巧妙に隠されている(当然復号鍵や復号アルゴリズムは非公開)ため、技術的にも DRM の解除は困難を極め、またすぐに対策されてしまうので難易度が極めて高いです(加えて前述のように法に抵触する)
一方、AES-128 暗号化は動画ファイルを暗号化している「だけ」で復号鍵はネット上にそのまま公開されている(ほとんどの場合 m3u8 ファイルの中に復号鍵の URL が記載されている)ため、ffmpeg などのツールを使えば簡単に復号できます
ニコニコ動画や AbemaTV のように鍵の管理や生成に工夫を加え ffmpeg に m3u8 の URL を指定しただけではダウンロードできなくなっているサイトもいくつかありますが、ブラウザで DRM を使わずに復号し動画を再生できている以上、ブラウザ上の再生処理をエミュレートすれば動画を復号した上でダウンロードできると言えます(このエミュレートを Python で自動化したものが youtube-dl や Streamlink)

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

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

余談

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

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

HLS + AES-128 暗号化が行われている公式動画は、私が改造した youtube-dl を使うことでダウンロードできます(本家にプルリクしたけど Merge してくれない…・ついでに TVer もダウンロードできるようにした)
インストール・利用方法はここでは説明しません。わかる方のみ使ってください。
一応 exe 化したものを配布しているので、それを使えば比較的簡単に利用できるとは思います。

youtube-dl 本家が RIAA からDMCA テイクダウンされ私のフォークも凍結されてしまったので、解除されるまで暫定的に独自リポジトリにおいています

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

Sponsored Link
Sponsored Link
Media・Encode
tsukumiをフォローする
Sponsored Link
つくみ島だより

コメント

  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 のかかっているものはダウンロードできない)のでそれかもしれません。

  6. Abea-DL.bat(v2.1)を実行すると、エラーが出てDLできませんでした。
    導入したStreamlinkは1.4.1、ffmpegは4.2.3です。
    エラー文は、
    「’Streamlink’は内部コマンドまたは外部コマンド、操作可能なプログラムまたはバッチファイルとして認識されていません」
    「ダウンロードに失敗しました…エラーコード:”9009″」
    です。
    なお、環境変数にStreamlinkとffmpegを登録し、コマンドプロンプトより直接呼び出しを行ってDLをしたところ、
    Streamlinkを利用してDLでき、ffmpegを利用して変換できましたので、2つは正常に導入できていると思われます。
    教示されたとおり、C:\ApplicationsにStreamlinkとffmpegをDLしてあります。
    何か解決法はありますでしょうか。

    • もしかして、Abema-DL.bat を実行した際の環境変数に Streamlink が登録されていなかったとかではないでしょうか…?
      「’Streamlink’は内部コマンドまたは外部コマンド、操作可能なプログラムまたはバッチファイルとして認識されていません」のエラーが出ているということは streamlink.exe がどこにあるか見つけられていないので、
      最悪バッチファイル内の Streamlink “%URL%” “%quality%” -o “%folder%%out%.ts” の部分を
      C:\Applications\Streamlink\bin\streamlink.exe “%URL%” “%quality%” -o “%folder%%out%.ts” のように変更して、
      フルパスで streamlink.exe を指定してあげれば動くはずです。

      • ありがとうございます。
        自分で環境変数にStreamlinkとffmpegを登録しようとした際、C:\ApplicationsのパスでStreamlinkは登録されていたんですよね。
        (exeでインストールした際に登録された?)
        自分で登録したのは、ffmpegのみでした。

        「’Streamlink’は内部コマンドまたは外部コマンド、操作可能なプログラムまたはバッチファイルとして認識されていません」
        のエラーは、見つけられないときに出てくるエラーなんですね。
        (当方バッチファイルに詳しくなく…)
        ご指示通り、バッチファイル内のStreamlinkのところでフルパスを指定したところ、エラーも出ずに正常に動くようになりました。
        大変ありがとうございます。

        これについて何かわかりましたら、情報提供としてコメントさせていただくかもしれません。
        今後ともよろしくおねがいします

  7. たいへん重宝しております。感謝感謝

  8. streamlink、ffmpegともに最新のものをダウンロードしました。
    ダウンロードが終わってから、「指定したパスが見つかりません」と出るため保存できません。
    いろんなフォルダ、ほかの動画でも試してみたのですがどれも同じでした。
    パスはあっているはずなのですが…。
    解決策など何かご存知でしたらご教示頂けたら幸いです。

    • >>「指定したパスが見つかりません」と出るため保存できません
      streamlink.exe と ffmpeg.exe のパスがシステム環境変数に登録されていないことが考えられます。
      システム環境変数に登録されているか、コマンドプロンプト上で streamlink や ffmpeg と入力して何かメッセージが返ってくるかを確認してください。
      最悪、バッチファイル内の streamlink や ffmpeg をフルパスで指定すれば動くと思います。

      • 【追記】ffmpeg はシステム環境変数に追加する手間を避けるため、バッチファイル内の変数でファイルパスを定義しています。
        このため、デフォルトで設定されている C:¥Applications¥ffmpeg¥bin¥ffmpeg.exe に ffmpeg.exe がない場合は実行ファイルを見つけられません。
        バッチファイル内の ffmpeg のパスを設定し直せばいけるはずです(言葉足らずですみません…)

        • 詳しい解説ありがとうございます。自分も同様の現象でダウンロードできません。「C:¥Applications¥」とはどこの部分でしょうか?入れてもエラーになります。例えば、デスクトップだと「C:\Users\ユーザー名\Desktop」となると思いますが、「エクスプローラーのオプション→隠しファイル、隠しフォルダおよび隠しドライブを表示する」をチェックしても出てきません。お手すきの時に教えて頂けるとありがたいです。

          • あー…
            C:\Applications は私の環境で独自に作成しているフォルダです。C:\Program Files 以下に置くと何かと不具合が出ることがあるため、新しく C:\ 直下に Applications フォルダを作成し、そこに各種ソフトを配置することをおすすめしています。

      • IT版はよく知らないのに誹謗中傷や教えてクレクレおじさん、文句ばかり言う人が多いなか、本当に親切に教えて頂いてありがとうございます。無事ダウンロードできました。
        お忙しい中、無料で、このようなソフトの配布と教えて頂き感謝してます。

        ちなみに、「エラーコード:9009」はほかのところでご指摘のように「Streamlink」周りを設定していないからだと思います。

        アベマでニュースソースを保存するために必要で本当に助かりました。ありがとうございます

        • いえいえ… お役に立てたようで幸いです。
          元々自分用のメモ書きだったのですが、いつのまにか検索で上位に来てしまったようで…
          DRM 化されてる動画も含め、一部 DL できない動画もあるようですが、ほとんどの動画はこの方法でダウンロードできるんじゃないかと思います。

  9. 「指定されたパスが見つかりません」と出るため保存できません。

    [cli][info] Found matching plugin abematv for URL https://abema.tv/video/episode/90-63hxm8u6w4rp_s0_p1308
    [cli][info] Available streams: 180p (worst), 240p, 360p, 480p, 720p, 1080p (best)
    [cli][info] Opening stream: 1080p (hls)
    [download][Abema.ts] Written 3.43 GB (13m4s @ 4.4 MB/s)
    [cli][info] Stream ended
    [cli][info] Closing currently open stream…
    指定されたパスが見つかりません。

    環境変数編集でstreamlink、 ffmpegともにパス指定いたしました。
    ダウンロード中はデスクトップ上に保存ファイルが現れますが失敗後は消えてしまいます。

    お力添えお願いいたします。

    • fmpeg はシステム環境変数に追加する手間を避けるため、バッチファイル内の変数でファイルパスを定義しています。
      このため、デフォルトで設定されている C:¥Applications¥ffmpeg¥bin¥ffmpeg.exe に ffmpeg.exe がない場合は ffmpeg コマンドを見つけられず、上記のエラーが発生するものと思われます。
      C:¥Applications¥ffmpeg¥bin 以下に ffmpeg.exe を配置するか、バッチファイル内の ffmpeg のパス設定を変更すればダウンロードできるはずです(記事が言葉足らずですみません…)
      最悪、バッチファイル内にある TSdelete の設定を 1 → 0 に変更すると ダウンロードした元の .ts ファイルを削除しなくなるので、折角 DL したのにファイルが消える、という事態は避けられるはずです。

  10. はじめまして。いつも役立つ情報をありがとうございます。「Abema-DL.bat」の方は無事に実行できたのですがtsukumiさんが改良された「youtube-dl」も使用したいと思いダウンロードしたところ普通の「youtube-dl」にはあるはずの「youtube-dl.exe」(実行ファイル)がなかったのでうまく実行することができませんでした。自分でもいろいろ調べたのですがどうにも技術が足りないのかよく分からない状況です。どうかご教授いただけないでしょうか?

    • youtube-dl は元々 Python で開発されているソフトで、youtube-dl.exe はそれを exe 化したものになります。
      Python はインタプリタ型言語のため、exe 化しなくても実行することができます。ただし、pip のパッケージからインストールしたものではないため(bin/youtube-dl は import youtube_dl するときにパッケージでインストールされている方の youtube-dl を読み込んでしまう)、
      実行する場合は確か youtube_dl/__main__.py を直接 python youtube_dl/__main__.py のように指定する必要があったと思います。
      このあたりは Python に触れていないと難しいかもしれません。自力で exe 化することも可能だとは思いますが、やり方を知らないのでなんともいえないです… すみません…
      私は pip でパッケージ管理された youtube-dl に改良した部分を上書きして使っています(荒業ではある)。

      • 返信ありがとうございます!
        早速Pythonをインストールしました。ですが先程のtsukumiさんメッセージでよくわからない部分があったので確認のためいくつか質問をさせてください。まずtsukumiさんの言う「youtube_dl/__main__.py」というのは「youtube_dl」というファイルの中の「__main__.py」のことを指しているのでしょうか?

        それからtsukumiさんが言ったように「python youtube_dl/__main__.py」という風にファイルを指定し直したあとは普通のyoutube-dlのようにその指定し直したファイルを「ffmpeg.exe」と同じフォルダーに入れれば改良されたyoutube-dlを使用することができるということでいいのでしょうか??

        知識が足らず誠に申し訳ないのですがどうかご教授いただきたいです。よろしくおねがいいたします。

        • >>「youtube_dl」というファイルの中の「__main__.py」のことを指しているのでしょうか?
          そうです。 python __main__.py で実行できるはずです。

          …説明するのが面倒になってきたので、py2exe で exe 化したものを配布しておきます(なぜか SSL 関係の DLL を bundle してくれなくて本家のように1ファイルにできなかったのが悔やまれる)。
          Zip ファイルを解凍して適当なフォルダに配置、必要ならシステム環境設定で Path を登録するだけです。多分動くと思います(自分の環境以外検証してないけど)。
          exe 化の方法ですが、予め Python 3.7 をインストールした上で、https://note.com/noelrecords/n/n0dc600acf1c0 を参考に Python 3.7 対応の py2exe をインストールし、youtube-dl フォルダ内で python setup.py py2exe を実行すると作成できました。参考までに…
          https://github.com/tsukumijima/youtube-dl/releases

          • 連絡が遅くなり申し訳ありません。tsukumiさんのおかげでniconico動画からも動画をダウンロードすることができるようになりました。この度は本当にありがとうございました。たださすがに公式チャンネル(アニメなど)の動画は無料・有料にかかわらずダウンロードできないんですね。

          • できないってことはないと思いますが…
            私のフォークは主に KADOKAWA 系の暗号化されている公式動画を DL できるようにしたものなので…
            有料動画は試していませんが、youtube-dl のログインオプションを指定してみたらいけそうな気もします

  11. はじめまして。
    Fatal error in launcher: Unable to create process using ‘”C:\Applications\Python\python.exe” “C:\Applications\Streamlink\bin\streamlink.exe
    エラーコード:”1″と出てアベマからダウンロードできません。
    恐らく、URL周りが仕様変更されたと思います。

    • 少なくともエラーからして Streamlink を立ち上げる以前の問題ですね… Python を複数入れている場合にそうなることがあるようです。
      https://qiita.com/Hibikine_Kage/items/3feffdf467c6ac5bd43b あたりを参考に PATH を整理したりしてみてください。

      • とりあえず一旦、ffmpeg、Streamlinkを最新にしてから整理していたら何とか動くようになりました。お騒がせしましたw
        あと、上のffmpegのリンク先閉鎖した様です
        7z必要ですが私はhttps://www.gyan.dev/ffmpeg/builds/から落としました

        • Zeranoe 閉鎖しちゃったんですよね…
          Wayback Machine にアーカイブが残っているので、しばらくはそれのリンクを貼っておこうかと思います(一応代替はできたものの、正直 Zeranoe のときよりわかりにくくなっているのが)

  12. 初めまして。

    スクリプト等に全然詳しくなくて申し訳ないのですが、エラーコード9009というのが出るのはDL無理という意味なのでしょうか?
    途中まではできていると思うのですが最後の最後でできない状況です。

    • バッチファイル上の %errorlevel% に 9009 が入る場合は、コマンドを見つけられないので実行できないといった場合が多いようです。
      途中まではうまく行っている、というと streamlink は実行できているような気がします。ffmpeg のパスの設定が間違っているのだと思うので、バッチファイル内の ffmpeg.exe のパスを確認してください。
      最悪、バッチファイル内の「TSを削除する」を 0 に設定すると ffmpeg での無劣化変換に失敗してもファイル自体は残るので、ダウンロードはうまくできたのに ffmpeg が実行できないせいで折角ダウンロードできたファイルが消えてしまう、という事態は避けられます。

  13. 参考にさせてもらいました。ありがとうございます。方法は違いますがandroidのABEMAアプリをroot化したNoxPlayerにいれてそれでダウンロードした動画の場所は特定しました。ただしexoというファイルになっておりまた一つ一つが分割されているようです。なかなかむずかしいですね。まあたぶんネットの配信みたいにtsファイルのようにたくさん分けているんだと思います。

    • そうなんですかー
      やってみるとしたらとりあえず PC にファイル持ってきて ffmpeg に食わせてみるとかでしょうかねー
      ffmpeg に食わせてみてエラーが出たら暗号化されてるか DRM が掛かってるとかな気がします。

  14. 動画全体ではなく、一部を時間指定してダウンロードすることはできますか?可能であれば、その方法を詳しく紹介してもらえるとありがたいです。

    • 動画の一部を時間を指定して切り取ることはストリーミングの仕組みからして難しいです。
      ただし、ダウンロード後に時間を指定してカットすることは可能です。コマンドラインで行う方法であれば ffmpeg などが利用できますし、LosslessCut といった無劣化でカットできるソフトもあります。
      ffmpeg で動画を切り取る方法に関しては nico-lab さんの こちら の記事が参考になります。

  15. Abema-DL.batをメモ帳などのテキストエディタで開いて、
    4行目(空行も含めると6行目)の
    set ffmpeg_path=C:\Applications\ffmpeg\bin\ffmpeg.exe
    を書き換えれば上手く行くと思います。

    同梱のffmpegでもmp4動画は作れるので、Streamlinkのインストール先を書かれてはどうでしょうか?

    例えば、
    set ffmpeg_path=C:\Applications\Streamlink\ffmpeg\ffmpeg.exe
    とか
    set ffmpeg_path=C:\Program Files(x86)\Streamlink\ffmpeg\ffmpeg.exe
    と書き換えれば大丈夫だと思いますよ。

  16. 早めに返信をいただきありがとうございます。ストリーミングの仕組みのことはよく知りませんが、難しいようなので、無劣化で切り取りが簡単な解決策のようですね。また質問があればよろしくお願いいたします。

  17. 素晴らしい仕組みをありがとうございます!
    コマンドで確認しながら実行しましたが、batで一発変換とか捗りすぎて大感謝です!

    • いえいえ、適当に作ったバッチですが好評いただいてるようで何よりです(?)

  18. >私が改造した youtube-dl を使うことでダウンロードできます(本家にプルリクしたけど Merge してくれな>い…・ついでに TVer もダウンロードできるようにした)
    >インストール・利用方法はここでは説明しません。わかる方のみ使ってください。
    >一応 exe 化したものを配布しているので、それを使えば比較的簡単に利用できるとは思います。

    この、exe、エラーがでます。

    C:\Users\salerno\Downloads\tmp\youtube-dl-2020.11.01.1-fork2\youtube-dl>youtube-
    dl.exe https://tver.jp/corner/f0060730
    [TVer] f0060730: Downloading webpage
    [TVer] ref:6207564999001: Downloading webpage
    [TVer] ref:6207564999001: Downloading JSON metadata
    ERROR: Unable to download JSON metadata: HTTP Error 404: Not Found (caused by ); please report this issue on https://yt-dl.org/bug .
    Make sure you are using the latest version; type youtube-dl -U to update. Be
    sure to call youtube-dl with the –verbose flag and include its complete output.

    C:\Users\salerno\Downloads\tmp\youtube-dl-2020.11.01.1-fork2\youtube-dl>

    所望のhtmlが、取得できていない模様。
    アンケートなどの、ポップアップ?クロームの64bitじゃだめとか?

    よろしくおねがいします。

    • 確認したところ、TVer が内部で利用している Brightcove のプレイヤー ID の仕様がなぜか動画によってまちまちらしく、プレイヤー ID の前に ‘ref:’ という接頭辞がつく動画とそうでない動画が混在しており、このうち ‘ref:’ がつかない動画でダウンロードに失敗していました。両方の動画を想定し、404 エラーが返ってきたときにプレイヤー ID から ‘ref:’ を外すように変更することで解決しました。
      修正したバージョンをリリースしましたので、更新していただければと思います。報告ありがとうございました。
      https://github.com/tsukumijima/yt-dl/releases

  19. はじめまして。
    実行時のエラーについて、解決方法をご教示お願い致します。

    ========================================================
    [cli][info] Found matching plugin abematv for URL https://abema.tv/channels/payperview-1/slots/AakjKLgTGb6msu
    error: Unable to open URL: https://api.abema.io/v1/media/slots/AakjKLgTGb6msu (404 Client Error: Not Found for url: https://api.abema.io/v1/media/slots/AakjKLgTGb6msu)
    ========================================================
    ダウンロードに失敗しました… エラーコード:”1″
    URLが正しいかどうか、正しく入力されているかどうか、確認してください。
    ========================================================

    • 既に視聴期限が切れているためなんともいえませんが、URL に payperview とあることから課金型の番組と思われます。
      今のところ abematv.py には Abemaプレミアムやその他課金・ログインが必要な番組をダウンロードする機能はありません。

  20. 情報報告です
    現在(2020/11/26)でもつかえます。
    またあんていしております。

    • 報告ありがどうございます!