毎回忘れてしまうので備忘録がてらメモ…
注意
- 全て自己責任でお願いします。どこかから怒られても責任は取れません。
- 細心の注意は払っていますが、だいぶ前に書いた記事を継ぎ足しながら更新しているので、一部古かったり不正確な情報が含まれていることがあるかもしれません。
- AbemaTV は最近 ABEMA に名前が変わりましたが、この記事では旧来の AbemaTV の名称で統一します。
- 私は AbemaTV のプレミアム会員ではないのですが、今のところプレミアム会員(Abemaプレミアム)のみ閲覧できる動画はダウンロードできません。
- Streamlink 側の AbemaTV プラグインにログイン処理がなさそうなので Python 書ける人は適宜改造してください…
- 一応「 AbemaTV の規約違反」であって(どっかにうpしない限りは)「違法」ではありません。
- その辺りは YouTube やニコニコも全て同じです。
- 少なくとも、「公式からはあまり快く思われない行為である」ということは心得ておいてください。
- 私は技術的保護手段の解除には当たらないと判断していますが、グレーではあるので怖い方は今のうちにやめておきましょう…
- 法の専門家ではないのでネットに強い弁護士にでも聞いてください…
- 綺麗な画質で直接録画・ダウンロードしたい方向けの内容です。画面(スクリーン)録画だけで満足している方には面倒なだけだと思います。
- 比較的作業が難しい箇所があるため、PC 中級者以上の方向けの内容になっています。
- (読めば分かると思いますが)スマホからはこの方法は使えません。
- Android であれば Termux で Python 入れて
pip install streamlink
すれば streamlink 本体は使えるようになりそう…?(未検証・どちらにせよ中級者以上向け)- Termux を使い Android から Streamlink でのダウンロードに成功した方から コメントを頂いた ので一応できなくはないようです。ただし、Linux の CLI 操作に慣れている事が前提です。
- 今後対策され、この方法が使えなくなる可能性もあります。あらかじめ留意した上で行ってください。
- 後述しますが、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:ApplicationsStreamlink
・FFmpegは C:Applicationsffmpeg
に置いてあることを前提としています。
Abema-DL.bat の初期設定では FFmpeg が C:Applications
以下に配置されている事が前提になっています。
もし別の場所にインストールした場合は適宜読み替えて実行してください(後述)。
Streamlink
GitHub より、一番上にある最新バージョンの streamlink-(バージョン番号).exe をダウンロードします。
執筆時点のバージョンは v1.2.0 ですが、できるだけ最新版をダウンロードしてください。
ダウンロードが終わったらダブルクリックで実行し、インストールします。
C:Program Files(x86)Streamlink
にインストールされるようになっていますが、C:ApplicationsStreamlink
のように変更しておくことをお勧めします。FFmpeg
Version がなかなか切り替わらなかったりすることもありますが、しばらく待てば切り替わります。
こちら(Wayback Machine・Zeranoe の最終アーカイブ) からダウンロードします。
- Version … 安定版を選択(執筆時点では 4.3.1・
日付-ハッシュ値
の形のリリースは開発版です) - Architecture … それぞれの OS に合ったものを選択(基本的に Windows 64bit で OK)
- Linking … Static を選択
- License … GPL 3.0 を選択
すべて設定できたら Download Build ボタンをクリックし、ダウンロードします。
バージョンにこだわりがないのであれば直リンクからの方が早いと思います。
Streamlink を
C:Applications
にインストールした場合は C:ApplicationsStreamlinkffmpegffmpeg.exe
にあります。Streamlink 同梱の FFmpeg を使う場合は、Abema-DL.bat の設定で
ffmpeg.exe
のあるパスを変更してください(後述)。ダウンロード(60MB くらいあります)できたら解凍し、C:Applicationsffmpeg
など任意のフォルダに配置します。C:Applicationsffmpegbin
に ffmpeg.exe
・ffprobe.exe
・ffplay.exe
があれば OKです。
C:Program Files
以下にファイルを配置すると、正しく動作しない場合があるためおすすめしません。Abema-DL.bat
こちら から私が作成したバッチファイルをダウンロードできます(使う方のみ・コマンドを打つ方が楽な方は導入する必要はありません)。
ダウンロードできたら適当にデスクトップにでも配置してください。
ダウンロード後、右クリック → [編集] をクリックするとメモ帳が開きソースを編集できる状態になるので、上の方の設定箇所( ffmpeg.exe のあるパス)の部分を自分の環境に合わせて変更してください。C:Applications
以下に FFmpeg を配置している場合は変更の必要はありません。
set ffmpeg_path=ffmpeg.exe
と指定するだけでも OK です。セキュリティ警告が出る場合がありますが、ウイルスではありません(不安であれば実行しないようにしてください)
環境変数の設定
この作業は、後述の Abema-DL.bat を使用する際には必要ありませんが、出来るだけ設定しておくことをお勧めします。
環境変数の設定は Windows10 と Windows7 では画面が一部異なります。この記事では Windows10 の画面で説明します。
- Windows10 の場合、検索窓から「システム環境変数の編集」と入力し、検索結果に出てくるのでダブルクリックします。
- [システムのプロパティ] ウインドウが出るので、[環境変数] をクリックします。
- [環境変数] ウインドウが出るので、システム環境変数の表の中の Path を選択し [編集] をクリックします。
- [環境変数名の編集] ウインドウが出るので、[新規] をクリックします。
- 入力できるようになるので、
ffmpeg.exe
・Streamlink.exe
のあるフォルダのパスをそれぞれ入力するか、[参照] をクリックし、.exe ファイルのあるフォルダを選択します。 C:Applications
以下にインストールした場合、それぞれのパスは- FFmpeg …
C:Applicationsffmpegbin
- Streamlink …
C:ApplicationsStreamlinkbin
になります。
- FFmpeg …
- 最後に [OK] をクリックし、ウインドウを閉じて保存します。
すでに Streamlink の環境変数がある場合は FFmpeg のパスのみ登録してください。
環境変数の設定は以上です。
この作業を行うと、コマンドプロンプトから「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 を用意しておくと良いと思います。
(無料では1週間の期間限定ですが)公式で配信されている動画なので、合法的に 1080p の綺麗なアニメをダウンロードする方法、という意味ではある意味唯一と言えるかもしれません。
Abema-DL.bat を使用する方法(比較的簡単)
デスクトップにでも配置した Abema-DL.bat をダブルクリックして実行します。
すると上のような黒いウインドウが出てくるので、ダウンロードしたい動画・生放送の URL をコピー & ペーストして貼り付け、Enter キーを押します。
Enter キーを押すと動画の画質を訊かれるので、best・1080p・720p・480p・360p・240p・180p から選んで入力します。
ファイルサイズが気になる場合、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 ファイルが作成されているはずです。お疲れ様でした。
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 は暗号化された動画ファイルを復号して見れるようにするための鍵(復号鍵)、もしくはネットから 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 化したものを配布しているので、それを使えば比較的簡単に利用できるとは思います。
AbemaTV では DRM がかかっているコンテンツがニコニコでも配信されている場合は、ニコニコからダウンロードするのも一つの手ではあると思います(もっとも「ニコニコチャンネル」の透かし入りですが…)
コメント
いま(2020/01/03)ではできなくなったかもです。
APIにアクセスするとBadRequestを返してしまうので。
まじすか… 確認しておきます…
確認しましたが、少なくともビデオ化された動画であれば Streamlink で正常にダウンロードできることを確認しました。
宜しくお願いします。
はじめまして、お聞きしてすみません。
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 化できるかと…
ありがとうございます。
exe作成はもう少し調べてみます。
ニコニコチャンネルからのDL確認はどのようにされたのか教えて下さい。
tsukumiさんが改良されたyoutube-dlを使用するためには
exeを作成が必要と考えていました。
>>ニコニコチャンネルからのDL確認
どういう意味かよくわかりませんが、期間限定で公開中のアニメの URL を指定してみたらいいんじゃないんでしょうか
PC に Python の実行環境をいれれば exe 化しなくても実行できるような気がします
簡単にフルHD画質でDLできて助かりました。
アーカイブ動画について質問があります。
プレミアム会員になって、URLを使ったとしても、Streamlink内のabematv.pyの書き換えが必要という意味でしょうか?
そういうことになりますね(Python書ける人じゃないと難しいですが)
書き換え、というより、現状の abematv.py はログインに対応していないので、ログインに対応できるよう改造すればいけるんじゃないですか、程度です
AbemaTV の会員ではないのでなんとも
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 のかかっているものはダウンロードできない)のでそれかもしれません。
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のところでフルパスを指定したところ、エラーも出ずに正常に動くようになりました。
大変ありがとうございます。
これについて何かわかりましたら、情報提供としてコメントさせていただくかもしれません。
今後ともよろしくおねがいします
たいへん重宝しております。感謝感謝
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 できない動画もあるようですが、ほとんどの動画はこの方法でダウンロードできるんじゃないかと思います。
「指定されたパスが見つかりません」と出るため保存できません。
[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 したのにファイルが消える、という事態は避けられるはずです。
はじめまして。いつも役立つ情報をありがとうございます。「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 のログインオプションを指定してみたらいけそうな気もします
はじめまして。
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 のときよりわかりにくくなっているのが)
初めまして。
スクリプト等に全然詳しくなくて申し訳ないのですが、エラーコード9009というのが出るのはDL無理という意味なのでしょうか?
途中まではできていると思うのですが最後の最後でできない状況です。
バッチファイル上の %errorlevel% に 9009 が入る場合は、コマンドを見つけられないので実行できないといった場合が多いようです。
途中まではうまく行っている、というと streamlink は実行できているような気がします。ffmpeg のパスの設定が間違っているのだと思うので、バッチファイル内の ffmpeg.exe のパスを確認してください。
最悪、バッチファイル内の「TSを削除する」を 0 に設定すると ffmpeg での無劣化変換に失敗してもファイル自体は残るので、ダウンロードはうまくできたのに ffmpeg が実行できないせいで折角ダウンロードできたファイルが消えてしまう、という事態は避けられます。
参考にさせてもらいました。ありがとうございます。方法は違いますがandroidのABEMAアプリをroot化したNoxPlayerにいれてそれでダウンロードした動画の場所は特定しました。ただしexoというファイルになっておりまた一つ一つが分割されているようです。なかなかむずかしいですね。まあたぶんネットの配信みたいにtsファイルのようにたくさん分けているんだと思います。
そうなんですかー
やってみるとしたらとりあえず PC にファイル持ってきて ffmpeg に食わせてみるとかでしょうかねー
ffmpeg に食わせてみてエラーが出たら暗号化されてるか DRM が掛かってるとかな気がします。
動画全体ではなく、一部を時間指定してダウンロードすることはできますか?可能であれば、その方法を詳しく紹介してもらえるとありがたいです。
動画の一部を時間を指定して切り取ることはストリーミングの仕組みからして難しいです。
ただし、ダウンロード後に時間を指定してカットすることは可能です。コマンドラインで行う方法であれば ffmpeg などが利用できますし、LosslessCut といった無劣化でカットできるソフトもあります。
ffmpeg で動画を切り取る方法に関しては nico-lab さんの こちら の記事が参考になります。
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
と書き換えれば大丈夫だと思いますよ。
早めに返信をいただきありがとうございます。ストリーミングの仕組みのことはよく知りませんが、難しいようなので、無劣化で切り取りが簡単な解決策のようですね。また質問があればよろしくお願いいたします。
素晴らしい仕組みをありがとうございます!
コマンドで確認しながら実行しましたが、batで一発変換とか捗りすぎて大感謝です!
いえいえ、適当に作ったバッチですが好評いただいてるようで何よりです(?)
>私が改造した 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
はじめまして。
実行時のエラーについて、解決方法をご教示お願い致します。
========================================================
[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プレミアムやその他課金・ログインが必要な番組をダウンロードする機能はありません。
情報報告です
現在(2020/11/26)でもつかえます。
またあんていしております。
報告ありがどうございます!
期間限定で無料のアニメなどはダウンロードできないのでしょうか??
基本的にはダウンロードできるはずです。ただし、記事の後半にあるように DRM のかかっている一部の動画は無理です。
とりあえず対象のアニメの URL を入れてみて、ダウンロードできるか確認してみるのがよいでしょう。手を動かさない限り何も始まりませんから。
記事中に
“ もし 1080p で配信されていれば地上波で放映されているもの(1440×1080)よりも多い画素数(1920×1080)でダウンロードできる上(当然局ロゴは入らない)、
(無料では1週間の期間限定ですが)公式で配信されている動画なので、合法的に 1080p の綺麗なアニメをダウンロードする方法、という意味ではある意味唯一と言えるかもしれません。”
とありますが、他に「GYAO!」とかいうサービスもありますね。そちらもm3u8のHLS配信形式です(しかも暗号化されてない)
Abemaの30分アニメは1080pで770MB程度ですが、GYAOの方は1080pで880MBと少し大きいんですけどね…
Abemaと違ってGYAO!は表に出ているものは殆どが無料(有料はストアに誘導されるので表にはあまり表示されない)なので「あぁプレミアムなのか」と落胆することがなく気に入ってます。
あーGYAO!もありましたね…!(失念してました)
GYAO! の方は youtube-dl が対応していたと思います。
ただ Abema に比べ見れるアニメが少ないのが欠点かもですね。
Abema や GYAO! でも権利者側の都合か画質が悪い作品もあったりするので、一概にはなんともいえなさそうです。
はじめまして!30分弱のアニメは問題なくDLできるのですが、一挙放送の長い動画だとエラーコード:1と出て何度トライしてもDLできません・・・
ちなみにhttps://abema.tv/channels/abema-anime-2/slots/8o4q8V8shYXGw9この動画で
毎回1分だったり20分程だけ保存でき、エラーコード:1になってしまいます。
試してないですが、長過ぎるとタイムアウトになってしまうかもですね…
コマンドから直接 streamlink を実行してみた方がいいかもしれません。
ご返信ありがとうございます。streamlinkで直接トライしてみたところ、no space left on deviceと出てエラーになってしまい(空き容量は4.45gbあり)、保存先を15gbのクラウドドライブにしたのですが結果は変わらなくまた空き容量もあったためクラウドドライブ側の問題かと思い、次はほぼ空の16gbのUSBに保存されるようにしたのですが、こちらもまだ空き容量に余裕があるにもかかわらず、同じno space left on deviceでエラーになります・・自分で調べたりもしてみたのですがヒットせず、、何が原因として考えられるのでしょうか?
no space left on device はディスク容量がないときに発生する一般的なエラーだと思います。UNIX 系 OS を使われている場合は容量が足りていても inode?が足りない時にも発生するようですが、Windowsならいまいち原因がわかりません。
残り4.45GBあるとのことですが、途中まで書き出されたファイルはありますか?もしないのであれば、4.45GBで足りず書き出しに失敗したとかな可能性もありそうです。
あと、USBはリムーバブルディスクとして認識されていないと正常に保存できないでしょうし、クラウドドライブ(OneDriveのこと?)はもっての外です。
素晴らしいツールありがとうございます。
質問なのですが、tverで使おうとした場合に一部のセグメントが取得できないようで、
Error in the pull function.
unable to open resource: ~~.ts
failed to open segment of playlist 0
のようなエラーが出て取りこぼしてしまっているようなのですが、解決方法ありますでしょうか?
うーん、私はそういう症状に遭遇したことがないですね…
youtube-dl に Chrome Dev Tool から見つけた m3u8 ファイルの URL を直接入れてみてどうかってところでしょうか
こんにちは。最近こちらのページを見つけ、とても愛用させていただいております、ありがとうございます!長めの動画を保存する時、紫と黄色とピンクの字でエラーなのか分からないのですが、
[mpegts @ 000001a69ab0c6c0] Packet corrupt (stream 0, dts : 126571069).3kbits/s speed 17.3x
[mp4 @ 000001a69ab0c6c0] Non-monotonous DTS in output stream 0:1; previous: 61962240, current: 61959929; chang nc to 61862241. This may result in incorrect timestamps in the output file. edif Ac0] Non-monotonous DTS in output stream 0:1; previous: 81982241, current: 61960947: changing to S242. This may result in incorrect timestamps in the output file.
Non Monotonous DTS in output stream 0:1; previous: 61982242, current: 61961971; chang ne te 1962243, This may result in incorrect timestamps in the output file.
Packet corrupt (stream 0, dts 127918666).
こんなのが40列近く出て、とても目につき何なのかも気になります。どうにかする方法はあるのでしょうか?
ffmpeg の「パケットが破損してます」というエラーみたいです。
ダウンロード自体が失敗するわけではないと思うので、極論ダウンロードしたファイルが正常に再生できて、ブロックノイズみたいなのが入っていなければ大丈夫じゃないかなーと思います(なんでそんなエラーがでるのかはよくわからない)。
私は、Streamlinkを外付けハードディスク(仮にD)に入れて
Abema-DL.batのFFmpegのパスを変えてやっていました。
が、ある時Streamlinkを認識できないというエラーメッセージが何度も出てきたので
全てやり直すも同じエラーを吐きました。
仕方なくAbema-DL.batの
rem // Streamlink を実行
D:n\streamlink.exe
という感じで絶対パスに直してみたらうまくいきました。
(ここまでたどり着くのに二日かかりましたで(( ´∀` )))
ほかに悩んでいる方がいたら、環境に合わせて試してみては?
(なんか似たようなコメントあったような気もするけど…)
このようなツール、ほんとにありがとうございます。
Chromeの拡張アプリを使ってます。DRM以外なら大体はOKみたいです。
Chrome の拡張機能は何を使われていますか? Chrome 拡張で DL できるならその方が楽かもしれませんね。
注意の部分では、「(読めば分かると思いますが)スマホからはこの方法は使えません。」と書かれていますが、androidでもこの方法は使えました。
Termux上でPythonとstreamlink、ffmpegを入れて使えれるようにしました。
コマンドとURLをコピペするだけで、簡単に復号しながらダウンロードできるので、助かってます。
殆どの新作アニメはGYAO!でダウンロードできるのでそっちを使っていますが(しかも復号不要)、
ABEMAのほうが「過去のアニメが一挙配信」されていることが多いので、その際はこの方法を使っています。
GYAO!やABEMAからダウンロードした動画(24分アニメ)を分析・比較してみると、
GYAO!のほうがABEMAより100MB程ファイルサイズが大きくなる。
GYAO!はキーフレームが約1秒後ごとに入っている。(キーフレーム数がABEMAより多い)
1080p動画のビットレートも、ABEMAは約4Mbps、GYAO!が約5MbpsとGYAO!の方が画質が高い。
しかし、音声GYAO!が128kbps、ABEMAが195bpsとABEMAの方が音質が高いのですが…。
Android でも使えましたか…!
Termux は実質ほぼ完全な Linux 環境なのでやろうと思えば動くんじゃないかなーとは思っていましたが、本当に動くとは…
GYAO! はあんまり使ってないですが、地味にアニメの配信が多いみたいですね。画質が ABEMA より高いとは驚きです。
GYAO! は youtube-dl でのダウンロードですかね…?
音質に関しては正直 128kbps も 192kbps もエンコード前の音質が良ければそこまで変わらない(むしろサンプルレート 44100kHz と 48000kHz の違いの方が体感できる)ような気はしてます。