見出し画像

[小ネタ]オンライン動画をダウンロードするyt-dlpで、ログインするとmp4の高画質動画がダウンロードできない

ここのところ(2024/12/7現在)、yt-dlpでダウンロードすると、4K動画などがなぜかFullHDでしかダウンロードできない現象が続いていた。
--formatオプションをいろいろいじってみるものの改善せず、わかってきたこととしては、

  • mp4形式ではFullHDになってしまう動画も、mkv形式であれば4K画質でダウンロードできる

  • --formatオプションで、「bv*[ext=mp4][width>1920]+ba[ext=m4a] / bv*[width>1920]+ba[ext=m4a]」のように、明示的にmp4形式を優先した記述としてもmkv形式でダウンロードされる(4Kの場合)

  • --format-sortオプションで指定しても改善しない

  • 一見無関係に見える、--cookies系オプションのオンオフにより、同じ--outputオプションを指定していても結果が異なる。--cookiesがオンの場合にはmkv形式(4K)となり、オフの場合にはmp4形式(4K)となる

このことを踏まえ、とある動画をサンプルとして --list-formatsオプションでダウンロード可能な解像度の一覧を取得したところ、なんと--cookiesの指定の有無により結果が異なっていることがわかった。

--cookiesオプションを使用した場合 ↓

ID  EXT   RESOLUTION FPS CHFILESIZE    TBR PROTOVCODEC         VBR ACODEC      ABR ASR MORE INFO
──────────────────────────────────────────────────────────────────────────────────────────────────────────────────
sb3 mhtml 48x27        1    │                   mhtmlimages                                 storyboard
sb2 mhtml 80x45        1    │                   mhtmlimages                                 storyboard
sb1 mhtml 160x90       1    │                   mhtmlimages                                 storyboard
sb0 mhtml 320x180      1    │                   mhtmlimages                                 storyboard
599 m4a   audio only      2 │  677.74KiB    31k httpsaudio only         mp4a.40.5   31k 22k ultralow, m4a_dash
600 webm  audio only      2 │  741.38KiB    34k httpsaudio only         opus        34k 48k ultralow, webm_dash
249 webm  audio only      2 │    1.07MiB    50k httpsaudio only         opus        50k 48k low, webm_dash
250 webm  audio only      2 │    1.42MiB    66k httpsaudio only         opus        66k 48k low, webm_dash
140 m4a   audio only      2 │    2.78MiB   130k httpsaudio only         mp4a.40.2  130k 44k medium, m4a_dash
251 webm  audio only      2 │    2.80MiB   130k httpsaudio only         opus       130k 48k medium, webm_dash
597 mp4   256x144     15    │  935.01KiB    43k httpsavc1.4d400b    43k video only          144p, mp4_dash
598 webm  256x144     15    │  956.26KiB    44k httpsvp9            44k video only          144p, webm_dash
160 mp4   256x144     30    │    2.69MiB   125k httpsavc1.4d400c   125k video only          144p, mp4_dash
278 webm  256x144     30    │    2.58MiB   120k httpsvp9           120k video only          144p, webm_dash
133 mp4   426x240     30    │    5.82MiB   271k httpsavc1.4d4015   271k video only          240p, mp4_dash
242 webm  426x240     30    │    5.09MiB   237k httpsvp9           237k video only          240p, webm_dash
134 mp4   640x360     30    │   13.30MiB   620k httpsavc1.4d401e   620k video only          360p, mp4_dash
18  mp4   640x360     30  2 │   14.33MiB   667k httpsavc1.42001E        mp4a.40.2       22k 360p
243 webm  640x360     30    │    8.20MiB   382k httpsvp9           382k video only          360p, webm_dash
135 mp4   854x480     30    │   24.47MiB  1140k httpsavc1.4d401f  1140k video only          480p, mp4_dash
244 webm  854x480     30    │   14.42MiB   672k httpsvp9           672k video only          480p, webm_dash
136 mp4   1280x720    30    │   46.66MiB  2174k httpsavc1.64001f  2174k video only          720p, mp4_dash
247 webm  1280x720    30    │   26.07MiB  1215k httpsvp9          1215k video only          720p, webm_dash
298 mp4   1280x720    60    │   68.02MiB  3170k httpsavc1.640020  3170k video only          720p60, mp4_dash
302 webm  1280x720    60    │   49.59MiB  2311k httpsvp9          2311k video only          720p60, webm_dash
299 mp4   1920x1080   60    │  117.67MiB  5484k httpsavc1.64002a  5484k video only          1080p60, mp4_dash
303 webm  1920x1080   60    │   81.98MiB  3820k httpsvp9          3820k video only          1080p60, webm_dash
308 webm  2560x1440   60    │  225.38MiB 10504k httpsvp9         10504k video only          1440p60, webm_dash
315 webm  3840x2160   60    │  428.97MiB 19992k httpsvp9         19992k video only          2160p60, webm_dash

--cookiesオプションを使用しなかった場合

ID  EXT   RESOLUTION FPS CHFILESIZE    TBR PROTOVCODEC           VBR ACODEC      ABR ASR MORE INFO
────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
sb3 mhtml 48x27        1    │                   mhtmlimages                                   storyboard
sb2 mhtml 80x45        1    │                   mhtmlimages                                   storyboard
sb1 mhtml 160x90       1    │                   mhtmlimages                                   storyboard
sb0 mhtml 320x180      1    │                   mhtmlimages                                   storyboard
233 mp4   audio onlym3u8audio only           unknown             Default
234 mp4   audio onlym3u8audio only           unknown             Default
599 m4a   audio only      2 │  677.74KiB    31k httpsaudio only           mp4a.40.5   31k 22k ultralow, m4a_dash
600 webm  audio only      2 │  741.38KiB    34k httpsaudio only           opus        34k 48k ultralow, webm_dash
139 m4a   audio only      2 │    1.05MiB    49k httpsaudio only           mp4a.40.5   49k 22k low, m4a_dash
249 webm  audio only      2 │    1.07MiB    50k httpsaudio only           opus        50k 48k low, webm_dash
250 webm  audio only      2 │    1.42MiB    66k httpsaudio only           opus        66k 48k low, webm_dash
140 m4a   audio only      2 │    2.78MiB   130k httpsaudio only           mp4a.40.2  130k 44k medium, m4a_dash
251 webm  audio only      2 │    2.80MiB   130k httpsaudio only           opus       130k 48k medium, webm_dash
597 mp4   256x144     15    │  935.01KiB    43k httpsavc1.4d400b      43k video only          144p, mp4_dash
602 mp4   256x144     15    │ ~  2.36MiB   110k m3u8vp09.00.10.08   110k video only
598 webm  256x144     15    │  956.26KiB    44k httpsvp9              44k video only          144p, webm_dash
269 mp4   256x144     30    │ ~  4.27MiB   199k m3u8avc1.4D400C     199k video only
160 mp4   256x144     30    │    2.69MiB   125k httpsavc1.4D400C     125k video only          144p, mp4_dash
603 mp4   256x144     30    │ ~  4.17MiB   194k m3u8vp09.00.11.08   194k video only
278 webm  256x144     30    │    2.58MiB   120k httpsvp09.00.11.08   120k video only          144p, webm_dash
229 mp4   426x240     30    │ ~  7.89MiB   368k m3u8avc1.4D4015     368k video only
133 mp4   426x240     30    │    5.82MiB   271k httpsavc1.4D4015     271k video only          240p, mp4_dash
604 mp4   426x240     30    │ ~  7.30MiB   340k m3u8vp09.00.20.08   340k video only
242 webm  426x240     30    │    5.09MiB   237k httpsvp09.00.20.08   237k video only          240p, webm_dash
230 mp4   640x360     30    │ ~ 18.00MiB   839k m3u8avc1.4D401E     839k video only
134 mp4   640x360     30    │   13.30MiB   620k httpsavc1.4D401E     620k video only          360p, mp4_dash
18  mp4   640x360     30  2 │   14.33MiB   667k httpsavc1.42001E          mp4a.40.2       22k 360p
605 mp4   640x360     30    │ ~ 12.55MiB   585k m3u8vp09.00.21.08   585k video only
243 webm  640x360     30    │    8.20MiB   382k httpsvp09.00.21.08   382k video only          360p, webm_dash
231 mp4   854x480     30    │ ~ 30.76MiB  1433k m3u8avc1.4D401F    1433k video only
135 mp4   854x480     30    │   24.47MiB  1140k httpsavc1.4D401F    1140k video only          480p, mp4_dash
606 mp4   854x480     30    │ ~ 20.59MiB   959k m3u8vp09.00.30.08   959k video only
244 webm  854x480     30    │   14.42MiB   672k httpsvp09.00.30.08   672k video only          480p, webm_dash
136 mp4   1280x720    30    │   46.66MiB  2174k httpsavc1.64001f    2174k video only          720p, mp4_dash
247 webm  1280x720    30    │   26.07MiB  1215k httpsvp9            1215k video only          720p, webm_dash
311 mp4   1280x720    60    │ ~ 91.32MiB  4256k m3u8avc1.640020    4256k video only
298 mp4   1280x720    60    │   68.02MiB  3170k httpsavc1.640020    3170k video only          720p60, mp4_dash
612 mp4   1280x720    60    │ ~ 67.94MiB  3166k m3u8vp09.00.40.08  3166k video only
302 webm  1280x720    60    │   49.59MiB  2311k httpsvp09.00.40.08  2311k video only          720p60, webm_dash
312 mp4   1920x1080   60    │ ~143.20MiB  6674k m3u8avc1.64002A    6674k video only
299 mp4   1920x1080   60    │  117.67MiB  5484k httpsavc1.64002A    5484k video only          1080p60, mp4_dash
617 mp4   1920x1080   60    │ ~103.40MiB  4819k m3u8vp09.00.41.08  4819k video only
303 webm  1920x1080   60    │   81.98MiB  3820k httpsvp09.00.41.08  3820k video only          1080p60, webm_dash
623 mp4   2560x1440   60    │ ~247.81MiB 11549k m3u8vp09.00.50.08 11549k video only
308 webm  2560x1440   60    │  225.38MiB 10504k httpsvp09.00.50.08 10504k video only          1440p60, webm_dash
628 mp4   3840x2160   60    │ ~477.98MiB 22276k m3u8vp09.00.51.08 22276k video only
315 webm  3840x2160   60    │  428.97MiB 19992k httpsvp09.00.51.08 19992k video only          2160p60, webm_dash

繰り返すが、同じ動画である。
--cookiesオプションを使った場合、2560x1440や3840x2160にはwebmしかないのがわかる。そりゃ、--formatオプションではどんなに頑張ってもmp4でダウンロードできないわけだわ…

ちなみにこうなる原因や対処は、今のところ全く不明である。情報求ム。

(2024/12/19追記) 12/13のアップデートで、動画フォーマットを一つも取得できない(--list-formats を行うと、mhtml のフォーマットしか出てこない)動画について、いちおう動画フォーマットが取得できるようになった様子。ただし高画質は相変わらずmkvしか取得できない。(cookieのオンオフをした際の挙動の変化はまだ検証できていない。)

余談1:
「別にmkv形式でもいいじゃん」という説はあるが、他をmp4形式で揃えていたので何となく気持ち悪いという理由の他、yt-dlpの説明だかエラーだかで、サムネイル画像を埋め込めないよ、という記述を見かけた気がしており、できればmp4形式にしたいところ。

余談2:
こういった動画もStreamFabでは4Kのmp4形式でダウンロードできていたのだが、なぜか今日、StreamFabもエラーを吐くようになってしまった。タスケテ…
(2024/12/19追記) StreamFabでも、サインイン状態だと「指定のフォーマットが見つからない」といった趣旨のエラーとなるが、サインアウトすると正常にダウンロードできる様子。ただし、サインアウトした場合には当然のことながら年齢制限のある動画はダウンロードできない。

余談3:
全然yt-dlpではないが、noteの機能である、ページの冒頭に画像を挿入する機能について、これまで使ってきた「世界の美術館」が今日何故か使えない(一覧表示時、3枚くらい表示して読み込み中のまま止まってしまう)のだが、なんで?
yt-dlpの件も含め、もしかして自分のPC環境が何かおかしいのだろうか?
先日からデータドライブとしているSSDで「データが吹き飛ぶ(0バイトになったり消失したり)現象とか、いつの間にかデータが破損する現象とか」が起こっているので怖いところ。
でも、yt-dlpの件はこれと関係しないような気がするんだけどな。


いいなと思ったら応援しよう!