[RELEASE] Watch YouTube, Twitch, Daily Motion, News Websites, and more inside your Channels DVR Client Internal Player!

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.

1 Like

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.

1 Like

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

I just discovered that something happened in a recent update to Streamlink that makes it a viable replacement for static videos, too (tested all the way up to Channels)! It used to reject that before (literally, it would return something like "use yt-dlp for that"), but is actually working now! I'm going to add something so users can switch to using the MPEG-TS method instead of HLS, and that should fix this issue.

I'm curious to see if the MPEG-TS method might work on the Channels Apple TV app, which would certainly be wonderful, but I'm not holding my breath because I'm assuming the ffmpeg issues are going to be the same.

Additionally, I've already built a function so you can turn YouTube videos into Stream Links instead while not having to do any of the manual steps. In other words, they'll stay SLM Streams, but end up as Stream Links so they can be used if any method fails or if a user just wants to use the YouTube or a YouTube-associated app (i.e., SmartTube) instead. This is already available in prerelease and I've been testing to good results.

This will be possible in the next release (also available in prerelease), too!

Sweet! Very much looking forward to this, whenever it's ready.

1 Like

As of v2026.07.28.1543, all of the changes mentioned above and more are ready. Check out the release notes and the Wiki! Suffice to say, the Video / Video Channels bookmarking, metadata retrieval, and playback process has been almost completely revamped.

Also as of this version you could theologically use the Live Stream (HLS) option again, but I recommend sticking with the Live Stream (MPEG-TS) option. It's a touch slower, but much more stable for the long term.

I will be continuing to investigate and develop ways to stabilize and get some performance back, but that's going to put on the backburner for quite a while since all of this is working very well. I'd like to see the helper tools like yt-dlp be moved further along first before I start investing time and effort into trying to work around the current state of things in relation to YouTube.

Thanks, I'll try out the Live Stream (HLS) option again.
The Live Stream (MPEG-TS) option has been working for me, so far :crossed_fingers:

As of v2026.08.21.1518 of Streaming Library Manger, there is a whole new (highly experimental) option to use PO Tokens to retrieve YouTube HLS streams and videos. Complete details are in the release notes and on the Wiki, but the good news is that:

  • The current method of grabbing YouTube HLS streams still works, as does the MPEG-TS one.
  • The optional new method also works and provides another future proof point in case the current method goes down.
  • The optional new method restores the ability to play YouTube static videos in the Channels DVR and other clients. There are some limitations specific to Channels DVR clients that are discussed in the notes and Wiki. Nothing I can do until the Devs address the core issues in the clients.
  • There are now even more backup options for getting streams and videos in general, even ones with separate video and audio feeds and combining them together.