Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Youtube] 8k VR180 SBS videos no longer available #9903

Open
9 of 11 tasks
R-S1978 opened this issue May 10, 2024 · 6 comments
Open
9 of 11 tasks

[Youtube] 8k VR180 SBS videos no longer available #9903

R-S1978 opened this issue May 10, 2024 · 6 comments
Labels
help-wanted Extra attention is needed site-bug Issue with a specific website

Comments

@R-S1978
Copy link

R-S1978 commented May 10, 2024

DO NOT REMOVE OR SKIP THE ISSUE TEMPLATE

  • I understand that I will be blocked if I intentionally remove or skip any mandatory* field

Checklist

Region

germany

Provide a description that is worded well enough to be understood

New 8k VR180 SBS videos on YouTube are not longer downloadable, because the 8k format is not seen in the API JSON by yt-dlp as available format. This is since some weeks. The 8k format (2x4k SBS) is working for this video with YouTube App on Meta Quest 3, so it must be definitly there. But yt-dlp sees only the 4k (2x2k SBS) format. The 8k format is hidden somewhere.

Provide verbose output that clearly demonstrates the problem

  • Run your yt-dlp command with -vU flag added (yt-dlp -vU <your command line>)
  • If using API, add 'verbose': True to YoutubeDL params instead
  • Copy the WHOLE output (starting with [debug] Command-line config) and insert it below

Complete Verbose Output

[debug] Command-line config: ['--list-formats', 'https://www.youtube.com/watch?v=W51jdIrSsgk', '--extractor-args', 'youtube:player_client=all', '-vU']
[debug] Encodings: locale cp1252, fs utf-8, pref cp1252, out utf-8, error utf-8, screen utf-8
[debug] yt-dlp version nightly@2024.05.08.232715 from yt-dlp/yt-dlp-nightly-builds [6b54cccdc] (win_exe)
[debug] Python 3.8.10 (CPython AMD64 64bit) - Windows-10-10.0.19045-SP0 (OpenSSL 1.1.1k  25 Mar 2021)
[debug] exe versions: ffmpeg 4.3.2-2021-02-02-full_build-www.gyan.dev, ffprobe 4.3.2-2021-02-02-full_build-www.gyan.dev
[debug] Optional libraries: Cryptodome-3.20.0, brotli-1.1.0, certifi-2024.02.02, curl_cffi-0.5.10, mutagen-1.47.0, requests-2.31.0, sqlite3-3.35.5, urllib3-2.2.1, websockets-12.0
[debug] Proxy map: {}
[debug] Request Handlers: urllib, requests, websockets, curl_cffi
[debug] Loaded 1810 extractors
[debug] Fetching release info: https://api.github.com/repos/yt-dlp/yt-dlp-nightly-builds/releases/latest
Latest version: nightly@2024.05.08.232715 from yt-dlp/yt-dlp-nightly-builds
yt-dlp is up to date (nightly@2024.05.08.232715 from yt-dlp/yt-dlp-nightly-builds)
[youtube] Extracting URL: https://www.youtube.com/watch?v=W51jdIrSsgk
[youtube] W51jdIrSsgk: Downloading webpage
[youtube] W51jdIrSsgk: Downloading ios player API JSON
[youtube] W51jdIrSsgk: Downloading ios embedded player API JSON
WARNING: [youtube] YouTube said: ERROR - Requested entity was not found.
WARNING: [youtube] HTTP Error 404: Not Found. Retrying (1/3)...
[youtube] W51jdIrSsgk: Downloading ios embedded player API JSON
WARNING: [youtube] YouTube said: ERROR - Requested entity was not found.
WARNING: [youtube] HTTP Error 404: Not Found. Retrying (2/3)...
[youtube] W51jdIrSsgk: Downloading ios embedded player API JSON
WARNING: [youtube] YouTube said: ERROR - Requested entity was not found.
WARNING: [youtube] HTTP Error 404: Not Found. Retrying (3/3)...
[youtube] W51jdIrSsgk: Downloading ios embedded player API JSON
WARNING: [youtube] YouTube said: ERROR - Requested entity was not found.
WARNING: [youtube] Unable to download API page: HTTP Error 404: Not Found (caused by <HTTPError 404: Not Found>)
[youtube] W51jdIrSsgk: Downloading ios music player API JSON
[youtube] W51jdIrSsgk: Downloading ios creator player API JSON
[youtube] W51jdIrSsgk: Downloading ios embedscreen player API JSON
[youtube] W51jdIrSsgk: Downloading android player API JSON
[youtube] W51jdIrSsgk: Downloading android embedded player API JSON
[youtube] W51jdIrSsgk: Downloading android music player API JSON
[youtube] W51jdIrSsgk: Downloading android creator player API JSON
[youtube] W51jdIrSsgk: Downloading android embedscreen player API JSON
[youtube] W51jdIrSsgk: Downloading web embedded client config
[youtube] W51jdIrSsgk: Downloading player 17fd9675
[youtube] W51jdIrSsgk: Downloading web embedded player API JSON
[youtube] W51jdIrSsgk: Downloading web music client config
[youtube] W51jdIrSsgk: Downloading web music player API JSON
[youtube] W51jdIrSsgk: Downloading web creator player API JSON
[youtube] W51jdIrSsgk: Downloading web embedscreen player API JSON
[youtube] W51jdIrSsgk: Downloading tv embedded player API JSON
[youtube] W51jdIrSsgk: Downloading mweb player API JSON
[youtube] W51jdIrSsgk: Downloading mweb embedscreen player API JSON
WARNING: [youtube] Skipping player responses from android/android_embedscreen clients (got player responses for video "aQvGIIdgFDM" instead of "W51jdIrSsgk")
[debug] Loading youtube-nsig.17fd9675 from cache
[debug] [youtube] Decrypted nsig 3FIf0FeDT3SuYx => -10eO2qq9RNVBA
[debug] Loading youtube-nsig.17fd9675 from cache
[debug] [youtube] Decrypted nsig 8J-KKQ4BRN590f => 2OT4zU8GM9RboA
[youtube] W51jdIrSsgk: Downloading m3u8 information
[youtube] W51jdIrSsgk: Downloading m3u8 information
[debug] Sort order given by extractor: quality, res, fps, hdr:12, source, vcodec:vp9.2, channels, acodec, lang, proto
[debug] Formats sorted by: hasvid, ie_pref, quality, res, fps, hdr:12(7), source, vcodec:vp9.2(10), channels, acodec, lang, proto, size, br, asr, vext, aext, hasaud, id
[info] Available formats for W51jdIrSsgk:
ID      EXT   RESOLUTION FPS CH │   FILESIZE    TBR PROTO │ VCODEC           VBR ACODEC      ABR ASR MORE INFO
────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
sb3     mhtml 48x27        1    │                   mhtml │ images                                   storyboard
sb2     mhtml 79x45        1    │                   mhtml │ images                                   storyboard
sb1     mhtml 159x90       1    │                   mhtml │ images                                   storyboard
sb0     mhtml 319x180      1    │                   mhtml │ images                                   storyboard
233     mp4   audio only        │                   m3u8  │ audio only           unknown             Default, IOS
234     mp4   audio only        │                   m3u8  │ audio only           unknown             Default, IOS
599     m4a   audio only      2 │  619.48KiB    31k https │ audio only           mp4a.40.5   31k 22k ultralow, MWEB, m4a_dash
600     webm  audio only      2 │  584.82KiB    29k https │ audio only           opus        29k 48k ultralow, MWEB, webm_dash
139-drc m4a   audio only      2 │  980.78KiB    49k https │ audio only           mp4a.40.5   49k 22k low, DRC, IOS, m4a_dash
249-drc webm  audio only      2 │  898.02KiB    45k https │ audio only           opus        45k 48k low, DRC, WEB, webm_dash
250-drc webm  audio only      2 │    1.16MiB    59k https │ audio only           opus        59k 48k low, DRC, WEB, webm_dash
139     m4a   audio only      2 │  980.78KiB    49k https │ audio only           mp4a.40.5   49k 22k low, IOS, m4a_dash
249     webm  audio only      2 │  878.15KiB    44k https │ audio only           opus        44k 48k low, ANDR-E, webm_dash
250     webm  audio only      2 │    1.13MiB    58k https │ audio only           opus        58k 48k low, ANDR-E, webm_dash
140-drc m4a   audio only      2 │    2.54MiB   130k https │ audio only           mp4a.40.2  130k 44k medium, DRC, IOS, m4a_dash
251-drc webm  audio only      2 │    2.35MiB   120k https │ audio only           opus       120k 48k medium, DRC, WEB, webm_dash
140     m4a   audio only      2 │    2.54MiB   130k https │ audio only           mp4a.40.2  130k 44k medium, IOS, m4a_dash
251     webm  audio only      2 │    2.30MiB   117k https │ audio only           opus       117k 48k medium, ANDR-E, webm_dash
597     mp4   256x144     15    │  629.80KiB    31k https │ avc1.4d400b      31k video only          144p, MWEB, mp4_dash
602     mp4   256x144     15    │ ~  2.09MiB   107k m3u8  │ vp09.00.10.08   107k video only          IOS
598     webm  256x144     15    │  718.95KiB    36k https │ vp9              36k video only          144p, MWEB, webm_dash
394     mp4   256x144     30    │  785.95KiB    39k https │ av01.0.00M.08    39k video only          144s, mesh, WEB, mp4_dash
269     mp4   256x144     30    │ ~  3.55MiB   181k m3u8  │ avc1.4D400C     181k video only          IOS
160     mp4   256x144     30    │    2.19MiB   112k https │ avc1.4D400C     112k video only          144s, mesh, IOS, mp4_dash
603     mp4   256x144     30    │ ~  3.30MiB   169k m3u8  │ vp09.00.11.08   169k video only          IOS
278     webm  256x144     30    │  890.51KiB    44k https │ vp09.00.11.08    44k video only          144s, mesh, IOS, webm_dash
395     mp4   426x240     30    │    1.41MiB    72k https │ av01.0.00M.08    72k video only          240s, mesh, WEB, mp4_dash
229     mp4   426x240     30    │ ~  6.51MiB   333k m3u8  │ avc1.4D4015     333k video only          IOS
133     mp4   424x240     30    │    4.80MiB   245k https │ avc1.4D4015     245k video only          240s, mesh, IOS, mp4_dash
604     mp4   426x240     30    │ ~  6.33MiB   324k m3u8  │ vp09.00.20.08   324k video only          IOS
242     webm  424x240     30    │    1.81MiB    92k https │ vp09.00.20.08    92k video only          240s, mesh, IOS, webm_dash
396     mp4   640x360     30    │    2.93MiB   149k https │ av01.0.01M.08   149k video only          360s, mesh, WEB, mp4_dash
230     mp4   640x360     30    │ ~ 15.25MiB   780k m3u8  │ avc1.4D401E     780k video only          IOS
134     mp4   640x360     30    │    5.25MiB   268k https │ avc1.4D401E     268k video only          360s, mesh, IOS, mp4_dash
18      mp4   640x360     30  2 │ ≈  8.14MiB   415k https │ avc1.42001E          mp4a.40.2       44k 360p, IOS-C
605     mp4   640x360     30    │ ~ 11.99MiB   613k m3u8  │ vp09.00.21.08   613k video only          IOS
243     webm  640x360     30    │    3.58MiB   183k https │ vp09.00.21.08   183k video only          360s, mesh, IOS, webm_dash
397     mp4   854x480     30    │    5.82MiB   297k https │ av01.0.04M.08   297k video only          480s, mesh, WEB, mp4_dash
231     mp4   854x480     30    │ ~ 25.33MiB  1296k m3u8  │ avc1.4D401F    1296k video only          IOS
135     mp4   852x480     30    │   11.07MiB   565k https │ avc1.4D401F     565k video only          480s, mesh, IOS, mp4_dash
606     mp4   854x480     30    │ ~ 20.62MiB  1055k m3u8  │ vp09.00.30.08  1055k video only          IOS
244     webm  852x480     30    │    7.03MiB   359k https │ vp09.00.30.08   359k video only          480s, mesh, IOS, webm_dash
22      mp4   1280x720    30  2 │ ≈ 24.53MiB  1251k https │ avc1.64001F          mp4a.40.2       44k 720p, ANDR-E
398     mp4   1280x720    30    │   13.81MiB   705k https │ av01.0.05M.08   705k video only          720s, mesh, WEB, mp4_dash
232     mp4   1280x720    30    │ ~ 45.96MiB  2351k m3u8  │ avc1.64001F    2351k video only          IOS
136     mp4   1280x720    30    │   26.47MiB  1351k https │ avc1.4D401F    1351k video only          720s, mesh, IOS, mp4_dash
609     mp4   1280x720    30    │ ~ 42.05MiB  2151k m3u8  │ vp09.00.31.08  2151k video only          IOS
247     webm  1280x720    30    │   16.59MiB   847k https │ vp09.00.31.08   847k video only          720s, mesh, IOS, webm_dash
270     mp4   1920x1078   30    │ ~ 93.08MiB  4761k m3u8  │ avc1.640028    4761k video only          IOS
614     mp4   1920x1078   30    │ ~ 59.09MiB  3023k m3u8  │ vp09.00.40.08  3023k video only          IOS
399     mp4   1920x1080   30    │   30.41MiB  1552k https │ av01.0.08M.08  1552k video only          1080s, mesh, WEB, mp4_dash
137     mp4   1920x1080   30    │   50.22MiB  2563k https │ avc1.640028    2563k video only          1080s, mesh, IOS, mp4_dash
248     webm  1920x1080   30    │   29.45MiB  1503k https │ vp09.00.40.08  1503k video only          1080s, mesh, IOS, webm_dash
620     mp4   2560x1438   30    │ ~160.97MiB  8234k m3u8  │ vp09.00.50.08  8234k video only          IOS
400     mp4   2560x1440   30    │  102.42MiB  5226k https │ av01.0.12M.08  5226k video only          1440s, mesh, WEB, mp4_dash
271     webm  2560x1440   30    │  119.39MiB  6092k https │ vp09.00.50.08  6092k video only          1440s, mesh, IOS, webm_dash
401     mp4   3840x2160   30    │  215.94MiB 11018k https │ av01.0.12M.08 11018k video only          2160s, mesh, WEB, mp4_dash
313     webm  3840x2160   30    │  287.64MiB 14677k https │ vp09.00.50.08 14677k video only          2160s, mesh, IOS, webm_dash
@R-S1978 R-S1978 added site-bug Issue with a specific website triage Untriaged issue labels May 10, 2024
@R-S1978 R-S1978 changed the title 8k VR180 SBS videos not longer downloadable 8k VR180 SBS videos not longer downloadable from youtube May 10, 2024
@bashonly
Copy link
Member

This is a side-effect of #9554. VR180 formats are only available via the Android client(s). It's not possible for yt-dlp to get Android client formats anymore.

It's possible that the VR formats may be served to another client in the future, such as the upcoming client for VisionOS.

@bashonly bashonly removed the triage Untriaged issue label May 10, 2024
@bashonly bashonly changed the title 8k VR180 SBS videos not longer downloadable from youtube [Youtube] 8k VR180 SBS videos no longer available May 10, 2024
@R-S1978
Copy link
Author

R-S1978 commented May 11, 2024

This is a side-effect of #9554. VR180 formats are only available via the Android client(s). It's not possible for yt-dlp to get Android client formats anymore.

It's possible that the VR formats may be served to another client in the future, such as the upcoming client for VisionOS.

Thanks for this information. But why can the official youtube app on meta quest get the 8k format? Is it using some other protocol?

@bashonly
Copy link
Member

Meta's VR gear uses the Android client

@pukkandan pukkandan added the help-wanted Extra attention is needed label May 12, 2024
@kclauhk
Copy link
Contributor

kclauhk commented May 14, 2024

(this is not a real fix but I hope this may help in some use cases)

if someone still need the android client for specific format, you may:

Removing the 'params' will generate a valid download link which will expire after ~30 seconds.
i.e. you can successfully download the video in one attempt if download finishes within 30 seconds.
If it cannot finish within 30 seconds, you simply run yt-dlp again to resume download until the whole video is downloaded.

NOTE: After 12d8ea8 (in nightly/master), you no longer need to modify the source to remove these params. You only need to pass --extractor-args "youtube:player_client=android" with your command. --@bashonly

For example, the video mentioned in this post:

>python -m yt_dlp "https://www.youtube.com/watch?v=W51jdIrSsgk" --extractor-args "youtube:player_client=android" -f 571+140
[youtube] Extracting URL: https://www.youtube.com/watch?v=W51jdIrSsgk
[youtube] W51jdIrSsgk: Downloading webpage
[youtube] W51jdIrSsgk: Downloading android player API JSON
[info] W51jdIrSsgk: Downloading 1 format(s): 571+140
[download] Destination: NIS FORTRESS Archaeological site and modern Jazz Museum SERBIA 8K 4K VR180 3D Travel [W51jdIrSsgk].f571.mp4
[download]  64.0% of  532.55MiB at   13.26MiB/s ETA 00:14ERROR: unable to download video data: HTTP Error 403: Forbidden

>python -m yt_dlp "https://www.youtube.com/watch?v=W51jdIrSsgk" --extractor-args "youtube:player_client=android" -f 571+140
[youtube] Extracting URL: https://www.youtube.com/watch?v=W51jdIrSsgk
[youtube] W51jdIrSsgk: Downloading webpage
[youtube] W51jdIrSsgk: Downloading android player API JSON
[info] W51jdIrSsgk: Downloading 1 format(s): 571+140
[download] Resuming download at byte 357378580
[download] Destination: NIS FORTRESS Archaeological site and modern Jazz Museum SERBIA 8K 4K VR180 3D Travel [W51jdIrSsgk].f571.mp4
[download] 100% of  532.55MiB in 00:00:17 at 31.31MiB/s
[download] Destination: NIS FORTRESS Archaeological site and modern Jazz Museum SERBIA 8K 4K VR180 3D Travel [W51jdIrSsgk].f140.m4a
[download] 100% of    2.54MiB in 00:00:00 at 9.66MiB/s
[Merger] Merging formats into "NIS FORTRESS Archaeological site and modern Jazz Museum SERBIA 8K 4K VR180 3D Travel [W51jdIrSsgk].mp4"
Deleting original file NIS FORTRESS Archaeological site and modern Jazz Museum SERBIA 8K 4K VR180 3D Travel [W51jdIrSsgk].f140.m4a (pass -k to keep)
Deleting original file NIS FORTRESS Archaeological site and modern Jazz Museum SERBIA 8K 4K VR180 3D Travel [W51jdIrSsgk].f571.mp4 (pass -k to keep)

You can automate it with a script, e.g. a simple example for Windows:

@echo off
set arg=%1
for %%i in (%*) do call :concat %%i
set argc=%arg:"=%
set resume=0

python -m yt_dlp %arg%

:resume
if %ERRORLEVEL%==0 (goto :eof) else (
  if %resume%==5 (goto :eof) else (
    if "%argc:--extractor-args youtube:player_client=%" neq "%argc:"=%" if "%argc:android=%" neq "%argc:"=%" (
      python -m yt_dlp %arg%
      set /a "resume=%resume%+1"
    ) else goto :eof
  )
)
goto :resume

:concat
set arg=%arg% %1
goto :eof

use it as follow:

C:\yt-dlp>ex.bat "https://www.youtube.com/watch?v=W51jdIrSsgk" --extractor-args "youtube:player_client=android" -f 571+140

This script will stop downloading if it resumes more than 5 times. Change the number if needed.

@pukkandan
Copy link
Member

@coletdjnz What do you think about removing the params from code and returning android formats with lower priority when requested with player-client=android?

@bashonly
Copy link
Member

What do you think about removing the params from code and returning android formats with lower priority when requested with player-client=android?

Now implemented in #9553

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
help-wanted Extra attention is needed site-bug Issue with a specific website
Projects
None yet
Development

No branches or pull requests

4 participants