### Checklist
- [x] I'm reporting that yt-dlp is broken on a **supported** siteβ¦
- [x] I've verified that I have **updated yt-dlp to nightly or master** ([update instructions](https://github.com/yt-dlp/yt-dlp#update-channels))
- [x] I've checked that all provided URLs are playable in a browser with the same IP and same login details
- [x] I've checked that all URLs and arguments with special characters are [properly quoted or escaped](https://github.com/yt-dlp/yt-dlp/wiki/FAQ#video-url-contains-an-ampersand--and-im-getting-some-strange-output-1-2839-or-v-is-not-recognized-as-an-internal-or-external-command)
- [x] I've searched [known issues](https://github.com/yt-dlp/yt-dlp/issues/3766), [the FAQ](https://github.com/yt-dlp/yt-dlp/wiki/FAQ), and the [bugtracker](https://github.com/yt-dlp/yt-dlp/issues?q=is%3Aissue%20-label%3Aspam%20%20) for similar issues **including closed ones**. DO NOT post duplicates
- [x] I've read about [sharing account credentials](https://github.com/yt-dlp/yt-dlp/blob/master/CONTRIBUTING.md#are-you-willing-to-share-account-details-if-needed) and I'm willing to share it if required
### Region
_No response_
### Provide a description that is worded well enough to be understood
We are getting reports of YouTube rolling out an experiment to some accounts where normal videos only have DRM formats available on the `tv` (TVHTML5) Innertube client.
This is not limited to yt-dlp. Tests have been run with the same account on various official YouTube TV clients (PS3, web browser, apple tv) and they are also only getting DRM formats for videos.
----
**Edit**: I noticed this issue has received some attention and the technical YouTube jargon is confusing, so for clarity:
There appears to be an experiment (or A/B test) on some YouTube accounts where, when logged into [YouTube on TV](https://support.google.com/youtube/answer/7583931?hl=en), are seeing every YouTube video protected by DRM.
YouTube on TV is the big picture interface/app used on TVs, game consoles, etc. You can access it at https://www.youtube.com/tv (with a TV/game console user agent).
This impacts yt-dlp as we currently request video data from YouTube as if we were YouTube on TV.
### Provide verbose output that clearly demonstrates the problem
- [x] Run **your** yt-dlp command with **-vU** flag added (`yt-dlp -vU <your command line>`)
- [x] If using API, add `'verbose': True` to `YoutubeDL` params instead
- [x] Copy the WHOLE output (starting with `[debug] Command-line config`) and insert it below
### Complete Verbose Output
```shell
Reading from user provided dump:
yt-dlp --cookies-from-browser firefox -F -v --load-pages 'https://www.youtube.com/watch?v=aqz-KE-bpKQ' --no-plugin-dirs --extractor-arg youtube:player-client=tv
[debug] Command-line config: ['--cookies-from-browser', 'firefox', '-F', '-v', '--load-pages', 'https://www.youtube.com/watch?v=aqz-KE-bpKQ', '--no-plugin-dirs', '--extractor-arg', 'youtube:player-client=tv']
[debug] Encodings: locale UTF-8, fs utf-8, pref UTF-8, out utf-8, error utf-8, screen utf-8
[debug] yt-dlp version nightly@2025.03.07.232704 from yt-dlp/yt-dlp-nightly-builds [05c8023a2] (pip)
[debug] Python 3.11.11 (CPython x86_64 64bit) - Linux-6.13.4-1-default-x86_64-with-glibc2.40 (OpenSSL 3.2.4 11 Feb 2025, glibc 2.40)
[debug] exe versions: ffmpeg 6.1.2 (fdk,setts), ffprobe 6.1.2
[debug] Optional libraries: certifi-2024.12.14, curl_cffi-0.7.1, mutagen-1.47.0, sqlite3-3.49.1, websockets-14.2
[debug] Proxy map: {}
Extracting cookies from firefox
[debug] Extracting cookies from: "/home/coletdjnz/.mozilla/firefox/REDACTED.default-release/cookies.sqlite"
Extracted 913 cookies from firefox
[debug] Request Handlers: urllib, websockets, curl_cffi
[debug] Plugin directories: none (disabled)
[debug] Loaded 1844 extractors
[debug] [youtube] Found YouTube account cookies
[youtube] Extracting URL: https://www.youtube.com/watch?v=aqz-KE-bpKQ
[youtube] Loading request from aqz-KE-bpKQ_https_-_www.youtube.com_watchv=aqz-KE-bpKQ_bpctr=9999999999_has_verified=1.dump
[youtube] Loading request from aqz-KE-bpKQ_https_-_www.youtube.com_tv.dump
[youtube] Loading request from aqz-KE-bpKQ_https_-_www.youtube.com_s_player_f6e09c70_player_ias.vflset_en_US_base.js.dump
[youtube] Loading request from aqz-KE-bpKQ_51958a7bee14068b19b5b9ab46ec918e_https_-_www.youtube.com_youtubei_v1_playerprettyPrint=false.dump
ERROR: [youtube] aqz-KE-bpKQ: This video is DRM protected
File "/home/coletdjnz/.local/share/pipx/venvs/yt-dlp/lib64/python3.11/site-packages/yt_dlp/extractor/common.py", line 747, in extract
ie_result = self._real_extract(url)
^^^^^^^^^^^^^^^^^^^^^^^
File "/home/coletdjnz/.local/share/pipx/venvs/yt-dlp/lib64/python3.11/site-packages/yt_dlp/extractor/youtube.py", line 4712, in _real_extract
self.report_drm(video_id)
File "/home/coletdjnz/.local/share/pipx/venvs/yt-dlp/lib64/python3.11/site-packages/yt_dlp/extractor/common.py", line 1224, in report_drm
self.raise_no_formats('This video is DRM protected', expected=True, video_id=video_id)
File "/home/coletdjnz/.local/share/pipx/venvs/yt-dlp/lib64/python3.11/site-packages/yt_dlp/extractor/common.py", line 1268, in raise_no_formats
raise ExtractorError(msg, expected=expected, video_id=video_id)
----
Forcing DRM formats to be visible (requires code edit)
python -m yt_dlp --cookies-from-browser firefox -F -v --load-pages 'https://www.youtube.com/watch?v=aqz-KE-bpKQ' --no-plugin-dirs --extractor-arg youtube:player-client=tv --allow-un
[debug] Command-line config: ['--cookies-from-browser', 'firefox', '-F', '-v', '--load-pages', 'https://www.youtube.com/watch?v=aqz-KE-bpKQ', '--no-plugin-dirs', '--extractor-arg', 'youtube:player-client=tv', '--allow-un']
WARNING: You have asked for UNPLAYABLE formats to be listed/downloaded. This is a developer option intended for debugging.
If you experience any issues while using this option, DO NOT open a bug report
[debug] Encodings: locale UTF-8, fs utf-8, pref UTF-8, out utf-8, error utf-8, screen utf-8
[debug] yt-dlp version stable@2025.02.19 from yt-dlp/yt-dlp [4985a4041]
[debug] Lazy loading extractors is disabled
[debug] Python 3.12.9 (CPython x86_64 64bit) - Linux-6.13.4-1-default-x86_64-with-glibc2.40 (OpenSSL 3.2.4 11 Feb 2025, glibc 2.40)
[debug] exe versions: ffmpeg 6.1.2 (fdk,setts), ffprobe 6.1.2
[debug] Optional libraries: Cryptodome-3.21.0, brotli-1.1.0, certifi-2025.01.31, curl_cffi-0.8.0b7 (unsupported), mutagen-1.47.0, requests-2.32.3, secretstorage-3.3.3, sqlite3-3.49.1, urllib3-2.3.0, websockets-15.0.1
[debug] Proxy map: {}
Extracting cookies from firefox
[debug] Extracting cookies from: "/home/coletdjnz/.mozilla/firefox/REDACTED.default-release/cookies.sqlite"
Extracted 912 cookies from firefox
[debug] Request Handlers: urllib, requests, websockets
[debug] Plugin directories: none (disabled)
[debug] Loaded 1844 extractors
[debug] [youtube] Found YouTube account cookies
[youtube] Extracting URL: https://www.youtube.com/watch?v=aqz-KE-bpKQ
[youtube] Loading request from aqz-KE-bpKQ_https_-_www.youtube.com_watchv=aqz-KE-bpKQ_bpctr=9999999999_has_verified=1.dump
[youtube] Loading request from aqz-KE-bpKQ_https_-_www.youtube.com_tv.dump
[youtube] Loading request from aqz-KE-bpKQ_https_-_www.youtube.com_s_player_f6e09c70_player_ias.vflset_en_US_base.js.dump
[youtube] Loading request from aqz-KE-bpKQ_51958a7bee14068b19b5b9ab46ec918e_https_-_www.youtube.com_youtubei_v1_playerprettyPrint=false.dump
[debug] Loading youtube-nsig.f6e09c70 from cache
[debug] [youtube] Decrypted nsig redacted => redacted
[debug] Sort order given by extractor: quality, res, fps, hdr:12, source, vcodec, channels, acodec, lang, proto
[debug] Formats sorted by: hasvid, ie_pref, quality, res, fps, hdr:12(7), source, vcodec, channels, acodec, lang, proto, size, br, asr, vext, aext, hasaud, id
[info] Available formats for aqz-KE-bpKQ:
ID EXT RESOLUTION FPS CH β FILESIZE TBR PROTO β VCODEC VBR ACODEC ABR ASR MORE INFO
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
sb3 mhtml 48x27 0 β mhtml β images storyboard
sb2 mhtml 80x45 0 β mhtml β images storyboard
sb1 mhtml 160x90 0 β mhtml β images storyboard
sb0 mhtml 320x180 0 β mhtml β images storyboard
148-drc m4a audio only 2 β β 3.69MiB 49k https β audio only mp4a.40.5 49k 22k DRM, low, DRC, TV, m4a_dash
148 m4a audio only 2 β β 3.69MiB 49k https β audio only mp4a.40.5 49k 22k DRM, low, TV, m4a_dash
149-drc m4a audio only 2 β β 9.80MiB 129k https β audio only mp4a.40.2 129k 44k DRM, medium, DRC, TV, m4a_dash
149 m4a audio only 2 β β 9.80MiB 129k https β audio only mp4a.40.2 129k 44k DRM, medium, TV, m4a_dash
161 mp4 256x144 30 β β 4.12MiB 55k https β avc1.4d400c 55k video only DRM, 144p, TV, mp4_dash
142 mp4 426x240 30 β β 8.89MiB 118k https β avc1.4d4015 118k video only DRM, 240p, TV, mp4_dash
279 webm 426x240 30 β β 9.73MiB 129k https β vp9 129k video only DRM, 240p, TV, webm_dash
143 mp4 640x360 30 β β 17.45MiB 231k https β avc1.4d401e 231k video only DRM, 360p, TV, mp4_dash
280 webm 640x360 30 β β 22.99MiB 304k https β vp9 304k video only DRM, 360p, TV, webm_dash
144 mp4 854x480 30 β β 26.90MiB 356k https β avc1.4d401f 356k video only DRM, 480p, TV, mp4_dash
317 webm 854x480 30 β β 31.60MiB 418k https β vp9 418k video only DRM, 480p, TV, webm_dash
145 mp4 1280x720 30 β β 83.25MiB 1101k https β avc1.4d401f 1101k video only DRM, 720p, TV, mp4_dash
274 webm 1280x720 30 β β 53.67MiB 709k https β vp9 709k video only DRM, 720p, TV, webm_dash
384 mp4 1280x720 60 β β143.55MiB 1898k https β avc1.4d4020 1898k video only DRM, 720p60, TV, mp4_dash
409 webm 1280x720 60 β β107.46MiB 1421k https β vp9 1421k video only DRM, 720p60, TV, webm_dash
385 mp4 1920x1080 60 β β245.69MiB 3248k https β avc1.64002a 3248k video only DRM, 1080p60, TV, mp4_dash
411 webm 1920x1080 60 β β160.92MiB 2127k https β vp9 2127k video only DRM, 1080p60, TV, webm_dash
557 webm 2560x1440 60 β β451.43MiB 5968k https β vp9 5968k video only DRM, 1440p60, TV, webm_dash
558 webm 3840x2160 60 β β 1.27GiB 17174k https β vp9 17174k video only DRM, 2160p60, TV, webm_dash
```