Is there a way to capture the logs for Infuse when you are playing a SLM Stream STRM? I am 90% certain why it's working there, but I'm curious to confirm it. Specifically, there would be something like [demux] v: Trying demuxers for level=force. and some stuff from ffmpeg before and after that.
Don't know. I'll try it again tonight with something and take a look
Logs from SLM
2025-09-05 23:13:11.918769: INFO: Starting to retrieve manifest for https://www.youtube.com/watch?v=GtSYAUn2I7I.
[debug] Encodings: locale UTF-8, fs utf-8, pref UTF-8, out missing (logger) (No ANSI), error utf-8 (No ANSI), screen missing (logger) (No ANSI)
[debug] yt-dlp version [email protected] from yt-dlp/yt-dlp [5c8bcfdbc] API
[debug] params: {'verbose': True, 'no_warnings': False, 'format': 'all', 'retries': 0, 'fragment_retries': 0, 'logger': <__main__.YTDLLogger object at 0x783519c06f60>, 'extractor_args': {'youtube': {'player_client': ['web_safari'], 'formats': ['missing_pot'], 'player_skip': ['configs', 'webpage', 'js'], 'skip': ['dash', 'translated_subs']}}, 'compat_opts': set(), 'http_headers': {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/133.0.0.0 Safari/537.36', 'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8', 'Accept-Language': 'en-us,en;q=0.5', 'Sec-Fetch-Mode': 'navigate'}}
[debug] Lazy loading extractors is disabled
[debug] Python 3.12.11 (CPython x86_64 64bit) - Linux-6.14.0-27-generic-x86_64-with-glibc2.41 (OpenSSL 3.5.1 1 Jul 2025, glibc 2.41)
[debug] exe versions: none
[debug] Optional libraries: Cryptodome-3.23.0, brotli-1.1.0, certifi-2025.08.03, mutagen-1.47.0, requests-2.32.5, sqlite3-3.46.1, urllib3-2.5.0, websockets-15.0.1
[debug] Proxy map: {}
[debug] Request Handlers: urllib, requests, websockets
[debug] Plugin directories: none
[debug] Loaded 1840 extractors
2025-09-05 23:13:12.485300: INFO: Extracting info from https://www.youtube.com/watch?v=GtSYAUn2I7I...
[debug] [youtube] [pot] PO Token Providers: none
[debug] [youtube] [pot] PO Token Cache Providers: memory
[debug] [youtube] [pot] PO Token Cache Spec Providers: webpo
[youtube] Extracting URL: https://www.youtube.com/watch?v=GtSYAUn2I7I
[youtube] GtSYAUn2I7I: Downloading initial data API JSON
[youtube] GtSYAUn2I7I: Downloading web safari player API JSON
[WARNING] [youtube] GtSYAUn2I7I: Cannot decrypt nsig without player_url: Some formats may be missing
[WARNING] [youtube] GtSYAUn2I7I: Some web_safari client https formats have been skipped as they are missing a url. YouTube is forcing SABR streaming for this client. See https://github.com/yt-dlp/yt-dlp/issues/12482 for more details
[youtube] GtSYAUn2I7I: Downloading m3u8 information
2025-09-05 23:13:14.226387: INFO: Extraction successful for https://www.youtube.com/watch?v=GtSYAUn2I7I.
2025-09-05 23:13:14.226496: INFO: Found 6 formats.
2025-09-05 23:13:14.226649: INFO: Best format URL found using m3u8: https://manifest.googlevideo.com/api/manifest/hls_playlist/expire/1757149993/ei/yaa7aMyuJvyE0_wPtsuQsAk/ip/172.58.134.219/id/1ad4980149f623b2/itag/94/source/youtube/requiressl/yes/ratebypass/yes/pfa/1/sgoap/clen%3D89008288%3Bdur%3D5499.762%3Bgir%3Dyes%3Bitag%3D140%3Blmt%3D1713693958668579/sgovp/clen%3D507497343%3Bdur%3D5499.701%3Bgir%3Dyes%3Bitag%3D135%3Blmt%3D1713692364031232/rqh/1/hls_chunk_host/rr5---sn-uhvcpax0n5-cvnz.googlevideo.com/xpc/EgVo2aDSNQ%3D%3D/met/1757128393,/mh/ZE/mm/31,29/mn/sn-uhvcpax0n5-cvnz,sn-hp57yns6/ms/au,rdu/mv/m/mvi/5/pcm2cms/yes/pl/23/rms/au,au/initcwndbps/865000/bui/AY1jyLPCtcjwvajMe4Jn_RYTwSo4Pnw8UjT6KRw6IkU9rWj2XS-okZtrjvp_dKB-2-ccVsYKsTgos_BD/spc/l3OVKe5G08ONJwc8n2tOXG9Jx-vV_Z7n44NQSij9L878zdIJFg96BhQkIcuwRxeLqn2HH8uQmqzEQw/vprv/1/playlist_type/CLEAN/dover/11/txp/8219224/mt/1757127960/fvip/1/keepalive/yes/fexp/51355912,51552689,51565116,51565682,51580968/sparams/expire,ei,ip,id,itag,source,requiressl,ratebypass,pfa,sgoap,sgovp,rqh,xpc,bui,spc,vprv,playlist_type/sig/AJfQdSswRAIgQkUNdiee7Xlnyu1b6Hw0MqxO1QjjNBj17BRKyZTSTA8CIGglYof4KDxIeBjfyKC4Bq3Azh5gzGGujQarJTdCSe9z/lsparams/hls_chunk_host,met,mh,mm,mn,ms,mv,mvi,pcm2cms,pl,rms,initcwndbps/lsig/APaTxxMwRgIhAM0xTsfKnsLp6OXSxCl9iJiYWSlfa5sCudPwLJGELkYXAiEA0ezncX7mWyZRg8gXOuLCppCgq0ndpUR9WeZ5NhUxEyc%3D/playlist/index.m3u8
2025-09-05 23:13:19.656500: INFO: Starting to retrieve manifest for https://www.youtube.com/watch?v=GtSYAUn2I7I.
[debug] Encodings: locale UTF-8, fs utf-8, pref UTF-8, out missing (logger) (No ANSI), error utf-8 (No ANSI), screen missing (logger) (No ANSI)
[debug] yt-dlp version [email protected] from yt-dlp/yt-dlp [5c8bcfdbc] API
[debug] params: {'verbose': True, 'no_warnings': False, 'format': 'all', 'retries': 0, 'fragment_retries': 0, 'logger': <__main__.YTDLLogger object at 0x783519c67170>, 'extractor_args': {'youtube': {'player_client': ['web_safari'], 'formats': ['missing_pot'], 'player_skip': ['configs', 'webpage', 'js'], 'skip': ['dash', 'translated_subs']}}, 'compat_opts': set(), 'http_headers': {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/133.0.0.0 Safari/537.36', 'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8', 'Accept-Language': 'en-us,en;q=0.5', 'Sec-Fetch-Mode': 'navigate'}}
Strangely enough, Infuse works with strm files AND streamlinks
Actually, I wanted to see logs from Infuse. I know what SLM is up to 
Yeah, when I did a quick search I saw the user requests for functionality there (and with Emby) and linking to Channels articles about them, such as:
I think there's some slight differences in the implementation, but otherwise a pretty good copy job.
Well...I can't get the logs from Infuse so...yeah
Ah well! Like I said, I'm 90% certain I know exactly what is happening and you are spot on with what you said in the other thread about the Channels Devs needings to update and make some changes to FFMPEG (it's what I sent them half a year ago). Was hoping there was something Infuse was showing that I could point the Devs towards so they can make the fix.
Actually, I believe I really narrowed it down to the forced use (or really, lack thereof in the Apple clients compared to the Android clients) of Libavformat, aka lavf, for demuxing.
https://ffmpeg.org/doxygen/3.4/group__libavf.html
For instance, this is what I see on the Android clients:
03-17 19:26:10.185 32497 32539 V mpv : [demux] Trying demuxers for level=force.
03-17 19:26:10.187 32497 32539 D mpv : [demux] Trying demuxer: lavf (force-level: force)
03-17 19:26:10.212 32497 32539 V mpv : [lavf] Found 'hls' at score=100 size=1337.
And this is what happens on the Apple ones:
2025-03-17 14:15:56.458 [u=231.3MB f=1866.6MB] [1.22s] [demux] v: Trying demuxers for level=force.
2025-03-17 14:15:56.466 [u=239.8MB f=1858.2MB] [1.23s] [ffmpeg] error: Not detecting m3u8/hls with non standard extension and non standard mime type
2025-03-17 14:15:56.469 [u=229.8MB f=1868.2MB] [1.23s] [ffmpeg] error: Not detecting m3u8/hls with non standard extension and non standard mime type
2025-03-17 14:15:56.470 [u=229.8MB f=1868.2MB] [1.23s] [lavf] v: No format found, try lowering probescore or forcing the format.
That lack of [demux] Trying demuxer: lavf (force-level: force) seems to be everything. Then again, I know nothing about programming in Apple, so I could be way off base. Still, that is where I'd start!
What I've loved most about Channels DVR, along with SLM, is that it provides one unified interface of new curated content to browse and watch comfortably from the couch without having to bounce around through many apps' screens or maintain multiple queues and watchlists. This has been the "holy grail" for media enthusiasts for a long while and nothing else out there provides such a customizable and personalized interface. And sure, I could use Plex Media Server along with Infuse here, but the idea was that I wanted this particular streaming YouTube content to be indexed, browsable and accessible from the current #1 app in our family, which is Channels.
That said, I understand there's a difference between the ffmpeg on tvOS and whatever is used on AndroidTV, which explains why these links aren't playing on AppleTVs but play fine on Andoid TV's. I'm not sure what it'll take to get fixed, or even if it ever will be fixed, so I'm just brainstorming for workarounds in the meantime so AppleTV users can also take advantage of this great integration and utility that SLM is bringing to the table.
The next idea I had, is inspired by how other AppleTV apps handle external links of this nature, simply as Stream Links. I use News Explorer to follow some RSS feeds. The first time I select a YouTube link, I see this alert:
I click "open" and the video plays via YouTube. When the video's complete I tap back a few times and I'm returned to News Explorer. Just like any working Stream Link.
So then this line of thinking leads to my next feature request. @babsonnexus, can we get a toggle for YouTube subscriptions that allows us to choose whether or not we want the original YouTube link passed through instead, so we AppleTV users can access it as a Stream Link, as opposed to the SLM-ified stream file, that won't play? At least in the meantime.
Because even the parsing of subscriptions and the presentation inside Channels makes it a very worthwhile addition. It helps us to stay focused on the subscriptions we've already chosen and not get distracted by all the other noise presented inside the YouTube app itself.
You can already do this. Just change the Special Action from Make SLM Stream to None and it will become a Stream Link instead of a Stream File.

Assuming a Stream Link with a YouTube address inside is allowed for deep linking, you should be all set!
Great, I’ll check it out when I get home later and will report back. Thanks!
Got it, it's working! I'm playing one MKBHD review now.
I'm curious if it's possible to import the most recent 20 from his whole channel, or if I have to select specific videos and/or specific playlists? Because I've discovered many new videos on this popular channel that aren't assigned to a playlist, but that do appear here: https://www.youtube.com/@mkbhd
For any bookmarked/subscribed Channel, you'll currently get up to the 100 most recent uploads that are public (re: not private or unlisted), with some caveats. Complete details on the Wiki:
And also here:
You'll have to select the videos you want and place them in your own Video Groups / Playlists. Future functionality on the roadmap will make it possible to eliminate these limitations, give the ability to do things like sync playlists, or create rules you like you described, but not anytime soon.
Ah, OK, thanks for that clarification. And that roadmap is exciting, but of course I'll remain patient on any movement there. Obviously the ability to "set and forget" a YouTube subscription, so that all new content is automatically presented as browsable and accessible in the Channels app (via regular old Stream Link or SLM Stream) without having to manually add the individual videos we're interested in ahead of time, would be an absolute game changer in this space.
@babsonnexus, thanks for all you do! This is incredible, inspiring work you're sharing here.
I've been thinking about this some more and trying to find workarounds, but to no avail. Basically, we'd need the Channels DVR server to process something like a .strm as if it were a real video file. Actually, if Channels would scan in .m3u, m3u8, asx, and/or something similar where a plantext link can be inserted and processed, and the server just did the same things it does for linear stations with that link, then it would resolve everything. I tested this in VLC and it all worked fine, but Channels wouldn't accept it. Even faking it as something like a .mp4 didn't work because the scanner refused to process the mostly empty file without certain components that identify it as true video.
So, in summary, either the Channels app on Apple TV needs an update to resolve this using existing methods, or the Devs would need to create a way to process linked videos on server so we aren't dependent on the clients at all.
I should probably consolidate my topics:
Youtube channels no longer working
2026/07/08 16:44:35.448965 [HLS] Couldn't generate stream playlist for ch1-dANY-ip192.168.1.8: M3U: Could not parse playlist from 192.168.1.4:9001: Can't detect playlist type
#EXTM3U
#EXTINF:-1 channel-id="KAL1" tvg-id="KAL1" channel-number="1" tvg-chno="1" tvg-name="Kitten Academy Live 1" tvc-guide-title="Kitten Academy Live 1" tvc-guide-description="Kitten Academy Live 1",Kitten Academy Live 1
http://192.168.1.4:9001/playlists/streams/stream?url=https://www.youtube.com/@KittenAcademy/live
SLM log
2026-07-08 16:44:28.863040: INFO: Starting to retrieve manifest for https://www.youtube.com/@KittenAcademy/live.
[debug] Encodings: locale UTF-8, fs utf-8, pref UTF-8, out missing (logger) (No ANSI), error utf-8 (No ANSI), screen missing (logger) (No ANSI)
[debug] yt-dlp version [email protected] from yt-dlp/yt-dlp [821bef0f0] API
[debug] params: {'verbose': True, 'no_warnings': False, 'format': 'all', 'retries': 0, 'fragment_retries': 0, 'logger': <__main__.YTDLLogger object at 0x7f129631e420>, 'js_runtimes': {'node': {'exe': 'node'}}, 'extractor_args': {'youtube': {'player_client': ['web_safari'], 'formats': ['missing_pot'], 'player_skip': ['configs', 'webpage'], 'skip': ['dash', 'translated_subs']}}, 'remote_components': set(), 'compat_opts': set(), 'http_headers': {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/148.0.0.0 Safari/537.36', 'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8', 'Accept-Language': 'en-us,en;q=0.5', 'Sec-Fetch-Mode': 'navigate'}}
[debug] Lazy loading extractors is disabled
[debug] Python 3.12.13 (CPython x86_64 64bit) - Linux-4.4.302+-x86_64-with-glibc2.41 (OpenSSL 3.5.6 7 Apr 2026, glibc 2.41)
[debug] exe versions: none
[debug] Optional libraries: Cryptodome-3.23.0, brotli-1.2.0, certifi-2026.06.17, curl_cffi-0.15.0, mutagen-1.48.1, requests-2.34.2, sqlite3-3.46.1, urllib3-2.7.0, websockets-16.0, yt_dlp_ejs-0.8.0
[debug] JS runtimes: node-24.13.0
[debug] Proxy map: {}
[debug] Request Handlers: urllib, requests, websockets, curl_cffi
[debug] Plugin directories: none
[debug] Loaded 1739 extractors
2026-07-08 16:44:29.079398: INFO: Extracting info from https://www.youtube.com/@KittenAcademy/live...
[youtube:tab] Extracting URL: https://www.youtube.com/@KittenAcademy/live
[youtube:tab] @KittenAcademy/live: Downloading webpage
2026-07-08 16:44:30.048905: INFO: URL redirected to https://www.youtube.com/watch?v=T4XZmMPQ9Kw.
[debug] [youtube] [pot] PO Token Providers: none
[debug] [youtube] [pot] PO Token Cache Providers: memory
[debug] [youtube] [pot] PO Token Cache Spec Providers: webpo
[debug] [youtube] [jsc] JS Challenge Providers: bun (unavailable), deno (unavailable), node, quickjs (unavailable)
[youtube] Extracting URL: https://www.youtube.com/watch?v=T4XZmMPQ9Kw
[youtube] T4XZmMPQ9Kw: Downloading initial data API JSON
[youtube] T4XZmMPQ9Kw: Downloading iframe API JS
[youtube] T4XZmMPQ9Kw: Downloading player ecd4b80a-main
[youtube] T4XZmMPQ9Kw: Downloading web safari player API JSON
2026-07-08 16:44:31.270699: INFO: Extraction successful for https://www.youtube.com/@KittenAcademy/live.
2026-07-08 16:44:31.270867: WARNING: No formats available for https://www.youtube.com/@KittenAcademy/live.
[debug] Encodings: locale UTF-8, fs utf-8, pref UTF-8, out missing (logger) (No ANSI), error utf-8 (No ANSI), screen missing (logger) (No ANSI)
[debug] yt-dlp version [email protected] from yt-dlp/yt-dlp [821bef0f0] API
[debug] params: {'verbose': True, 'no_warnings': False, 'format': 'all', 'retries': 0, 'fragment_retries': 0, 'logger': <__main__.YTDLLogger object at 0x7f129631d0d0>, 'js_runtimes': {'node': {'exe': 'node'}}, 'extractor_args': {'youtube': {'player_client': ['web'], 'formats': ['missing_pot'], 'player_skip': ['configs', 'webpage'], 'skip': ['dash', 'translated_subs']}}, 'remote_components': set(), 'compat_opts': set(), 'http_headers': {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/148.0.0.0 Safari/537.36', 'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8', 'Accept-Language': 'en-us,en;q=0.5', 'Sec-Fetch-Mode': 'navigate'}}
[debug] Lazy loading extractors is disabled
[debug] Python 3.12.13 (CPython x86_64 64bit) - Linux-4.4.302+-x86_64-with-glibc2.41 (OpenSSL 3.5.6 7 Apr 2026, glibc 2.41)
[debug] exe versions: none
[debug] Optional libraries: Cryptodome-3.23.0, brotli-1.2.0, certifi-2026.06.17, curl_cffi-0.15.0, mutagen-1.48.1, requests-2.34.2, sqlite3-3.46.1, urllib3-2.7.0, websockets-16.0, yt_dlp_ejs-0.8.0
[debug] JS runtimes: node-24.13.0
[debug] Proxy map: {}
[debug] Request Handlers: urllib, requests, websockets, curl_cffi
[debug] Plugin directories: none
[debug] Loaded 1739 extractors
2026-07-08 16:44:31.467690: INFO: Extracting info from https://www.youtube.com/@KittenAcademy/live...
[youtube:tab] Extracting URL: https://www.youtube.com/@KittenAcademy/live
[youtube:tab] @KittenAcademy/live: Downloading webpage
2026-07-08 16:44:32.387835: INFO: URL redirected to https://www.youtube.com/watch?v=T4XZmMPQ9Kw.
[debug] [youtube] [pot] PO Token Providers: none
[debug] [youtube] [pot] PO Token Cache Providers: memory
[debug] [youtube] [pot] PO Token Cache Spec Providers: webpo
[debug] [youtube] [jsc] JS Challenge Providers: bun (unavailable), deno (unavailable), node, quickjs (unavailable)
[youtube] Extracting URL: https://www.youtube.com/watch?v=T4XZmMPQ9Kw
[youtube] T4XZmMPQ9Kw: Downloading initial data API JSON
[youtube] T4XZmMPQ9Kw: Downloading iframe API JS
[youtube] T4XZmMPQ9Kw: Downloading player ecd4b80a-main
[youtube] T4XZmMPQ9Kw: Downloading web player API JSON
2026-07-08 16:44:33.475849: INFO: Extraction successful for https://www.youtube.com/@KittenAcademy/live.
2026-07-08 16:44:33.476024: WARNING: No formats available for https://www.youtube.com/@KittenAcademy/live.
[debug] Encodings: locale UTF-8, fs utf-8, pref UTF-8, out missing (logger) (No ANSI), error utf-8 (No ANSI), screen missing (logger) (No ANSI)
[debug] yt-dlp version [email protected] from yt-dlp/yt-dlp [821bef0f0] API
[debug] params: {'verbose': True, 'no_warnings': False, 'format': 'all', 'retries': 0, 'fragment_retries': 0, 'logger': <__main__.YTDLLogger object at 0x7f12924bce60>, 'js_runtimes': {'node': {'exe': 'node'}}, 'extractor_args': {'youtube': {'player_client': ['ios'], 'formats': ['missing_pot'], 'player_skip': ['configs', 'webpage'], 'skip': ['dash', 'translated_subs']}}, 'remote_components': set(), 'compat_opts': set(), 'http_headers': {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/148.0.0.0 Safari/537.36', 'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8', 'Accept-Language': 'en-us,en;q=0.5', 'Sec-Fetch-Mode': 'navigate'}}
[debug] Lazy loading extractors is disabled
[debug] Python 3.12.13 (CPython x86_64 64bit) - Linux-4.4.302+-x86_64-with-glibc2.41 (OpenSSL 3.5.6 7 Apr 2026, glibc 2.41)
[debug] exe versions: none
[debug] Optional libraries: Cryptodome-3.23.0, brotli-1.2.0, certifi-2026.06.17, curl_cffi-0.15.0, mutagen-1.48.1, requests-2.34.2, sqlite3-3.46.1, urllib3-2.7.0, websockets-16.0, yt_dlp_ejs-0.8.0
[debug] JS runtimes: node-24.13.0
[debug] Proxy map: {}
[debug] Request Handlers: urllib, requests, websockets, curl_cffi
[debug] Plugin directories: none
[debug] Loaded 1739 extractors
2026-07-08 16:44:33.660578: INFO: Extracting info from https://www.youtube.com/@KittenAcademy/live...
[youtube:tab] Extracting URL: https://www.youtube.com/@KittenAcademy/live
[youtube:tab] @KittenAcademy/live: Downloading webpage
2026-07-08 16:44:34.644685: INFO: URL redirected to https://www.youtube.com/watch?v=T4XZmMPQ9Kw.
[debug] [youtube] [pot] PO Token Providers: none
[debug] [youtube] [pot] PO Token Cache Providers: memory
[debug] [youtube] [pot] PO Token Cache Spec Providers: webpo
[debug] [youtube] [jsc] JS Challenge Providers: bun (unavailable), deno (unavailable), node, quickjs (unavailable)
[youtube] Extracting URL: https://www.youtube.com/watch?v=T4XZmMPQ9Kw
[youtube] T4XZmMPQ9Kw: Downloading initial data API JSON
[youtube] T4XZmMPQ9Kw: Downloading ios player API JSON
2026-07-08 16:44:35.435022: INFO: Extraction successful for https://www.youtube.com/@KittenAcademy/live.
2026-07-08 16:44:35.435172: WARNING: No formats available for https://www.youtube.com/@KittenAcademy/live.
[info | 2026-07-08 16:44:35,438] - 172.17.0.1 - - [08/Jul/2026 16:44:35] "GET /playlists/streams/stream?url=https://www.youtube.com/@KittenAcademy/live HTTP/1.1" 200 -
2026-07-08 16:44:36.511937: INFO: Starting to retrieve manifest for https://www.youtube.com/@KittenAcademy/live.
[debug] Encodings: locale UTF-8, fs utf-8, pref UTF-8, out missing (logger) (No ANSI), error utf-8 (No ANSI), screen missing (logger) (No ANSI)
[debug] yt-dlp version [email protected] from yt-dlp/yt-dlp [821bef0f0] API
[debug] params: {'verbose': True, 'no_warnings': False, 'format': 'all', 'retries': 0, 'fragment_retries': 0, 'logger': <__main__.YTDLLogger object at 0x7f1293ae63c0>, 'js_runtimes': {'node': {'exe': 'node'}}, 'extractor_args': {'youtube': {'player_client': ['web_safari'], 'formats': ['missing_pot'], 'player_skip': ['configs', 'webpage'], 'skip': ['dash', 'translated_subs']}}, 'remote_components': set(), 'compat_opts': set(), 'http_headers': {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/148.0.0.0 Safari/537.36', 'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8', 'Accept-Language': 'en-us,en;q=0.5', 'Sec-Fetch-Mode': 'navigate'}}
[debug] Lazy loading extractors is disabled
[debug] Python 3.12.13 (CPython x86_64 64bit) - Linux-4.4.302+-x86_64-with-glibc2.41 (OpenSSL 3.5.6 7 Apr 2026, glibc 2.41)
[debug] exe versions: none
[debug] Optional libraries: Cryptodome-3.23.0, brotli-1.2.0, certifi-2026.06.17, curl_cffi-0.15.0, mutagen-1.48.1, requests-2.34.2, sqlite3-3.46.1, urllib3-2.7.0, websockets-16.0, yt_dlp_ejs-0.8.0
[debug] JS runtimes: node-24.13.0
[debug] Proxy map: {}
[debug] Request Handlers: urllib, requests, websockets, curl_cffi
[debug] Plugin directories: none
[debug] Loaded 1739 extractors
2026-07-08 16:44:36.696070: INFO: Extracting info from https://www.youtube.com/@KittenAcademy/live...
[youtube:tab] Extracting URL: https://www.youtube.com/@KittenAcademy/live
[youtube:tab] @KittenAcademy/live: Downloading webpage
2026-07-08 16:44:37.881948: INFO: URL redirected to https://www.youtube.com/watch?v=T4XZmMPQ9Kw.
[debug] [youtube] [pot] PO Token Providers: none
[debug] [youtube] [pot] PO Token Cache Providers: memory
[debug] [youtube] [pot] PO Token Cache Spec Providers: webpo
[debug] [youtube] [jsc] JS Challenge Providers: bun (unavailable), deno (unavailable), node, quickjs (unavailable)
[youtube] Extracting URL: https://www.youtube.com/watch?v=T4XZmMPQ9Kw
[youtube] T4XZmMPQ9Kw: Downloading initial data API JSON
[youtube] T4XZmMPQ9Kw: Downloading iframe API JS
[youtube] T4XZmMPQ9Kw: Downloading player ecd4b80a-main
[youtube] T4XZmMPQ9Kw: Downloading web safari player API JSON
2026-07-08 16:44:39.033715: INFO: Extraction successful for https://www.youtube.com/@KittenAcademy/live.
2026-07-08 16:44:39.036233: WARNING: No formats available for https://www.youtube.com/@KittenAcademy/live.
[debug] Encodings: locale UTF-8, fs utf-8, pref UTF-8, out missing (logger) (No ANSI), error utf-8 (No ANSI), screen missing (logger) (No ANSI)
[debug] yt-dlp version [email protected] from yt-dlp/yt-dlp [821bef0f0] API
[debug] params: {'verbose': True, 'no_warnings': False, 'format': 'all', 'retries': 0, 'fragment_retries': 0, 'logger': <__main__.YTDLLogger object at 0x7f1291a7fe90>, 'js_runtimes': {'node': {'exe': 'node'}}, 'extractor_args': {'youtube': {'player_client': ['web'], 'formats': ['missing_pot'], 'player_skip': ['configs', 'webpage'], 'skip': ['dash', 'translated_subs']}}, 'remote_components': set(), 'compat_opts': set(), 'http_headers': {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/148.0.0.0 Safari/537.36', 'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8', 'Accept-Language': 'en-us,en;q=0.5', 'Sec-Fetch-Mode': 'navigate'}}
[debug] Lazy loading extractors is disabled
[debug] Python 3.12.13 (CPython x86_64 64bit) - Linux-4.4.302+-x86_64-with-glibc2.41 (OpenSSL 3.5.6 7 Apr 2026, glibc 2.41)
[debug] exe versions: none
[debug] Optional libraries: Cryptodome-3.23.0, brotli-1.2.0, certifi-2026.06.17, curl_cffi-0.15.0, mutagen-1.48.1, requests-2.34.2, sqlite3-3.46.1, urllib3-2.7.0, websockets-16.0, yt_dlp_ejs-0.8.0
[debug] JS runtimes: node-24.13.0
[debug] Proxy map: {}
[debug] Request Handlers: urllib, requests, websockets, curl_cffi
[debug] Plugin directories: none
[debug] Loaded 1739 extractors
2026-07-08 16:44:39.220713: INFO: Extracting info from https://www.youtube.com/@KittenAcademy/live...
[youtube:tab] Extracting URL: https://www.youtube.com/@KittenAcademy/live
[youtube:tab] @KittenAcademy/live: Downloading webpage
2026-07-08 16:44:40.564703: INFO: URL redirected to https://www.youtube.com/watch?v=T4XZmMPQ9Kw.
[debug] [youtube] [pot] PO Token Providers: none
[debug] [youtube] [pot] PO Token Cache Providers: memory
[debug] [youtube] [pot] PO Token Cache Spec Providers: webpo
[debug] [youtube] [jsc] JS Challenge Providers: bun (unavailable), deno (unavailable), node, quickjs (unavailable)
[youtube] Extracting URL: https://www.youtube.com/watch?v=T4XZmMPQ9Kw
[youtube] T4XZmMPQ9Kw: Downloading initial data API JSON
[youtube] T4XZmMPQ9Kw: Downloading iframe API JS
[youtube] T4XZmMPQ9Kw: Downloading player ecd4b80a-main
[youtube] T4XZmMPQ9Kw: Downloading web player API JSON
2026-07-08 16:44:41.813263: INFO: Extraction successful for https://www.youtube.com/@KittenAcademy/live.
2026-07-08 16:44:41.813412: WARNING: No formats available for https://www.youtube.com/@KittenAcademy/live.
[debug] Encodings: locale UTF-8, fs utf-8, pref UTF-8, out missing (logger) (No ANSI), error utf-8 (No ANSI), screen missing (logger) (No ANSI)
[debug] yt-dlp version [email protected] from yt-dlp/yt-dlp [821bef0f0] API
[debug] params: {'verbose': True, 'no_warnings': False, 'format': 'all', 'retries': 0, 'fragment_retries': 0, 'logger': <__main__.YTDLLogger object at 0x7f12948d5fa0>, 'js_runtimes': {'node': {'exe': 'node'}}, 'extractor_args': {'youtube': {'player_client': ['ios'], 'formats': ['missing_pot'], 'player_skip': ['configs', 'webpage'], 'skip': ['dash', 'translated_subs']}}, 'remote_components': set(), 'compat_opts': set(), 'http_headers': {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/148.0.0.0 Safari/537.36', 'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8', 'Accept-Language': 'en-us,en;q=0.5', 'Sec-Fetch-Mode': 'navigate'}}
[debug] Lazy loading extractors is disabled
[debug] Python 3.12.13 (CPython x86_64 64bit) - Linux-4.4.302+-x86_64-with-glibc2.41 (OpenSSL 3.5.6 7 Apr 2026, glibc 2.41)
[debug] exe versions: none
[debug] Optional libraries: Cryptodome-3.23.0, brotli-1.2.0, certifi-2026.06.17, curl_cffi-0.15.0, mutagen-1.48.1, requests-2.34.2, sqlite3-3.46.1, urllib3-2.7.0, websockets-16.0, yt_dlp_ejs-0.8.0
[debug] JS runtimes: node-24.13.0
[debug] Proxy map: {}
[debug] Request Handlers: urllib, requests, websockets, curl_cffi
[debug] Plugin directories: none
[debug] Loaded 1739 extractors
2026-07-08 16:44:41.994929: INFO: Extracting info from https://www.youtube.com/@KittenAcademy/live...
[youtube:tab] Extracting URL: https://www.youtube.com/@KittenAcademy/live
[youtube:tab] @KittenAcademy/live: Downloading webpage
2026-07-08 16:44:42.930308: INFO: URL redirected to https://www.youtube.com/watch?v=T4XZmMPQ9Kw.
[debug] [youtube] [pot] PO Token Providers: none
[debug] [youtube] [pot] PO Token Cache Providers: memory
[debug] [youtube] [pot] PO Token Cache Spec Providers: webpo
[debug] [youtube] [jsc] JS Challenge Providers: bun (unavailable), deno (unavailable), node, quickjs (unavailable)
[youtube] Extracting URL: https://www.youtube.com/watch?v=T4XZmMPQ9Kw
[youtube] T4XZmMPQ9Kw: Downloading initial data API JSON
[youtube] T4XZmMPQ9Kw: Downloading ios player API JSON
2026-07-08 16:44:43.829060: INFO: Extraction successful for https://www.youtube.com/@KittenAcademy/live.
2026-07-08 16:44:43.829211: WARNING: No formats available for https://www.youtube.com/@KittenAcademy/live.
[info | 2026-07-08 16:44:43,833] - 172.17.0.1 - - [08/Jul/2026 16:44:43] "GET /playlists/streams/stream?url=https://www.youtube.com/@KittenAcademy/live HTTP/1.1" 200 -
2026-07-08 16:44:44.813726: INFO: Starting to retrieve manifest for https://www.youtube.com/@KittenAcademy/live.
[debug] Encodings: locale UTF-8, fs utf-8, pref UTF-8, out missing (logger) (No ANSI), error utf-8 (No ANSI), screen missing (logger) (No ANSI)
[debug] yt-dlp version [email protected] from yt-dlp/yt-dlp [821bef0f0] API
[debug] params: {'verbose': True, 'no_warnings': False, 'format': 'all', 'retries': 0, 'fragment_retries': 0, 'logger': <__main__.YTDLLogger object at 0x7f129383ae70>, 'js_runtimes': {'node': {'exe': 'node'}}, 'extractor_args': {'youtube': {'player_client': ['web_safari'], 'formats': ['missing_pot'], 'player_skip': ['configs', 'webpage'], 'skip': ['dash', 'translated_subs']}}, 'remote_components': set(), 'compat_opts': set(), 'http_headers': {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/148.0.0.0 Safari/537.36', 'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8', 'Accept-Language': 'en-us,en;q=0.5', 'Sec-Fetch-Mode': 'navigate'}}
[debug] Lazy loading extractors is disabled
[debug] Python 3.12.13 (CPython x86_64 64bit) - Linux-4.4.302+-x86_64-with-glibc2.41 (OpenSSL 3.5.6 7 Apr 2026, glibc 2.41)
[debug] exe versions: none
[debug] Optional libraries: Cryptodome-3.23.0, brotli-1.2.0, certifi-2026.06.17, curl_cffi-0.15.0, mutagen-1.48.1, requests-2.34.2, sqlite3-3.46.1, urllib3-2.7.0, websockets-16.0, yt_dlp_ejs-0.8.0
[debug] JS runtimes: node-24.13.0
[debug] Proxy map: {}
[debug] Request Handlers: urllib, requests, websockets, curl_cffi
[debug] Plugin directories: none
[debug] Loaded 1739 extractors
2026-07-08 16:44:44.998506: INFO: Extracting info from https://www.youtube.com/@KittenAcademy/live...
[youtube:tab] Extracting URL: https://www.youtube.com/@KittenAcademy/live
[youtube:tab] @KittenAcademy/live: Downloading webpage
2026-07-08 16:44:46.014061: INFO: URL redirected to https://www.youtube.com/watch?v=T4XZmMPQ9Kw.
[debug] [youtube] [pot] PO Token Providers: none
[debug] [youtube] [pot] PO Token Cache Providers: memory
[debug] [youtube] [pot] PO Token Cache Spec Providers: webpo
[debug] [youtube] [jsc] JS Challenge Providers: bun (unavailable), deno (unavailable), node, quickjs (unavailable)
[youtube] Extracting URL: https://www.youtube.com/watch?v=T4XZmMPQ9Kw
[youtube] T4XZmMPQ9Kw: Downloading initial data API JSON
[youtube] T4XZmMPQ9Kw: Downloading iframe API JS
[youtube] T4XZmMPQ9Kw: Downloading player ecd4b80a-main
[youtube] T4XZmMPQ9Kw: Downloading web safari player API JSON
2026-07-08 16:44:47.390320: INFO: Extraction successful for https://www.youtube.com/@KittenAcademy/live.
2026-07-08 16:44:47.390470: WARNING: No formats available for https://www.youtube.com/@KittenAcademy/live.
[debug] Encodings: locale UTF-8, fs utf-8, pref UTF-8, out missing (logger) (No ANSI), error utf-8 (No ANSI), screen missing (logger) (No ANSI)
[debug] yt-dlp version [email protected] from yt-dlp/yt-dlp [821bef0f0] API
[debug] params: {'verbose': True, 'no_warnings': False, 'format': 'all', 'retries': 0, 'fragment_retries': 0, 'logger': <__main__.YTDLLogger object at 0x7f12917a87a0>, 'js_runtimes': {'node': {'exe': 'node'}}, 'extractor_args': {'youtube': {'player_client': ['web'], 'formats': ['missing_pot'], 'player_skip': ['configs', 'webpage'], 'skip': ['dash', 'translated_subs']}}, 'remote_components': set(), 'compat_opts': set(), 'http_headers': {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/148.0.0.0 Safari/537.36', 'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8', 'Accept-Language': 'en-us,en;q=0.5', 'Sec-Fetch-Mode': 'navigate'}}
[debug] Lazy loading extractors is disabled
[debug] Python 3.12.13 (CPython x86_64 64bit) - Linux-4.4.302+-x86_64-with-glibc2.41 (OpenSSL 3.5.6 7 Apr 2026, glibc 2.41)
[debug] exe versions: none
[debug] Optional libraries: Cryptodome-3.23.0, brotli-1.2.0, certifi-2026.06.17, curl_cffi-0.15.0, mutagen-1.48.1, requests-2.34.2, sqlite3-3.46.1, urllib3-2.7.0, websockets-16.0, yt_dlp_ejs-0.8.0
[debug] JS runtimes: node-24.13.0
[debug] Proxy map: {}
[debug] Request Handlers: urllib, requests, websockets, curl_cffi
[debug] Plugin directories: none
[debug] Loaded 1739 extractors
2026-07-08 16:44:47.572402: INFO: Extracting info from https://www.youtube.com/@KittenAcademy/live...
[youtube:tab] Extracting URL: https://www.youtube.com/@KittenAcademy/live
[youtube:tab] @KittenAcademy/live: Downloading webpage
2026-07-08 16:44:48.587001: INFO: URL redirected to https://www.youtube.com/watch?v=T4XZmMPQ9Kw.
[debug] [youtube] [pot] PO Token Providers: none
[debug] [youtube] [pot] PO Token Cache Providers: memory
[debug] [youtube] [pot] PO Token Cache Spec Providers: webpo
[debug] [youtube] [jsc] JS Challenge Providers: bun (unavailable), deno (unavailable), node, quickjs (unavailable)
[youtube] Extracting URL: https://www.youtube.com/watch?v=T4XZmMPQ9Kw
[youtube] T4XZmMPQ9Kw: Downloading initial data API JSON
[youtube] T4XZmMPQ9Kw: Downloading iframe API JS
[youtube] T4XZmMPQ9Kw: Downloading player ecd4b80a-main
[youtube] T4XZmMPQ9Kw: Downloading web player API JSON
2026-07-08 16:44:49.617048: INFO: Extraction successful for https://www.youtube.com/@KittenAcademy/live.
2026-07-08 16:44:49.617197: WARNING: No formats available for https://www.youtube.com/@KittenAcademy/live.
[debug] Encodings: locale UTF-8, fs utf-8, pref UTF-8, out missing (logger) (No ANSI), error utf-8 (No ANSI), screen missing (logger) (No ANSI)
[debug] yt-dlp version [email protected] from yt-dlp/yt-dlp [821bef0f0] API
[debug] params: {'verbose': True, 'no_warnings': False, 'format': 'all', 'retries': 0, 'fragment_retries': 0, 'logger': <__main__.YTDLLogger object at 0x7f12922a17f0>, 'js_runtimes': {'node': {'exe': 'node'}}, 'extractor_args': {'youtube': {'player_client': ['ios'], 'formats': ['missing_pot'], 'player_skip': ['configs', 'webpage'], 'skip': ['dash', 'translated_subs']}}, 'remote_components': set(), 'compat_opts': set(), 'http_headers': {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/148.0.0.0 Safari/537.36', 'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8', 'Accept-Language': 'en-us,en;q=0.5', 'Sec-Fetch-Mode': 'navigate'}}
[debug] Lazy loading extractors is disabled
[debug] Python 3.12.13 (CPython x86_64 64bit) - Linux-4.4.302+-x86_64-with-glibc2.41 (OpenSSL 3.5.6 7 Apr 2026, glibc 2.41)
[debug] exe versions: none
[debug] Optional libraries: Cryptodome-3.23.0, brotli-1.2.0, certifi-2026.06.17, curl_cffi-0.15.0, mutagen-1.48.1, requests-2.34.2, sqlite3-3.46.1, urllib3-2.7.0, websockets-16.0, yt_dlp_ejs-0.8.0
[debug] JS runtimes: node-24.13.0
[debug] Proxy map: {}
[debug] Request Handlers: urllib, requests, websockets, curl_cffi
[debug] Plugin directories: none
[debug] Loaded 1739 extractors
2026-07-08 16:44:49.798560: INFO: Extracting info from https://www.youtube.com/@KittenAcademy/live...
[youtube:tab] Extracting URL: https://www.youtube.com/@KittenAcademy/live
[youtube:tab] @KittenAcademy/live: Downloading webpage
2026-07-08 16:44:50.680052: INFO: URL redirected to https://www.youtube.com/watch?v=T4XZmMPQ9Kw.
[debug] [youtube] [pot] PO Token Providers: none
[debug] [youtube] [pot] PO Token Cache Providers: memory
[debug] [youtube] [pot] PO Token Cache Spec Providers: webpo
[debug] [youtube] [jsc] JS Challenge Providers: bun (unavailable), deno (unavailable), node, quickjs (unavailable)
[youtube] Extracting URL: https://www.youtube.com/watch?v=T4XZmMPQ9Kw
[youtube] T4XZmMPQ9Kw: Downloading initial data API JSON
[youtube] T4XZmMPQ9Kw: Downloading ios player API JSON
2026-07-08 16:44:51.448191: INFO: Extraction successful for https://www.youtube.com/@KittenAcademy/live.
2026-07-08 16:44:51.448339: WARNING: No formats available for https://www.youtube.com/@KittenAcademy/live.
[info | 2026-07-08 16:44:51,453] - 172.17.0.1 - - [08/Jul/2026 16:44:51] "GET /playlists/streams/stream?url=https://www.youtube.com/@KittenAcademy/live HTTP/1.1" 200 -
2026-07-08 16:44:52.475699: INFO: Starting to retrieve manifest for https://www.youtube.com/@KittenAcademy/live.
[debug] Encodings: locale UTF-8, fs utf-8, pref UTF-8, out missing (logger) (No ANSI), error utf-8 (No ANSI), screen missing (logger) (No ANSI)
[debug] yt-dlp version [email protected] from yt-dlp/yt-dlp [821bef0f0] API
[debug] params: {'verbose': True, 'no_warnings': False, 'format': 'all', 'retries': 0, 'fragment_retries': 0, 'logger': <__main__.YTDLLogger object at 0x7f1291829c70>, 'js_runtimes': {'node': {'exe': 'node'}}, 'extractor_args': {'youtube': {'player_client': ['web_safari'], 'formats': ['missing_pot'], 'player_skip': ['configs', 'webpage'], 'skip': ['dash', 'translated_subs']}}, 'remote_components': set(), 'compat_opts': set(), 'http_headers': {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/148.0.0.0 Safari/537.36', 'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8', 'Accept-Language': 'en-us,en;q=0.5', 'Sec-Fetch-Mode': 'navigate'}}
[debug] Lazy loading extractors is disabled
[debug] Python 3.12.13 (CPython x86_64 64bit) - Linux-4.4.302+-x86_64-with-glibc2.41 (OpenSSL 3.5.6 7 Apr 2026, glibc 2.41)
[debug] exe versions: none
[debug] Optional libraries: Cryptodome-3.23.0, brotli-1.2.0, certifi-2026.06.17, curl_cffi-0.15.0, mutagen-1.48.1, requests-2.34.2, sqlite3-3.46.1, urllib3-2.7.0, websockets-16.0, yt_dlp_ejs-0.8.0
[debug] JS runtimes: node-24.13.0
[debug] Proxy map: {}
[debug] Request Handlers: urllib, requests, websockets, curl_cffi
[debug] Plugin directories: none
[debug] Loaded 1739 extractors
2026-07-08 16:44:52.658042: INFO: Extracting info from https://www.youtube.com/@KittenAcademy/live...
[youtube:tab] Extracting URL: https://www.youtube.com/@KittenAcademy/live
[youtube:tab] @KittenAcademy/live: Downloading webpage
2026-07-08 16:44:53.816815: INFO: URL redirected to https://www.youtube.com/watch?v=T4XZmMPQ9Kw.
[debug] [youtube] [pot] PO Token Providers: none
[debug] [youtube] [pot] PO Token Cache Providers: memory
[debug] [youtube] [pot] PO Token Cache Spec Providers: webpo
[debug] [youtube] [jsc] JS Challenge Providers: bun (unavailable), deno (unavailable), node, quickjs (unavailable)
[youtube] Extracting URL: https://www.youtube.com/watch?v=T4XZmMPQ9Kw
[youtube] T4XZmMPQ9Kw: Downloading initial data API JSON
[youtube] T4XZmMPQ9Kw: Downloading iframe API JS
[youtube] T4XZmMPQ9Kw: Downloading player ecd4b80a-main
[youtube] T4XZmMPQ9Kw: Downloading web safari player API JSON
2026-07-08 16:44:55.228927: INFO: Extraction successful for https://www.youtube.com/@KittenAcademy/live.
2026-07-08 16:44:55.229073: WARNING: No formats available for https://www.youtube.com/@KittenAcademy/live.
[debug] Encodings: locale UTF-8, fs utf-8, pref UTF-8, out missing (logger) (No ANSI), error utf-8 (No ANSI), screen missing (logger) (No ANSI)
[debug] yt-dlp version [email protected] from yt-dlp/yt-dlp [821bef0f0] API
[debug] params: {'verbose': True, 'no_warnings': False, 'format': 'all', 'retries': 0, 'fragment_retries': 0, 'logger': <__main__.YTDLLogger object at 0x7f12936fe120>, 'js_runtimes': {'node': {'exe': 'node'}}, 'extractor_args': {'youtube': {'player_client': ['web'], 'formats': ['missing_pot'], 'player_skip': ['configs', 'webpage'], 'skip': ['dash', 'translated_subs']}}, 'remote_components': set(), 'compat_opts': set(), 'http_headers': {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/148.0.0.0 Safari/537.36', 'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8', 'Accept-Language': 'en-us,en;q=0.5', 'Sec-Fetch-Mode': 'navigate'}}
[debug] Lazy loading extractors is disabled
[debug] Python 3.12.13 (CPython x86_64 64bit) - Linux-4.4.302+-x86_64-with-glibc2.41 (OpenSSL 3.5.6 7 Apr 2026, glibc 2.41)
[debug] exe versions: none
[debug] Optional libraries: Cryptodome-3.23.0, brotli-1.2.0, certifi-2026.06.17, curl_cffi-0.15.0, mutagen-1.48.1, requests-2.34.2, sqlite3-3.46.1, urllib3-2.7.0, websockets-16.0, yt_dlp_ejs-0.8.0
[debug] JS runtimes: node-24.13.0
[debug] Proxy map: {}
[debug] Request Handlers: urllib, requests, websockets, curl_cffi
[debug] Plugin directories: none
[debug] Loaded 1739 extractors
2026-07-08 16:44:55.406633: INFO: Extracting info from https://www.youtube.com/@KittenAcademy/live...
[youtube:tab] Extracting URL: https://www.youtube.com/@KittenAcademy/live
[youtube:tab] @KittenAcademy/live: Downloading webpage
2026-07-08 16:44:56.479374: INFO: URL redirected to https://www.youtube.com/watch?v=T4XZmMPQ9Kw.
[debug] [youtube] [pot] PO Token Providers: none
[debug] [youtube] [pot] PO Token Cache Providers: memory
[debug] [youtube] [pot] PO Token Cache Spec Providers: webpo
[debug] [youtube] [jsc] JS Challenge Providers: bun (unavailable), deno (unavailable), node, quickjs (unavailable)
[youtube] Extracting URL: https://www.youtube.com/watch?v=T4XZmMPQ9Kw
[youtube] T4XZmMPQ9Kw: Downloading initial data API JSON
[youtube] T4XZmMPQ9Kw: Downloading iframe API JS
[youtube] T4XZmMPQ9Kw: Downloading player ecd4b80a-main
[youtube] T4XZmMPQ9Kw: Downloading web player API JSON
2026-07-08 16:44:57.568892: INFO: Extraction successful for https://www.youtube.com/@KittenAcademy/live.
2026-07-08 16:44:57.569036: WARNING: No formats available for https://www.youtube.com/@KittenAcademy/live.
[debug] Encodings: locale UTF-8, fs utf-8, pref UTF-8, out missing (logger) (No ANSI), error utf-8 (No ANSI), screen missing (logger) (No ANSI)
[debug] yt-dlp version [email protected] from yt-dlp/yt-dlp [821bef0f0] API
[debug] params: {'verbose': True, 'no_warnings': False, 'format': 'all', 'retries': 0, 'fragment_retries': 0, 'logger': <__main__.YTDLLogger object at 0x7f129374f5f0>, 'js_runtimes': {'node': {'exe': 'node'}}, 'extractor_args': {'youtube': {'player_client': ['ios'], 'formats': ['missing_pot'], 'player_skip': ['configs', 'webpage'], 'skip': ['dash', 'translated_subs']}}, 'remote_components': set(), 'compat_opts': set(), 'http_headers': {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/148.0.0.0 Safari/537.36', 'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8', 'Accept-Language': 'en-us,en;q=0.5', 'Sec-Fetch-Mode': 'navigate'}}
[debug] Lazy loading extractors is disabled
[debug] Python 3.12.13 (CPython x86_64 64bit) - Linux-4.4.302+-x86_64-with-glibc2.41 (OpenSSL 3.5.6 7 Apr 2026, glibc 2.41)
[debug] exe versions: none
[debug] Optional libraries: Cryptodome-3.23.0, brotli-1.2.0, certifi-2026.06.17, curl_cffi-0.15.0, mutagen-1.48.1, requests-2.34.2, sqlite3-3.46.1, urllib3-2.7.0, websockets-16.0, yt_dlp_ejs-0.8.0
[debug] JS runtimes: node-24.13.0
[debug] Proxy map: {}
[debug] Request Handlers: urllib, requests, websockets, curl_cffi
[debug] Plugin directories: none
[debug] Loaded 1739 extractors
2026-07-08 16:44:57.751620: INFO: Extracting info from https://www.youtube.com/@KittenAcademy/live...
[youtube:tab] Extracting URL: https://www.youtube.com/@KittenAcademy/live
[youtube:tab] @KittenAcademy/live: Downloading webpage
2026-07-08 16:44:58.754984: INFO: URL redirected to https://www.youtube.com/watch?v=T4XZmMPQ9Kw.
[debug] [youtube] [pot] PO Token Providers: none
[debug] [youtube] [pot] PO Token Cache Providers: memory
[debug] [youtube] [pot] PO Token Cache Spec Providers: webpo
[debug] [youtube] [jsc] JS Challenge Providers: bun (unavailable), deno (unavailable), node, quickjs (unavailable)
[youtube] Extracting URL: https://www.youtube.com/watch?v=T4XZmMPQ9Kw
[youtube] T4XZmMPQ9Kw: Downloading initial data API JSON
[youtube] T4XZmMPQ9Kw: Downloading ios player API JSON
2026-07-08 16:44:59.717596: INFO: Extraction successful for https://www.youtube.com/@KittenAcademy/live.
2026-07-08 16:44:59.717781: WARNING: No formats available for https://www.youtube.com/@KittenAcademy/live.
[info | 2026-07-08 16:44:59,721] - 172.17.0.1 - - [08/Jul/2026 16:44:59] "GET /playlists/streams/stream?url=https://www.youtube.com/@KittenAcademy/live HTTP/1.1" 200 -
2026-07-08 16:45:00.870330: INFO: Starting to retrieve manifest for https://www.youtube.com/@KittenAcademy/live.
[debug] Encodings: locale UTF-8, fs utf-8, pref UTF-8, out missing (logger) (No ANSI), error utf-8 (No ANSI), screen missing (logger) (No ANSI)
[debug] yt-dlp version [email protected] from yt-dlp/yt-dlp [821bef0f0] API
[debug] params: {'verbose': True, 'no_warnings': False, 'format': 'all', 'retries': 0, 'fragment_retries': 0, 'logger': <__main__.YTDLLogger object at 0x7f1293838f20>, 'js_runtimes': {'node': {'exe': 'node'}}, 'extractor_args': {'youtube': {'player_client': ['web_safari'], 'formats': ['missing_pot'], 'player_skip': ['configs', 'webpage'], 'skip': ['dash', 'translated_subs']}}, 'remote_components': set(), 'compat_opts': set(), 'http_headers': {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/148.0.0.0 Safari/537.36', 'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8', 'Accept-Language': 'en-us,en;q=0.5', 'Sec-Fetch-Mode': 'navigate'}}
[debug] Lazy loading extractors is disabled
[debug] Python 3.12.13 (CPython x86_64 64bit) - Linux-4.4.302+-x86_64-with-glibc2.41 (OpenSSL 3.5.6 7 Apr 2026, glibc 2.41)
[debug] exe versions: none
[debug] Optional libraries: Cryptodome-3.23.0, brotli-1.2.0, certifi-2026.06.17, curl_cffi-0.15.0, mutagen-1.48.1, requests-2.34.2, sqlite3-3.46.1, urllib3-2.7.0, websockets-16.0, yt_dlp_ejs-0.8.0
[debug] JS runtimes: node-24.13.0
[debug] Proxy map: {}
[debug] Request Handlers: urllib, requests, websockets, curl_cffi
[debug] Plugin directories: none
[debug] Loaded 1739 extractors
2026-07-08 16:45:01.045634: INFO: Extracting info from https://www.youtube.com/@KittenAcademy/live...
[youtube:tab] Extracting URL: https://www.youtube.com/@KittenAcademy/live
[youtube:tab] @KittenAcademy/live: Downloading webpage
2026-07-08 16:45:02.342570: INFO: URL redirected to https://www.youtube.com/watch?v=T4XZmMPQ9Kw.
[debug] [youtube] [pot] PO Token Providers: none
[debug] [youtube] [pot] PO Token Cache Providers: memory
[debug] [youtube] [pot] PO Token Cache Spec Providers: webpo
[debug] [youtube] [jsc] JS Challenge Providers: bun (unavailable), deno (unavailable), node, quickjs (unavailable)
[youtube] Extracting URL: https://www.youtube.com/watch?v=T4XZmMPQ9Kw
[youtube] T4XZmMPQ9Kw: Downloading initial data API JSON
[youtube] T4XZmMPQ9Kw: Downloading iframe API JS
[youtube] T4XZmMPQ9Kw: Downloading player ecd4b80a-main
[youtube] T4XZmMPQ9Kw: Downloading web safari player API JSON
2026-07-08 16:45:03.707441: INFO: Extraction successful for https://www.youtube.com/@KittenAcademy/live.
2026-07-08 16:45:03.707585: WARNING: No formats available for https://www.youtube.com/@KittenAcademy/live.
[debug] Encodings: locale UTF-8, fs utf-8, pref UTF-8, out missing (logger) (No ANSI), error utf-8 (No ANSI), screen missing (logger) (No ANSI)
[debug] yt-dlp version [email protected] from yt-dlp/yt-dlp [821bef0f0] API
[debug] params: {'verbose': True, 'no_warnings': False, 'format': 'all', 'retries': 0, 'fragment_retries': 0, 'logger': <__main__.YTDLLogger object at 0x7f129210e4b0>, 'js_runtimes': {'node': {'exe': 'node'}}, 'extractor_args': {'youtube': {'player_client': ['web'], 'formats': ['missing_pot'], 'player_skip': ['configs', 'webpage'], 'skip': ['dash', 'translated_subs']}}, 'remote_components': set(), 'compat_opts': set(), 'http_headers': {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/148.0.0.0 Safari/537.36', 'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8', 'Accept-Language': 'en-us,en;q=0.5', 'Sec-Fetch-Mode': 'navigate'}}
[debug] Lazy loading extractors is disabled
[debug] Python 3.12.13 (CPython x86_64 64bit) - Linux-4.4.302+-x86_64-with-glibc2.41 (OpenSSL 3.5.6 7 Apr 2026, glibc 2.41)
[debug] exe versions: none
[debug] Optional libraries: Cryptodome-3.23.0, brotli-1.2.0, certifi-2026.06.17, curl_cffi-0.15.0, mutagen-1.48.1, requests-2.34.2, sqlite3-3.46.1, urllib3-2.7.0, websockets-16.0, yt_dlp_ejs-0.8.0
[debug] JS runtimes: node-24.13.0
[debug] Proxy map: {}
[debug] Request Handlers: urllib, requests, websockets, curl_cffi
[debug] Plugin directories: none
[debug] Loaded 1739 extractors
2026-07-08 16:45:03.884720: INFO: Extracting info from https://www.youtube.com/@KittenAcademy/live...
[youtube:tab] Extracting URL: https://www.youtube.com/@KittenAcademy/live
[youtube:tab] @KittenAcademy/live: Downloading webpage
2026-07-08 16:45:04.919762: INFO: URL redirected to https://www.youtube.com/watch?v=T4XZmMPQ9Kw.
[debug] [youtube] [pot] PO Token Providers: none
[debug] [youtube] [pot] PO Token Cache Providers: memory
[debug] [youtube] [pot] PO Token Cache Spec Providers: webpo
[debug] [youtube] [jsc] JS Challenge Providers: bun (unavailable), deno (unavailable), node, quickjs (unavailable)
[youtube] Extracting URL: https://www.youtube.com/watch?v=T4XZmMPQ9Kw
[youtube] T4XZmMPQ9Kw: Downloading initial data API JSON
[youtube] T4XZmMPQ9Kw: Downloading iframe API JS
[youtube] T4XZmMPQ9Kw: Downloading player ecd4b80a-main
[youtube] T4XZmMPQ9Kw: Downloading web player API JSON
2026-07-08 16:45:06.011424: INFO: Extraction successful for https://www.youtube.com/@KittenAcademy/live.
2026-07-08 16:45:06.011571: WARNING: No formats available for https://www.youtube.com/@KittenAcademy/live.
[debug] Encodings: locale UTF-8, fs utf-8, pref UTF-8, out missing (logger) (No ANSI), error utf-8 (No ANSI), screen missing (logger) (No ANSI)
[debug] yt-dlp version [email protected] from yt-dlp/yt-dlp [821bef0f0] API
[debug] params: {'verbose': True, 'no_warnings': False, 'format': 'all', 'retries': 0, 'fragment_retries': 0, 'logger': <__main__.YTDLLogger object at 0x7f129367af60>, 'js_runtimes': {'node': {'exe': 'node'}}, 'extractor_args': {'youtube': {'player_client': ['ios'], 'formats': ['missing_pot'], 'player_skip': ['configs', 'webpage'], 'skip': ['dash', 'translated_subs']}}, 'remote_components': set(), 'compat_opts': set(), 'http_headers': {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/148.0.0.0 Safari/537.36', 'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8', 'Accept-Language': 'en-us,en;q=0.5', 'Sec-Fetch-Mode': 'navigate'}}
[debug] Lazy loading extractors is disabled
[debug] Python 3.12.13 (CPython x86_64 64bit) - Linux-4.4.302+-x86_64-with-glibc2.41 (OpenSSL 3.5.6 7 Apr 2026, glibc 2.41)
[debug] exe versions: none
[debug] Optional libraries: Cryptodome-3.23.0, brotli-1.2.0, certifi-2026.06.17, curl_cffi-0.15.0, mutagen-1.48.1, requests-2.34.2, sqlite3-3.46.1, urllib3-2.7.0, websockets-16.0, yt_dlp_ejs-0.8.0
[debug] JS runtimes: node-24.13.0
[debug] Proxy map: {}
[debug] Request Handlers: urllib, requests, websockets, curl_cffi
[debug] Plugin directories: none
[debug] Loaded 1739 extractors
2026-07-08 16:45:06.190923: INFO: Extracting info from https://www.youtube.com/@KittenAcademy/live...
[youtube:tab] Extracting URL: https://www.youtube.com/@KittenAcademy/live
[youtube:tab] @KittenAcademy/live: Downloading webpage
2026-07-08 16:45:07.066138: INFO: URL redirected to https://www.youtube.com/watch?v=T4XZmMPQ9Kw.
[debug] [youtube] [pot] PO Token Providers: none
[debug] [youtube] [pot] PO Token Cache Providers: memory
[debug] [youtube] [pot] PO Token Cache Spec Providers: webpo
[debug] [youtube] [jsc] JS Challenge Providers: bun (unavailable), deno (unavailable), node, quickjs (unavailable)
[youtube] Extracting URL: https://www.youtube.com/watch?v=T4XZmMPQ9Kw
[youtube] T4XZmMPQ9Kw: Downloading initial data API JSON
[youtube] T4XZmMPQ9Kw: Downloading ios player API JSON
2026-07-08 16:45:08.184706: INFO: Extraction successful for https://www.youtube.com/@KittenAcademy/live.
2026-07-08 16:45:08.184853: WARNING: No formats available for https://www.youtube.com/@KittenAcademy/live.
[info | 2026-07-08 16:45:08,188] - 172.17.0.1 - - [08/Jul/2026 16:45:08] "GET /playlists/streams/stream?url=https://www.youtube.com/@KittenAcademy/live HTTP/1.1" 200 -
2026-07-08 16:45:09.455467: INFO: Starting to retrieve manifest for https://www.youtube.com/@KittenAcademy/live.
[debug] Encodings: locale UTF-8, fs utf-8, pref UTF-8, out missing (logger) (No ANSI), error utf-8 (No ANSI), screen missing (logger) (No ANSI)
[debug] yt-dlp version [email protected] from yt-dlp/yt-dlp [821bef0f0] API
[debug] params: {'verbose': True, 'no_warnings': False, 'format': 'all', 'retries': 0, 'fragment_retries': 0, 'logger': <__main__.YTDLLogger object at 0x7f129182be30>, 'js_runtimes': {'node': {'exe': 'node'}}, 'extractor_args': {'youtube': {'player_client': ['web_safari'], 'formats': ['missing_pot'], 'player_skip': ['configs', 'webpage'], 'skip': ['dash', 'translated_subs']}}, 'remote_components': set(), 'compat_opts': set(), 'http_headers': {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/148.0.0.0 Safari/537.36', 'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8', 'Accept-Language': 'en-us,en;q=0.5', 'Sec-Fetch-Mode': 'navigate'}}
[debug] Lazy loading extractors is disabled
[debug] Python 3.12.13 (CPython x86_64 64bit) - Linux-4.4.302+-x86_64-with-glibc2.41 (OpenSSL 3.5.6 7 Apr 2026, glibc 2.41)
[debug] exe versions: none
[debug] Optional libraries: Cryptodome-3.23.0, brotli-1.2.0, certifi-2026.06.17, curl_cffi-0.15.0, mutagen-1.48.1, requests-2.34.2, sqlite3-3.46.1, urllib3-2.7.0, websockets-16.0, yt_dlp_ejs-0.8.0
[debug] JS runtimes: node-24.13.0
[debug] Proxy map: {}
[debug] Request Handlers: urllib, requests, websockets, curl_cffi
[debug] Plugin directories: none
[debug] Loaded 1739 extractors
2026-07-08 16:45:09.642047: INFO: Extracting info from https://www.youtube.com/@KittenAcademy/live...
[youtube:tab] Extracting URL: https://www.youtube.com/@KittenAcademy/live
[youtube:tab] @KittenAcademy/live: Downloading webpage
2026-07-08 16:45:10.853843: INFO: URL redirected to https://www.youtube.com/watch?v=T4XZmMPQ9Kw.
[debug] [youtube] [pot] PO Token Providers: none
[debug] [youtube] [pot] PO Token Cache Providers: memory
[debug] [youtube] [pot] PO Token Cache Spec Providers: webpo
[debug] [youtube] [jsc] JS Challenge Providers: bun (unavailable), deno (unavailable), node, quickjs (unavailable)
[youtube] Extracting URL: https://www.youtube.com/watch?v=T4XZmMPQ9Kw
[youtube] T4XZmMPQ9Kw: Downloading initial data API JSON
[youtube] T4XZmMPQ9Kw: Downloading iframe API JS
[youtube] T4XZmMPQ9Kw: Downloading player ecd4b80a-main
[youtube] T4XZmMPQ9Kw: Downloading web safari player API JSON
2026-07-08 16:45:11.767396: INFO: Extraction successful for https://www.youtube.com/@KittenAcademy/live.
2026-07-08 16:45:11.767544: WARNING: No formats available for https://www.youtube.com/@KittenAcademy/live.
[debug] Encodings: locale UTF-8, fs utf-8, pref UTF-8, out missing (logger) (No ANSI), error utf-8 (No ANSI), screen missing (logger) (No ANSI)
[debug] yt-dlp version [email protected] from yt-dlp/yt-dlp [821bef0f0] API
[debug] params: {'verbose': True, 'no_warnings': False, 'format': 'all', 'retries': 0, 'fragment_retries': 0, 'logger': <__main__.YTDLLogger object at 0x7f1291626c90>, 'js_runtimes': {'node': {'exe': 'node'}}, 'extractor_args': {'youtube': {'player_client': ['web'], 'formats': ['missing_pot'], 'player_skip': ['configs', 'webpage'], 'skip': ['dash', 'translated_subs']}}, 'remote_components': set(), 'compat_opts': set(), 'http_headers': {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/148.0.0.0 Safari/537.36', 'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8', 'Accept-Language': 'en-us,en;q=0.5', 'Sec-Fetch-Mode': 'navigate'}}
[debug] Lazy loading extractors is disabled
[debug] Python 3.12.13 (CPython x86_64 64bit) - Linux-4.4.302+-x86_64-with-glibc2.41 (OpenSSL 3.5.6 7 Apr 2026, glibc 2.41)
[debug] exe versions: none
[debug] Optional libraries: Cryptodome-3.23.0, brotli-1.2.0, certifi-2026.06.17, curl_cffi-0.15.0, mutagen-1.48.1, requests-2.34.2, sqlite3-3.46.1, urllib3-2.7.0, websockets-16.0, yt_dlp_ejs-0.8.0
[debug] JS runtimes: node-24.13.0
[debug] Proxy map: {}
[debug] Request Handlers: urllib, requests, websockets, curl_cffi
[debug] Plugin directories: none
[debug] Loaded 1739 extractors
2026-07-08 16:45:11.981745: INFO: Extracting info from https://www.youtube.com/@KittenAcademy/live...
[youtube:tab] Extracting URL: https://www.youtube.com/@KittenAcademy/live
[youtube:tab] @KittenAcademy/live: Downloading webpage
2026-07-08 16:45:12.854795: INFO: URL redirected to https://www.youtube.com/watch?v=T4XZmMPQ9Kw.
[debug] [youtube] [pot] PO Token Providers: none
[debug] [youtube] [pot] PO Token Cache Providers: memory
[debug] [youtube] [pot] PO Token Cache Spec Providers: webpo
[debug] [youtube] [jsc] JS Challenge Providers: bun (unavailable), deno (unavailable), node, quickjs (unavailable)
[youtube] Extracting URL: https://www.youtube.com/watch?v=T4XZmMPQ9Kw
[youtube] T4XZmMPQ9Kw: Downloading initial data API JSON
[youtube] T4XZmMPQ9Kw: Downloading iframe API JS
[youtube] T4XZmMPQ9Kw: Downloading player ecd4b80a-main
[youtube] T4XZmMPQ9Kw: Downloading web player API JSON
2026-07-08 16:45:13.883489: INFO: Extraction successful for https://www.youtube.com/@KittenAcademy/live.
2026-07-08 16:45:13.895824: WARNING: No formats available for https://www.youtube.com/@KittenAcademy/live.
[debug] Encodings: locale UTF-8, fs utf-8, pref UTF-8, out missing (logger) (No ANSI), error utf-8 (No ANSI), screen missing (logger) (No ANSI)
[debug] yt-dlp version [email protected] from yt-dlp/yt-dlp [821bef0f0] API
[debug] params: {'verbose': True, 'no_warnings': False, 'format': 'all', 'retries': 0, 'fragment_retries': 0, 'logger': <__main__.YTDLLogger object at 0x7f1293e2b470>, 'js_runtimes': {'node': {'exe': 'node'}}, 'extractor_args': {'youtube': {'player_client': ['ios'], 'formats': ['missing_pot'], 'player_skip': ['configs', 'webpage'], 'skip': ['dash', 'translated_subs']}}, 'remote_components': set(), 'compat_opts': set(), 'http_headers': {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/148.0.0.0 Safari/537.36', 'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8', 'Accept-Language': 'en-us,en;q=0.5', 'Sec-Fetch-Mode': 'navigate'}}
[debug] Lazy loading extractors is disabled
[debug] Python 3.12.13 (CPython x86_64 64bit) - Linux-4.4.302+-x86_64-with-glibc2.41 (OpenSSL 3.5.6 7 Apr 2026, glibc 2.41)
[debug] exe versions: none
[debug] Optional libraries: Cryptodome-3.23.0, brotli-1.2.0, certifi-2026.06.17, curl_cffi-0.15.0, mutagen-1.48.1, requests-2.34.2, sqlite3-3.46.1, urllib3-2.7.0, websockets-16.0, yt_dlp_ejs-0.8.0
[debug] JS runtimes: node-24.13.0
[debug] Proxy map: {}
[debug] Request Handlers: urllib, requests, websockets, curl_cffi
[debug] Plugin directories: none
[debug] Loaded 1739 extractors
2026-07-08 16:45:14.086806: INFO: Extracting info from https://www.youtube.com/@KittenAcademy/live...
[youtube:tab] Extracting URL: https://www.youtube.com/@KittenAcademy/live
[youtube:tab] @KittenAcademy/live: Downloading webpage
2026-07-08 16:45:14.958702: INFO: URL redirected to https://www.youtube.com/watch?v=T4XZmMPQ9Kw.
[debug] [youtube] [pot] PO Token Providers: none
[debug] [youtube] [pot] PO Token Cache Providers: memory
[debug] [youtube] [pot] PO Token Cache Spec Providers: webpo
[debug] [youtube] [jsc] JS Challenge Providers: bun (unavailable), deno (unavailable), node, quickjs (unavailable)
[youtube] Extracting URL: https://www.youtube.com/watch?v=T4XZmMPQ9Kw
[youtube] T4XZmMPQ9Kw: Downloading initial data API JSON
[youtube] T4XZmMPQ9Kw: Downloading ios player API JSON
2026-07-08 16:45:15.718198: INFO: Extraction successful for https://www.youtube.com/@KittenAcademy/live.
2026-07-08 16:45:15.718346: WARNING: No formats available for https://www.youtube.com/@KittenAcademy/live.
[info | 2026-07-08 16:45:15,722] - 172.17.0.1 - - [08/Jul/2026 16:45:15] "GET /playlists/streams/stream?url=https://www.youtube.com/@KittenAcademy/live HTTP/1.1" 200 -
2026-07-08 16:45:17.605305: INFO: Starting to retrieve manifest for https://www.youtube.com/@KittenAcademy/live.
[debug] Encodings: locale UTF-8, fs utf-8, pref UTF-8, out missing (logger) (No ANSI), error utf-8 (No ANSI), screen missing (logger) (No ANSI)
[debug] yt-dlp version [email protected] from yt-dlp/yt-dlp [821bef0f0] API
[debug] params: {'verbose': True, 'no_warnings': False, 'format': 'all', 'retries': 0, 'fragment_retries': 0, 'logger': <__main__.YTDLLogger object at 0x7f12920c9a90>, 'js_runtimes': {'node': {'exe': 'node'}}, 'extractor_args': {'youtube': {'player_client': ['web_safari'], 'formats': ['missing_pot'], 'player_skip': ['configs', 'webpage'], 'skip': ['dash', 'translated_subs']}}, 'remote_components': set(), 'compat_opts': set(), 'http_headers': {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/148.0.0.0 Safari/537.36', 'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8', 'Accept-Language': 'en-us,en;q=0.5', 'Sec-Fetch-Mode': 'navigate'}}
[debug] Lazy loading extractors is disabled
[debug] Python 3.12.13 (CPython x86_64 64bit) - Linux-4.4.302+-x86_64-with-glibc2.41 (OpenSSL 3.5.6 7 Apr 2026, glibc 2.41)
[debug] exe versions: none
[debug] Optional libraries: Cryptodome-3.23.0, brotli-1.2.0, certifi-2026.06.17, curl_cffi-0.15.0, mutagen-1.48.1, requests-2.34.2, sqlite3-3.46.1, urllib3-2.7.0, websockets-16.0, yt_dlp_ejs-0.8.0
[debug] JS runtimes: node-24.13.0
[debug] Proxy map: {}
[debug] Request Handlers: urllib, requests, websockets, curl_cffi
[debug] Plugin directories: none
[debug] Loaded 1739 extractors
2026-07-08 16:45:17.781242: INFO: Extracting info from https://www.youtube.com/@KittenAcademy/live...
[youtube:tab] Extracting URL: https://www.youtube.com/@KittenAcademy/live
[youtube:tab] @KittenAcademy/live: Downloading webpage
2026-07-08 16:45:18.746333: INFO: URL redirected to https://www.youtube.com/watch?v=T4XZmMPQ9Kw.
[debug] [youtube] [pot] PO Token Providers: none
[debug] [youtube] [pot] PO Token Cache Providers: memory
[debug] [youtube] [pot] PO Token Cache Spec Providers: webpo
[debug] [youtube] [jsc] JS Challenge Providers: bun (unavailable), deno (unavailable), node, quickjs (unavailable)
[youtube] Extracting URL: https://www.youtube.com/watch?v=T4XZmMPQ9Kw
[youtube] T4XZmMPQ9Kw: Downloading initial data API JSON
[youtube] T4XZmMPQ9Kw: Downloading iframe API JS
[youtube] T4XZmMPQ9Kw: Downloading player ecd4b80a-main
[youtube] T4XZmMPQ9Kw: Downloading web safari player API JSON
2026-07-08 16:45:19.403035: INFO: Extraction successful for https://www.youtube.com/@KittenAcademy/live.
2026-07-08 16:45:19.403286: WARNING: No formats available for https://www.youtube.com/@KittenAcademy/live.
[debug] Encodings: locale UTF-8, fs utf-8, pref UTF-8, out missing (logger) (No ANSI), error utf-8 (No ANSI), screen missing (logger) (No ANSI)
[debug] yt-dlp version [email protected] from yt-dlp/yt-dlp [821bef0f0] API
[debug] params: {'verbose': True, 'no_warnings': False, 'format': 'all', 'retries': 0, 'fragment_retries': 0, 'logger': <__main__.YTDLLogger object at 0x7f1291627080>, 'js_runtimes': {'node': {'exe': 'node'}}, 'extractor_args': {'youtube': {'player_client': ['web'], 'formats': ['missing_pot'], 'player_skip': ['configs', 'webpage'], 'skip': ['dash', 'translated_subs']}}, 'remote_components': set(), 'compat_opts': set(), 'http_headers': {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/148.0.0.0 Safari/537.36', 'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8', 'Accept-Language': 'en-us,en;q=0.5', 'Sec-Fetch-Mode': 'navigate'}}
[debug] Lazy loading extractors is disabled
[debug] Python 3.12.13 (CPython x86_64 64bit) - Linux-4.4.302+-x86_64-with-glibc2.41 (OpenSSL 3.5.6 7 Apr 2026, glibc 2.41)
[debug] exe versions: none
[debug] Optional libraries: Cryptodome-3.23.0, brotli-1.2.0, certifi-2026.06.17, curl_cffi-0.15.0, mutagen-1.48.1, requests-2.34.2, sqlite3-3.46.1, urllib3-2.7.0, websockets-16.0, yt_dlp_ejs-0.8.0
[debug] JS runtimes: node-24.13.0
[debug] Proxy map: {}
[debug] Request Handlers: urllib, requests, websockets, curl_cffi
[debug] Plugin directories: none
[debug] Loaded 1739 extractors
2026-07-08 16:45:19.580223: INFO: Extracting info from https://www.youtube.com/@KittenAcademy/live...
[youtube:tab] Extracting URL: https://www.youtube.com/@KittenAcademy/live
[youtube:tab] @KittenAcademy/live: Downloading webpage
2026-07-08 16:45:20.492664: INFO: URL redirected to https://www.youtube.com/watch?v=T4XZmMPQ9Kw.
[debug] [youtube] [pot] PO Token Providers: none
[debug] [youtube] [pot] PO Token Cache Providers: memory
[debug] [youtube] [pot] PO Token Cache Spec Providers: webpo
[debug] [youtube] [jsc] JS Challenge Providers: bun (unavailable), deno (unavailable), node, quickjs (unavailable)
[youtube] Extracting URL: https://www.youtube.com/watch?v=T4XZmMPQ9Kw
[youtube] T4XZmMPQ9Kw: Downloading initial data API JSON
[youtube] T4XZmMPQ9Kw: Downloading iframe API JS
[youtube] T4XZmMPQ9Kw: Downloading player ecd4b80a-main
[youtube] T4XZmMPQ9Kw: Downloading web player API JSON
2026-07-08 16:45:21.763935: INFO: Extraction successful for https://www.youtube.com/@KittenAcademy/live.
2026-07-08 16:45:21.764082: WARNING: No formats available for https://www.youtube.com/@KittenAcademy/live.
[debug] Encodings: locale UTF-8, fs utf-8, pref UTF-8, out missing (logger) (No ANSI), error utf-8 (No ANSI), screen missing (logger) (No ANSI)
[debug] yt-dlp version [email protected] from yt-dlp/yt-dlp [821bef0f0] API
[debug] params: {'verbose': True, 'no_warnings': False, 'format': 'all', 'retries': 0, 'fragment_retries': 0, 'logger': <__main__.YTDLLogger object at 0x7f1291982900>, 'js_runtimes': {'node': {'exe': 'node'}}, 'extractor_args': {'youtube': {'player_client': ['ios'], 'formats': ['missing_pot'], 'player_skip': ['configs', 'webpage'], 'skip': ['dash', 'translated_subs']}}, 'remote_components': set(), 'compat_opts': set(), 'http_headers': {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/148.0.0.0 Safari/537.36', 'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8', 'Accept-Language': 'en-us,en;q=0.5', 'Sec-Fetch-Mode': 'navigate'}}
[debug] Lazy loading extractors is disabled
[debug] Python 3.12.13 (CPython x86_64 64bit) - Linux-4.4.302+-x86_64-with-glibc2.41 (OpenSSL 3.5.6 7 Apr 2026, glibc 2.41)
[debug] exe versions: none
[debug] Optional libraries: Cryptodome-3.23.0, brotli-1.2.0, certifi-2026.06.17, curl_cffi-0.15.0, mutagen-1.48.1, requests-2.34.2, sqlite3-3.46.1, urllib3-2.7.0, websockets-16.0, yt_dlp_ejs-0.8.0
[debug] JS runtimes: node-24.13.0
[debug] Proxy map: {}
[debug] Request Handlers: urllib, requests, websockets, curl_cffi
[debug] Plugin directories: none
[debug] Loaded 1739 extractors
2026-07-08 16:45:21.947129: INFO: Extracting info from https://www.youtube.com/@KittenAcademy/live...
[youtube:tab] Extracting URL: https://www.youtube.com/@KittenAcademy/live
[youtube:tab] @KittenAcademy/live: Downloading webpage
2026-07-08 16:45:22.818289: INFO: URL redirected to https://www.youtube.com/watch?v=T4XZmMPQ9Kw.
[debug] [youtube] [pot] PO Token Providers: none
[debug] [youtube] [pot] PO Token Cache Providers: memory
[debug] [youtube] [pot] PO Token Cache Spec Providers: webpo
[debug] [youtube] [jsc] JS Challenge Providers: bun (unavailable), deno (unavailable), node, quickjs (unavailable)
[youtube] Extracting URL: https://www.youtube.com/watch?v=T4XZmMPQ9Kw
[youtube] T4XZmMPQ9Kw: Downloading initial data API JSON
[youtube] T4XZmMPQ9Kw: Downloading ios player API JSON
2026-07-08 16:45:23.606131: INFO: Extraction successful for https://www.youtube.com/@KittenAcademy/live.
2026-07-08 16:45:23.606281: WARNING: No formats available for https://www.youtube.com/@KittenAcademy/live.
[info | 2026-07-08 16:45:23,610] - 172.17.0.1 - - [08/Jul/2026 16:45:23] "GET /playlists/streams/stream?url=https://www.youtube.com/@KittenAcademy/live HTTP/1.1" 200 -
YouTube is on the warpath! They even managed to partially knock out my tier 4 backup option that force combines separate audio and video together.
I'm hopeful that yt-dlp can find an easy solution, but am concerned the real answer is going to be requiring a login, which I don't relish adding. The timing couldn't be better because I'm like 85% of the way through a major YouTube-related update. I'll see if I can get a more stable workaround up, at least for the live stations.
Just an FYI, YouTube is screwing around with rolling changes and A/B testing, so my results and your results stand a good chance of diverging at any various point. For instance, I just tested Kitten Academy Live and it was working with the tier 4 backup option.
Another short-term (or long-term) possibility for the live stations is that you could switch to using the MPEG-TS option (either manually or using managed Streaming Stations. This method uses Streamlink (no relation) instead of yt-dlp, and it appears to be working with no issues for the time being. I do find it to be a tad slower starting the stream, but compared to tier 4, that's not much of a difference.
Also, SmartTube is having no issues whatsoever, so far as I can tell. I've never been able to figure out how they do it and replicate, though, so maybe I'll take another crack at it.
I'm having a lot of hell with getting stuff via ytdl-sub as I had to use a throwaway account AND a throwaway browser to get my cookies. I think having an account is gonna be necessary ON TOP of yt token origin. Uncle G is fighting us like beavers!!
Clever. He took yt-dlp and took it to another level by minting his own PO token using Android WebView.
I changed the m3u url in the Channels DVR source from this
to this, and changed it from an HLS to a MPEG-TS source and it's working so far
http://192.168.1.4:9001/playlists/streams/stream_mpegts?url=https://www.youtube.com/@KittenAcademy/live


