[RELEASE] Stream Link/File Manager for Channels [Streaming Library Manager Extension]

Be sure to read through the Wiki, especially Troubleshooting and FAQ as these items are covered there.

If you are looking for specific help around what changes/mapping to the deep links MGM+ might need to work on Apple TV, that would be a fair question that someone else may be able to answer. I did a quick AI-assisted search to give you some promising avenues to explore:

Yes it was; when you trash something in Channels, the next time you import updates from there to SLM, those programs will be marked as "watched". Again, see details in the Wiki.

Hi all, I am bit late to the party using SLM and it has been working great! I am however having issues with Fandango At Home purchased Movies/TV shows not loading on the app and rather using a web browser. There was some discussion of this in the thread but I didn’t see a solution. Anyone know how to set this up to open app vs web browser? On the Apple TV it doesn’t action anything. I am guessing since there is no web browser to utilize it just doesn’t do anything. Here is an example of one of my links:

https://athome.fandango.com/content/browse/details/ItstheGreatPumpkinCharlieBrown/133980?cid=share&scid=ios&kwid=133980

I've come to the conclusion that some apps on some devices simply don't launch via a valid Stream Link file. If you don't find a solution, my workaround has been to take advantage of Channels tracking what I want to watch and launching the app manually via a button on my remote or simply navigating to it. After watching I delete the Stream Link from channels. It's still great to be able to keep track of all your content in one place.

I have been using this for YouTube live channels, and it was working great until a few days ago. Updated SLM, ChannelsDVR, multiple reboots, still not working. Any other ideas? [Using OliveTin to Host YouTube Live Channel URLs Based on the Kister Method - #126 by chDVRuser]

@lute7000
I'm doing something similar, so I have 35 live streams configured in SLM...


Have you tried to play/load that m3u URL into something like VLC to see if the streams play?
A few weeks ago, Youtube did some config change and it killed my ability to play the live streams, but the SLM dev worked his magic and fixed it... check the closed issues in the Github SLM page and you should be able to find the write up...
Anyway, as I said, I am currently playing the live streams via VLC and a few other iptv players...
Oh, and check to see if maybe the link to the web cam changed...although you've probably already did this...
This will hopefully narrow down to whether it's and incoming issue (from YT), or outgoing to the player...

Yes, I applied that fix a few weeks ago, and it had been working great. Unfortunately, it appears to be broken again. My current links no longer work in VLC either. I am using chDVRuser's recommendations as shown in this link: Using OliveTin to Host YouTube Live Channel URLs Based on the Kister Method - #126 by chDVRuser Here is an example from that post:

They're still working for me with SLM.

#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
#EXTINF:-1 channel-id="KAL2" tvg-id="KAL2" channel-number="2" tvg-chno="2" tvg-name="Kitten Academy Live 2" tvc-guide-title="Kitten Academy Live 2" tvc-guide-description="Kitten Academy Live 2",Kitten Academy Live 2
http://192.168.1.4:9001/playlists/streams/youtubelive?url=https://www.youtube.com/@KittenAcademy/live

Maybe you're talking about other YouTube Live channels that we're not using.
Did you check the YouTube page to see if the Live stream works and if there's more than one Live?
Are you using the @Name in the url?

Without knowing the url's you're using, your settings and the error in the DVR log, we can only give you as general an idea as the info you give us.

1 Like

You should be on v2026.03.17.1101 of SLM by now. If you're not, you're going to have issues with YouTube videos and streams. The past 5 releases have all contained updates to the video streaming sub-tool because this a very active whack-a-mole fight! As such, you need to stay up to date.

Thanks for advising me to check logs in SLM. There is a cookies/authorization issue. I have been researching for a few hours how to fix this, and I am not figuring it out. I use ChannelsDVR and SLM as Docker containers on a NAS with Nvidia Shield. All Youtube live channels were working great last week. Here are the error logs:

Here is one of the channels I am using (no change to code for weeks - was working okay last week):

Looks like their anti-bot detector is playing bad cop now. Will need to find a way around ... @babsonnexus happy to take a shot at it if you want

edit- I did anyway. Of course, that YT link user had issue with worked fine for me without any anti-bot measures. I wonder if it'd be as simple as opening youtube.com on a browser on the same server that SLM is on would then allow user to manually clean anti-bot test? just a theory.

1 Like

Checking is unnecessary, I tested myself earlier. I'm 99.9% convinced either the the user is on the wrong version of SLM or their specific IP address has been banned by YouTube and they need a new one. Otherwise, the error they are showing in their logs has already been corrected.

There is a small chance of something being wrong with Node.js in the Docker version. If others with Docker could open a stream and then get me their SLM logs I can see if something pops up. A success looks like this:

2026-03-20 14:14:45.101242:  INFO: Starting to retrieve manifest for https://www.youtube.com/@KittenAcademy/live.
[debug] Encodings: locale cp1252, fs utf-8, pref cp1252, out missing (logger) (No ANSI), error utf-8, screen missing (logger) (No ANSI)
[debug] yt-dlp version [email protected] from yt-dlp/yt-dlp [04d6974f5] (win_exe) API
[debug] params: {'verbose': True, 'no_warnings': False, 'format': 'all', 'retries': 0, 'fragment_retries': 0, 'logger': <__main__.YTDLLogger object at 0x0000020CF0EE5210>, '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/140.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.11.5 (CPython AMD64 64bit) - Windows-10-10.0.19045-SP0 (OpenSSL 3.0.9 30 May 2023)
[debug] exe versions: ffmpeg 6.0-full_build-www.gyan.dev (setts), ffprobe 6.0-full_build-www.gyan.dev
[debug] Optional libraries: Cryptodome-3.23.0, brotli-1.2.0, certifi-2026.02.25, curl_cffi-0.14.0, mutagen-1.47.0, requests-2.32.5, sqlite3-3.42.0, urllib3-2.6.3, 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 1864 extractors
2026-03-20 14:14:46.142227:  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-03-20 14:14:47.217288:  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 1ebf2aa6-main
[youtube] T4XZmMPQ9Kw: Downloading web safari player API JSON
[youtube] [jsc:node] Solving JS challenges using node
[debug] [youtube] [jsc:node] Using challenge solver lib script v0.8.0 (source: python package, variant: minified)
[debug] [youtube] [jsc:node] Using challenge solver core script v0.8.0 (source: python package, variant: minified)
[debug] [youtube] [jsc:node] Running node: 'C:\Program Files\nodejs\node.EXE' --permission -
[WARNING] [youtube] Unable to fetch GVS PO Token for web_safari client: Missing required Visitor Data. You may need to pass Visitor Data with --extractor-args "youtube:visitor_data=XXX"
[youtube] T4XZmMPQ9Kw: Downloading m3u8 information
2026-03-20 14:14:49.434212:  INFO: Extraction successful for https://www.youtube.com/@KittenAcademy/live.
2026-03-20 14:14:49.434212:  INFO: Found 6 formats.
2026-03-20 14:14:49.435221:  INFO: Best format URL found using m3u8: https://manifest.googlevideo.com/api/manifest/hls_playlist/expire/1774052089/ei/mY69afCECcOb0_wPgc276A4/ip/108.34.174.33/id/T4XZmMPQ9Kw.4/itag/96/source/yt_live_broadcast/requiressl/yes/ratebypass/yes/live/1/sgoap/gir%3Dyes%3Bitag%3D140/sgovp/gir%3Dyes%3Bitag%3D137/rqh/1/hls_chunk_host/rr1---sn-8xgp1vo-cvnd.googlevideo.com/xpc/EgVo2aDSNQ%3D%3D/playlist_duration/30/manifest_duration/30/bui/AVNa5-zl5ZpIzuuuFyTCRHqKjmYs0SbnN9RIL9eCI5qEQpnNxEOtel5emcZMS63SzGkyZmXPQqECyjt9/spc/6dlaFJcr4NbFWNLgRnTXabh9uVoSDbjgTflPrtvKy5QZoaxnd3DacWt51Bc8vh0kKP07Rw/vprv/1/ns/qMqjbRbCaOrXMb8kx8tDZRgT/reg/0/playlist_type/DVR/initcwndbps/4288750/met/1774030490,/mh/8f/mm/44/mn/sn-8xgp1vo-cvnd/ms/lva/mv/m/mvi/1/pl/17/rms/lva,lva/dover/11/pacing/0/keepalive/yes/fexp/51565115,51565681,51791334/n/HdcUpQQDor0GEQ/mt/1774030139/sparams/expire,ei,ip,id,itag,source,requiressl,ratebypass,live,sgoap,sgovp,rqh,xpc,playlist_duration,manifest_duration,bui,spc,vprv,ns,reg,playlist_type/sig/AHEqNM4wRQIgOhvHhbiATeFBqPxnJW6_cYxt51gNSViqie_OH001OrQCIQCqNfX8L-GEhyrBfsBYWnQ0xvOxA-zX0DPrfXPsQ5lqTw%3D%3D/lsparams/hls_chunk_host,initcwndbps,met,mh,mm,mn,ms,mv,mvi,pl,rms/lsig/APaTxxMwRQIgCm-mloqYRS4Y3XtBxO6U5xXDQ_VAt3C5JRCp4aovA2ICIQCMs876CTzQwgCgSP5HF901kfBRr77fFsumulYWvji03w%3D%3D/playlist/index.m3u8
[info | 2026-03-20 14:14:49,437] - 10.255.1.144 - - [20/Mar/2026 14:14:49] "GET /playlists/streams/stream?url=https://www.youtube.com/@KittenAcademy/live HTTP/1.1" 200 -

Anything with a deviation might be an issue.

@babsonnexus youtube live streams added to SLM... running podman/Linux... feeding to vlc for now...
Streams are playing... however... quite a few youtube errors in my logs...
Not sure if you can use it...

[streamlink2] 2026-03-20T09:07:20.202849000-10:00 [debug] Plugin directories: none
[streamlink2] 2026-03-20T09:07:20.202886000-10:00 [debug] Loaded 1864 extractors
[streamlink2] 2026-03-20T09:07:20.202923000-10:00 2026-03-20 09:07:17.674064:  INFO: Extracting info from https://www.youtube.com/watch?v=Gd9d4q6WvUY...
[streamlink2] 2026-03-20T09:07:20.202972000-10:00 [debug] [youtube] [pot] PO Token Providers: none
[streamlink2] 2026-03-20T09:07:20.203010000-10:00 [debug] [youtube] [pot] PO Token Cache Providers: memory
[streamlink2] 2026-03-20T09:07:20.203047000-10:00 [debug] [youtube] [pot] PO Token Cache Spec Providers: webpo
[streamlink2] 2026-03-20T09:07:20.203084000-10:00 [debug] [youtube] [jsc] JS Challenge Providers: bun (unavailable), deno (unavailable), node, quickjs (unavailable)
[streamlink2] 2026-03-20T09:07:20.203116000-10:00 [youtube] Extracting URL: https://www.youtube.com/watch?v=Gd9d4q6WvUY
[streamlink2] 2026-03-20T09:07:20.203155000-10:00 [youtube] Gd9d4q6WvUY: Downloading initial data API JSON
[streamlink2] 2026-03-20T09:07:20.203188000-10:00 [youtube] Gd9d4q6WvUY: Downloading iframe API JS
[streamlink2] 2026-03-20T09:07:20.203226000-10:00 [youtube] Gd9d4q6WvUY: Downloading player 1ebf2aa6-tv
[streamlink2] 2026-03-20T09:07:20.203268000-10:00 [youtube] Gd9d4q6WvUY: Downloading web safari player API JSON
[streamlink2] 2026-03-20T09:07:20.203305000-10:00 [youtube] [jsc:node] Solving JS challenges using node
[streamlink2] 2026-03-20T09:07:20.203341000-10:00 [debug] [youtube] [jsc:node] Using challenge solver lib script v0.7.0 (source: python package, variant: minified)
[streamlink2] 2026-03-20T09:07:20.203376000-10:00 [debug] [youtube] [jsc:node] Using challenge solver core script v0.7.0 (source: python package, variant: minified)
[streamlink2] 2026-03-20T09:07:20.203409000-10:00 [debug] [youtube] [jsc:node] Running node: node --permission -
[streamlink2] 2026-03-20T09:07:20.203450000-10:00 [WARNING] [youtube] [jsc] Error solving n challenge request using "node" provider: Error running node process (returncode: 1): <anonymous_script>:22962
[streamlink2] 2026-03-20T09:07:20.203483000-10:00   var A8_ = self.location.origin + "/";
[streamlink2] 2026-03-20T09:07:20.203528000-10:00                           ^
[streamlink2] 2026-03-20T09:07:20.203567000-10:00 
[streamlink2] 2026-03-20T09:07:20.203620000-10:00 TypeError: Cannot read properties of undefined (reading 'origin')
[streamlink2] 2026-03-20T09:07:20.203657000-10:00     at eval (eval at <anonymous> ([stdin]:58:6208), <anonymous>:22962:27)
[streamlink2] 2026-03-20T09:07:20.203689000-10:00     at eval (eval at <anonymous> ([stdin]:58:6208), <anonymous>:89615:4)
[streamlink2] 2026-03-20T09:07:20.203726000-10:00     at [stdin]:58:6229
[streamlink2] 2026-03-20T09:07:20.203758000-10:00     at [stdin]:58:6235
[streamlink2] 2026-03-20T09:07:20.203794000-10:00     at [stdin]:59:36
[streamlink2] 2026-03-20T09:07:20.203832000-10:00     at runScriptInThisContext (node:internal/vm:219:10)
[streamlink2] 2026-03-20T09:07:20.203869000-10:00     at node:internal/process/execution:451:12
[streamlink2] 2026-03-20T09:07:20.203897000-10:00     at [stdin]-wrapper:6:24
[streamlink2] 2026-03-20T09:07:20.203936000-10:00     at runScriptInContext (node:internal/process/execution:449:60)
[streamlink2] 2026-03-20T09:07:20.203970000-10:00     at evalFunction (node:internal/process/execution:283:30).
[streamlink2] 2026-03-20T09:07:20.204002000-10:00          input = NChallengeInput(player_url='https://www.youtube.com/s/player/1ebf2aa6/tv-player-ias.vflset/tv-player-ias.js', challenges=['H9qeEeDrohl8KctM', 'kmUkjVoyC_eNfbcJ', 'UzpEWIpiGJ8JU9_1'])
[streamlink2] 2026-03-20T09:07:20.204051000-10:00          Please report this issue on  https://github.com/yt-dlp/yt-dlp/issues?q= , filling out the appropriate issue template. Confirm you are on the latest version using  yt-dlp -U
[streamlink2] 2026-03-20T09:07:20.204090000-10:00 [WARNING] [youtube] Gd9d4q6WvUY: n challenge solving failed: Some formats may be missing. Ensure you have a supported JavaScript runtime and challenge solver script distribution installed. Review any warnings presented before this message. For more details, refer to  https://github.com/yt-dlp/yt-dlp/wiki/EJS
[streamlink2] 2026-03-20T09:07:20.204132000-10:00 [WARNING] [youtube] Unable to fetch GVS PO Token for web_safari client: Missing required Visitor Data. You may need to pass Visitor Data with --extractor-args "youtube:visitor_data=XXX"
[streamlink2] 2026-03-20T09:07:20.204173000-10:00 2026-03-20 09:07:20.146739:  INFO: Extraction successful for https://www.youtube.com/watch?v=Gd9d4q6WvUY.
[streamlink2] 2026-03-20T09:07:20.204215000-10:00 2026-03-20 09:07:20.146765:  WARNING: No formats available for https://www.youtube.com/watch?v=Gd9d4q6WvUY.
[streamlink2] 2026-03-20T09:07:20.204260000-10:00 [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)
[streamlink2] 2026-03-20T09:07:20.204300000-10:00 [debug] yt-dlp version [email protected] from yt-dlp/yt-dlp [92f1d99db] API
[streamlink2] 2026-03-20T09:07:20.204334000-10:00 [debug] params: {'verbose': True, 'no_warnings': False, 'format': 'all', 'retries': 0, 'fragment_retries': 0, 'logger': <__main__.YTDLLogger object at 0x7f5b4baf7440>, '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/138.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'}}
[streamlink2] 2026-03-20T09:07:20.204385000-10:00 [debug] Lazy loading extractors is disabled
[streamlink2] 2026-03-20T09:07:20.204413000-10:00 [debug] Python 3.12.13 (CPython x86_64 64bit) - Linux-6.19.8-200.fc43.x86_64-x86_64-with-glibc2.41 (OpenSSL 3.5.5 27 Jan 2026, glibc 2.41)
[streamlink2] 2026-03-20T09:07:20.204455000-10:00 [debug] exe versions: none
[streamlink2] 2026-03-20T09:07:20.204487000-10:00 [debug] Optional libraries: Cryptodome-3.23.0, brotli-1.2.0, certifi-2026.02.25, curl_cffi-0.14.0, mutagen-1.47.0, requests-2.32.5, sqlite3-3.46.1, urllib3-2.6.3, websockets-16.0, yt_dlp_ejs-0.7.0
[streamlink2] 2026-03-20T09:07:20.204531000-10:00 [debug] JS runtimes: node-24.14.0
[streamlink2] 2026-03-20T09:07:20.204569000-10:00 [debug] Proxy map: {}
[streamlink2] 2026-03-20T09:07:20.204609000-10:00 [debug] Request Handlers: urllib, requests, websockets, curl_cffi
[streamlink2] 2026-03-20T09:07:20.204649000-10:00 [debug] Plugin directories: none
[streamlink2] 2026-03-20T09:07:20.204687000-10:00 [debug] Loaded 1864 extractors
[streamlink2] 2026-03-20T09:07:20.204725000-10:00 2026-03-20 09:07:20.198701:  INFO: Extracting info from https://www.youtube.com/watch?v=Gd9d4q6WvUY...
[streamlink2] 2026-03-20T09:07:20.204760000-10:00 [debug] [youtube] [pot] PO Token Providers: none
[streamlink2] 2026-03-20T09:07:20.204792000-10:00 [debug] [youtube] [pot] PO Token Cache Providers: memory
[streamlink2] 2026-03-20T09:07:20.204824000-10:00 [debug] [youtube] [pot] PO Token Cache Spec Providers: webpo
[streamlink2] 2026-03-20T09:07:20.204856000-10:00 [debug] [youtube] [jsc] JS Challenge Providers: bun (unavailable), deno (unavailable), node, quickjs (unavailable)
[streamlink2] 2026-03-20T09:07:20.204893000-10:00 [youtube] Extracting URL: https://www.youtube.com/watch?v=Gd9d4q6WvUY
[streamlink2] 2026-03-20T09:07:20.204930000-10:00 [youtube] Gd9d4q6WvUY: Downloading initial data API JSON

image

@babsonnexus Follow-up... I ahve 35 live streams... vlc plays one for about a minute or so, then it freezes/times out and move to the next stream... it's been doing it for about 13 streams now...

Update: I can get my streams to run without stopping now...
I just noticed that you are running a newer version of yt-dlp than me... could this be related?

How hard would it be to have SLM auto-update yt-dlp like Pinchflat does?
Pinchflat 2025.9.26 (Releases · kieraneglin/pinchflat · GitHub)
keeps yt-dlp auto updated (currently 2026.03.17) without having to build a new container.

Could be, like I said, whack-a-mole. If you update the Image, it will always install the bleeding age, which is why I'm newer. I actually did a silent upgrade for Windows this morning to make sure it had the latest (no version change). I have more I need to investigate, though, on the Docker side. There was a Node.js update on March 10 that I think might be more the problem based on your logs and a quick test of my own that I did.

Without looking, I'm going to say for Docker it would probably be technically possible, but for Windows it would not, at least not how I currently have SLM built. And going down two separate development paths for them is not in the cards!

Tier 3 backup has been working in all cases, so I'm not in a rush to do something that massive. I suppose in a perfect world I'd build it like Channel's Docker, where the Image is just a shell for running the program, so no updates of the Container would be needed, but that's only happening in an alternate universe right now!

1 Like

Put this at the bottom of your to-do-list...
Remember, I'm running Linux/Podman...
I did a stop, update and start...
yt-dlp did not update...
I went into the shell...

Here you go.
Latest SLM (v2026.03.17.1101 with yt-dlp version [email protected])
Streaming Kitten Academy from CDVR works, even though errors appear in the SLM log

SLM log
2026-03-20T21:50:29.012733744Z [debug] Lazy loading extractors is disabled
2026-03-20T21:50:29.013226843Z [debug] Python 3.12.13 (CPython x86_64 64bit) - Linux-4.4.302+-x86_64-with-glibc2.41 (OpenSSL 3.5.5 27 Jan 2026, glibc 2.41)
2026-03-20T21:50:29.013317457Z [debug] exe versions: none
2026-03-20T21:50:29.013362017Z [debug] Optional libraries: Cryptodome-3.23.0, brotli-1.2.0, certifi-2026.02.25, curl_cffi-0.14.0, mutagen-1.47.0, requests-2.32.5, sqlite3-3.46.1, urllib3-2.6.3, websockets-16.0, yt_dlp_ejs-0.7.0
2026-03-20T21:50:29.013432045Z [debug] JS runtimes: node-24.14.0
2026-03-20T21:50:29.013476781Z [debug] Proxy map: {}
2026-03-20T21:50:29.013516655Z [debug] Request Handlers: urllib, requests, websockets, curl_cffi
2026-03-20T21:50:29.013645053Z [debug] Plugin directories: none
2026-03-20T21:50:29.013690056Z [debug] Loaded 1864 extractors
2026-03-20T21:50:29.013731750Z 2026-03-20 14:50:20.789876:  INFO: Extracting info from https://www.youtube.com/@KittenAcademy/live...
2026-03-20T21:50:29.013787006Z [youtube:tab] Extracting URL: https://www.youtube.com/@KittenAcademy/live
2026-03-20T21:50:29.013852560Z [youtube:tab] @KittenAcademy/live: Downloading webpage
2026-03-20T21:50:29.013896719Z 2026-03-20 14:50:21.714423:  INFO: URL redirected to https://www.youtube.com/watch?v=T4XZmMPQ9Kw.
2026-03-20T21:50:29.013945606Z [debug] [youtube] [pot] PO Token Providers: none
2026-03-20T21:50:29.013989614Z [debug] [youtube] [pot] PO Token Cache Providers: memory
2026-03-20T21:50:29.014036289Z [debug] [youtube] [pot] PO Token Cache Spec Providers: webpo
2026-03-20T21:50:29.014079959Z [debug] [youtube] [jsc] JS Challenge Providers: bun (unavailable), deno (unavailable), node, quickjs (unavailable)
2026-03-20T21:50:29.014128861Z [youtube] Extracting URL: https://www.youtube.com/watch?v=T4XZmMPQ9Kw
2026-03-20T21:50:29.014171364Z [youtube] T4XZmMPQ9Kw: Downloading initial data API JSON
2026-03-20T21:50:29.014216525Z [youtube] T4XZmMPQ9Kw: Downloading iframe API JS
2026-03-20T21:50:29.014258502Z [youtube] T4XZmMPQ9Kw: Downloading player 1ebf2aa6-tv
2026-03-20T21:50:29.014357522Z [youtube] T4XZmMPQ9Kw: Downloading web safari player API JSON
2026-03-20T21:50:29.014401917Z [youtube] [jsc:node] Solving JS challenges using node
2026-03-20T21:50:29.014450733Z [debug] [youtube] [jsc:node] Using challenge solver lib script v0.7.0 (source: python package, variant: minified)
2026-03-20T21:50:29.014502988Z [debug] [youtube] [jsc:node] Using challenge solver core script v0.7.0 (source: python package, variant: minified)
2026-03-20T21:50:29.014551205Z [debug] [youtube] [jsc:node] Running node: node --permission -
2026-03-20T21:50:29.014595634Z [WARNING] [youtube] [jsc] Error solving n challenge request using "node" provider: Error running node process (returncode: 1): <anonymous_script>:22962
2026-03-20T21:50:29.014660426Z   var A8_ = self.location.origin + "/";
2026-03-20T21:50:29.014710991Z                           ^
2026-03-20T21:50:29.014748274Z 
2026-03-20T21:50:29.014796279Z TypeError: Cannot read properties of undefined (reading 'origin')
2026-03-20T21:50:29.014844723Z     at eval (eval at <anonymous> ([stdin]:58:6208), <anonymous>:22962:27)
2026-03-20T21:50:29.014896593Z     at eval (eval at <anonymous> ([stdin]:58:6208), <anonymous>:89615:4)
2026-03-20T21:50:29.014941743Z     at [stdin]:58:6229
2026-03-20T21:50:29.014981409Z     at [stdin]:58:6235
2026-03-20T21:50:29.015020402Z     at [stdin]:59:36
2026-03-20T21:50:29.015060172Z     at runScriptInThisContext (node:internal/vm:219:10)
2026-03-20T21:50:29.015104017Z     at node:internal/process/execution:451:12
2026-03-20T21:50:29.015146929Z     at [stdin]-wrapper:6:24
2026-03-20T21:50:29.015187539Z     at runScriptInContext (node:internal/process/execution:449:60)
2026-03-20T21:50:29.015235427Z     at evalFunction (node:internal/process/execution:283:30).
2026-03-20T21:50:29.015279967Z          input = NChallengeInput(player_url='https://www.youtube.com/s/player/1ebf2aa6/tv-player-ias.vflset/tv-player-ias.js', challenges=['r0HzNK0gw3mHwABC', 'Mg975Y0_7jWPIdp_', 'RBHqjQUNR3OWpo54'])
2026-03-20T21:50:29.015335757Z          Please report this issue on  https://github.com/yt-dlp/yt-dlp/issues?q= , filling out the appropriate issue template. Confirm you are on the latest version using  yt-dlp -U
2026-03-20T21:50:29.015406169Z [WARNING] [youtube] T4XZmMPQ9Kw: n challenge solving failed: Some formats may be missing. Ensure you have a supported JavaScript runtime and challenge solver script distribution installed. Review any warnings presented before this message. For more details, refer to  https://github.com/yt-dlp/yt-dlp/wiki/EJS
2026-03-20T21:50:29.015482682Z [WARNING] [youtube] Unable to fetch GVS PO Token for web_safari client: Missing required Visitor Data. You may need to pass Visitor Data with --extractor-args "youtube:visitor_data=XXX"
2026-03-20T21:50:29.015547575Z 2026-03-20 14:50:24.707573:  INFO: Extraction successful for https://www.youtube.com/@KittenAcademy/live.
2026-03-20T21:50:29.015596498Z 2026-03-20 14:50:24.707717:  WARNING: No formats available for https://www.youtube.com/@KittenAcademy/live.
2026-03-20T21:50:29.015645094Z [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)
2026-03-20T21:50:29.015700995Z [debug] yt-dlp version [email protected] from yt-dlp/yt-dlp [92f1d99db] API
2026-03-20T21:50:29.015749812Z [debug] params: {'verbose': True, 'no_warnings': False, 'format': 'all', 'retries': 0, 'fragment_retries': 0, 'logger': <__main__.YTDLLogger object at 0x7f976b9679e0>, '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/139.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'}}
2026-03-20T21:50:29.015882134Z [debug] Lazy loading extractors is disabled
2026-03-20T21:50:29.015929185Z [debug] Python 3.12.13 (CPython x86_64 64bit) - Linux-4.4.302+-x86_64-with-glibc2.41 (OpenSSL 3.5.5 27 Jan 2026, glibc 2.41)
2026-03-20T21:50:29.015976926Z [debug] exe versions: none
2026-03-20T21:50:29.016044335Z [debug] Optional libraries: Cryptodome-3.23.0, brotli-1.2.0, certifi-2026.02.25, curl_cffi-0.14.0, mutagen-1.47.0, requests-2.32.5, sqlite3-3.46.1, urllib3-2.6.3, websockets-16.0, yt_dlp_ejs-0.7.0
2026-03-20T21:50:29.016096235Z [debug] JS runtimes: node-24.14.0
2026-03-20T21:50:29.016136325Z [debug] Proxy map: {}
2026-03-20T21:50:29.016175262Z [debug] Request Handlers: urllib, requests, websockets, curl_cffi
2026-03-20T21:50:29.016216176Z [debug] Plugin directories: none
2026-03-20T21:50:29.016255579Z [debug] Loaded 1864 extractors
2026-03-20T21:50:29.016297882Z 2026-03-20 14:50:24.903907:  INFO: Extracting info from https://www.youtube.com/@KittenAcademy/live...
2026-03-20T21:50:29.016345961Z [youtube:tab] Extracting URL: https://www.youtube.com/@KittenAcademy/live
2026-03-20T21:50:29.016390147Z [youtube:tab] @KittenAcademy/live: Downloading webpage
2026-03-20T21:50:29.016430887Z 2026-03-20 14:50:25.923929:  INFO: URL redirected to https://www.youtube.com/watch?v=T4XZmMPQ9Kw.
2026-03-20T21:50:29.016476550Z [debug] [youtube] [pot] PO Token Providers: none
2026-03-20T21:50:29.016519703Z [debug] [youtube] [pot] PO Token Cache Providers: memory
2026-03-20T21:50:29.016561174Z [debug] [youtube] [pot] PO Token Cache Spec Providers: webpo
2026-03-20T21:50:29.016603575Z [debug] [youtube] [jsc] JS Challenge Providers: bun (unavailable), deno (unavailable), node, quickjs (unavailable)
2026-03-20T21:50:29.016654872Z [youtube] Extracting URL: https://www.youtube.com/watch?v=T4XZmMPQ9Kw
2026-03-20T21:50:29.016697999Z [youtube] T4XZmMPQ9Kw: Downloading initial data API JSON
2026-03-20T21:50:29.016743811Z [youtube] T4XZmMPQ9Kw: Downloading iframe API JS
2026-03-20T21:50:29.016783705Z [youtube] T4XZmMPQ9Kw: Downloading player 1ebf2aa6-tv
2026-03-20T21:50:29.016833242Z [youtube] T4XZmMPQ9Kw: Downloading web player API JSON
2026-03-20T21:50:29.016879040Z [youtube] [jsc:node] Solving JS challenges using node
2026-03-20T21:50:29.016921666Z [debug] [youtube] [jsc:node] Using challenge solver lib script v0.7.0 (source: python package, variant: minified)
2026-03-20T21:50:29.016968494Z [debug] [youtube] [jsc:node] Using challenge solver core script v0.7.0 (source: python package, variant: minified)
2026-03-20T21:50:29.017014657Z [debug] [youtube] [jsc:node] Running node: node --permission -
2026-03-20T21:50:29.017056586Z [WARNING] [youtube] [jsc] Error solving n challenge request using "node" provider: Error running node process (returncode: 1): <anonymous_script>:22962
2026-03-20T21:50:29.017109404Z   var A8_ = self.location.origin + "/";
2026-03-20T21:50:29.017150578Z                           ^
2026-03-20T21:50:29.017190283Z 
2026-03-20T21:50:29.017226281Z TypeError: Cannot read properties of undefined (reading 'origin')
2026-03-20T21:50:29.017268651Z     at eval (eval at <anonymous> ([stdin]:58:6208), <anonymous>:22962:27)
2026-03-20T21:50:29.017312508Z     at eval (eval at <anonymous> ([stdin]:58:6208), <anonymous>:89615:4)
2026-03-20T21:50:29.017355538Z     at [stdin]:58:6229
2026-03-20T21:50:29.017395565Z     at [stdin]:58:6235
2026-03-20T21:50:29.017435913Z     at [stdin]:59:36
2026-03-20T21:50:29.017473315Z     at runScriptInThisContext (node:internal/vm:219:10)
2026-03-20T21:50:29.017514119Z     at node:internal/process/execution:451:12
2026-03-20T21:50:29.017558317Z     at [stdin]-wrapper:6:24
2026-03-20T21:50:29.017598755Z     at runScriptInContext (node:internal/process/execution:449:60)
2026-03-20T21:50:29.017640557Z     at evalFunction (node:internal/process/execution:283:30).
2026-03-20T21:50:29.017682506Z          input = NChallengeInput(player_url='https://www.youtube.com/s/player/1ebf2aa6/tv-player-ias.vflset/tv-player-ias.js', challenges=['VPjyP5v2tXhLm10C', 'yPE-UPhE7xsFSqrE', '5yTIb2bqbnVtpah3'])
2026-03-20T21:50:29.017735970Z          Please report this issue on  https://github.com/yt-dlp/yt-dlp/issues?q= , filling out the appropriate issue template. Confirm you are on the latest version using  yt-dlp -U
2026-03-20T21:50:29.017798233Z [WARNING] [youtube] T4XZmMPQ9Kw: n challenge solving failed: Some formats may be missing. Ensure you have a supported JavaScript runtime and challenge solver script distribution installed. Review any warnings presented before this message. For more details, refer to  https://github.com/yt-dlp/yt-dlp/wiki/EJS
2026-03-20T21:50:29.017861758Z [WARNING] [youtube] Unable to fetch GVS PO Token for web client: Missing required Visitor Data. You may need to pass Visitor Data with --extractor-args "youtube:visitor_data=XXX"
2026-03-20T21:50:29.017915506Z 2026-03-20 14:50:29.012348:  INFO: Extraction successful for https://www.youtube.com/@KittenAcademy/live.

Also plays fine in VLC even though errors appear in the SLM log and some log entries appear delayed
See ### ODD that older log entries are now appearing from 2026-03-20 15:59...

SLM log
2026-03-20T22:59:29.466680913Z [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)
2026-03-20T22:59:29.466880472Z [debug] yt-dlp version [email protected] from yt-dlp/yt-dlp [92f1d99db] API
2026-03-20T22:59:29.466949123Z [debug] params: {'verbose': True, 'no_warnings': False, 'format': 'all', 'retries': 0, 'fragment_retries': 0, 'logger': <__main__.YTDLLogger object at 0x7f9768749610>, '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/139.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'}}
2026-03-20T22:59:29.467076393Z [debug] Lazy loading extractors is disabled
2026-03-20T22:59:29.467128736Z [debug] Python 3.12.13 (CPython x86_64 64bit) - Linux-4.4.302+-x86_64-with-glibc2.41 (OpenSSL 3.5.5 27 Jan 2026, glibc 2.41)
2026-03-20T22:59:29.467189264Z [debug] exe versions: none
2026-03-20T22:59:29.467243013Z [debug] Optional libraries: Cryptodome-3.23.0, brotli-1.2.0, certifi-2026.02.25, curl_cffi-0.14.0, mutagen-1.47.0, requests-2.32.5, sqlite3-3.46.1, urllib3-2.6.3, websockets-16.0, yt_dlp_ejs-0.7.0
2026-03-20T22:59:29.467321483Z [debug] JS runtimes: node-24.14.0
2026-03-20T22:59:29.467367359Z [debug] Proxy map: {}
2026-03-20T22:59:29.467410332Z [debug] Request Handlers: urllib, requests, websockets, curl_cffi
2026-03-20T22:59:29.467454323Z [debug] Plugin directories: none
2026-03-20T22:59:29.467495727Z [debug] Loaded 1864 extractors
2026-03-20T22:59:29.467537066Z 2026-03-20 14:50:29.214242:  INFO: Extracting info from https://www.youtube.com/@KittenAcademy/live...
2026-03-20T22:59:29.467588352Z [youtube:tab] Extracting URL: https://www.youtube.com/@KittenAcademy/live
2026-03-20T22:59:29.467633865Z [youtube:tab] @KittenAcademy/live: Downloading webpage
2026-03-20T22:59:29.467687951Z 2026-03-20 14:50:30.092297:  INFO: URL redirected to https://www.youtube.com/watch?v=T4XZmMPQ9Kw.
2026-03-20T22:59:29.467746163Z [debug] [youtube] [pot] PO Token Providers: none
2026-03-20T22:59:29.467810659Z [debug] [youtube] [pot] PO Token Cache Providers: memory
2026-03-20T22:59:29.467858756Z [debug] [youtube] [pot] PO Token Cache Spec Providers: webpo
2026-03-20T22:59:29.467915010Z [debug] [youtube] [jsc] JS Challenge Providers: bun (unavailable), deno (unavailable), node, quickjs (unavailable)
2026-03-20T22:59:29.467971611Z [youtube] Extracting URL: https://www.youtube.com/watch?v=T4XZmMPQ9Kw
2026-03-20T22:59:29.468017801Z [youtube] T4XZmMPQ9Kw: Downloading initial data API JSON
2026-03-20T22:59:29.468063810Z [youtube] T4XZmMPQ9Kw: Downloading ios player API JSON
2026-03-20T22:59:29.468125223Z [youtube] T4XZmMPQ9Kw: Downloading m3u8 information
2026-03-20T22:59:29.468169573Z 2026-03-20 14:50:31.429986:  INFO: Extraction successful for https://www.youtube.com/@KittenAcademy/live.
2026-03-20T22:59:29.468228325Z 2026-03-20 14:50:31.430130:  INFO: Found 8 formats.
2026-03-20T22:59:29.468274155Z 2026-03-20 14:50:31.430527:  INFO: 1 format(s) has/have been filtered out due to missing n-parameter(s).
2026-03-20T22:59:29.468368047Z 2026-03-20 14:50:31.430583:  INFO: No single-stream found. Combining audio + video tracks.
2026-03-20T22:59:29.468419284Z 2026-03-20 14:50:31.430678:  INFO: Combined manifest created with m3u8_combined protocol.
2026-03-20T22:59:29.468481992Z 2026-03-20 15:59:25.001604:  INFO: Starting to retrieve manifest for https://www.youtube.com/@KittenAcademy/live.
2026-03-20T22:59:29.468533693Z [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)
2026-03-20T22:59:29.468588312Z [debug] yt-dlp version [email protected] from yt-dlp/yt-dlp [92f1d99db] API
2026-03-20T22:59:29.468644156Z [debug] params: {'verbose': True, 'no_warnings': False, 'format': 'all', 'retries': 0, 'fragment_retries': 0, 'logger': <__main__.YTDLLogger object at 0x7f97682d8b60>, '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/139.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'}}
2026-03-20T22:59:29.468747955Z [debug] Lazy loading extractors is disabled
2026-03-20T22:59:29.468823226Z [debug] Python 3.12.13 (CPython x86_64 64bit) - Linux-4.4.302+-x86_64-with-glibc2.41 (OpenSSL 3.5.5 27 Jan 2026, glibc 2.41)
2026-03-20T22:59:29.468886718Z [debug] exe versions: none
2026-03-20T22:59:29.468930852Z [debug] Optional libraries: Cryptodome-3.23.0, brotli-1.2.0, certifi-2026.02.25, curl_cffi-0.14.0, mutagen-1.47.0, requests-2.32.5, sqlite3-3.46.1, urllib3-2.6.3, websockets-16.0, yt_dlp_ejs-0.7.0
2026-03-20T22:59:29.468991328Z [debug] JS runtimes: node-24.14.0
2026-03-20T22:59:29.469032747Z [debug] Proxy map: {}
2026-03-20T22:59:29.469072159Z [debug] Request Handlers: urllib, requests, websockets, curl_cffi
2026-03-20T22:59:29.469114554Z [debug] Plugin directories: none
2026-03-20T22:59:29.469154838Z [debug] Loaded 1864 extractors
2026-03-20T22:59:29.469195262Z 2026-03-20 15:59:25.288089:  INFO: Extracting info from https://www.youtube.com/@KittenAcademy/live...
2026-03-20T22:59:29.469246020Z [youtube:tab] Extracting URL: https://www.youtube.com/@KittenAcademy/live
2026-03-20T22:59:29.469292003Z [youtube:tab] @KittenAcademy/live: Downloading webpage
2026-03-20T22:59:29.469334583Z 2026-03-20 15:59:26.223421:  INFO: URL redirected to https://www.youtube.com/watch?v=T4XZmMPQ9Kw.
2026-03-20T22:59:29.469402009Z [debug] [youtube] [pot] PO Token Providers: none
2026-03-20T22:59:29.469444448Z [debug] [youtube] [pot] PO Token Cache Providers: memory
2026-03-20T22:59:29.469486692Z [debug] [youtube] [pot] PO Token Cache Spec Providers: webpo
2026-03-20T22:59:29.469531306Z [debug] [youtube] [jsc] JS Challenge Providers: bun (unavailable), deno (unavailable), node, quickjs (unavailable)
2026-03-20T22:59:29.469577634Z [youtube] Extracting URL: https://www.youtube.com/watch?v=T4XZmMPQ9Kw
2026-03-20T22:59:29.469622938Z [youtube] T4XZmMPQ9Kw: Downloading initial data API JSON
2026-03-20T22:59:29.469669163Z [youtube] T4XZmMPQ9Kw: Downloading iframe API JS
2026-03-20T22:59:29.469712358Z [youtube] T4XZmMPQ9Kw: Downloading player 1ebf2aa6-tv
2026-03-20T22:59:29.469758797Z [youtube] T4XZmMPQ9Kw: Downloading web safari player API JSON
2026-03-20T22:59:29.469816798Z [youtube] [jsc:node] Solving JS challenges using node
2026-03-20T22:59:29.469861995Z [debug] [youtube] [jsc:node] Using challenge solver lib script v0.7.0 (source: python package, variant: minified)
2026-03-20T22:59:29.469921590Z [debug] [youtube] [jsc:node] Using challenge solver core script v0.7.0 (source: python package, variant: minified)
2026-03-20T22:59:29.469969779Z [debug] [youtube] [jsc:node] Running node: node --permission -
2026-03-20T22:59:29.470014024Z [WARNING] [youtube] [jsc] Error solving n challenge request using "node" provider: Error running node process (returncode: 1): <anonymous_script>:22962
2026-03-20T22:59:29.470070905Z   var A8_ = self.location.origin + "/";
2026-03-20T22:59:29.470116742Z                           ^
2026-03-20T22:59:29.470153523Z 
2026-03-20T22:59:29.470189470Z TypeError: Cannot read properties of undefined (reading 'origin')
2026-03-20T22:59:29.470265375Z     at eval (eval at <anonymous> ([stdin]:58:6208), <anonymous>:22962:27)
2026-03-20T22:59:29.470314850Z     at eval (eval at <anonymous> ([stdin]:58:6208), <anonymous>:89615:4)
2026-03-20T22:59:29.470365317Z     at [stdin]:58:6229
2026-03-20T22:59:29.470405884Z     at [stdin]:58:6235
2026-03-20T22:59:29.470445314Z     at [stdin]:59:36
2026-03-20T22:59:29.470483763Z     at runScriptInThisContext (node:internal/vm:219:10)
2026-03-20T22:59:29.470527160Z     at node:internal/process/execution:451:12
2026-03-20T22:59:29.470582544Z     at [stdin]-wrapper:6:24
2026-03-20T22:59:29.470624110Z     at runScriptInContext (node:internal/process/execution:449:60)
2026-03-20T22:59:29.470671446Z     at evalFunction (node:internal/process/execution:283:30).
2026-03-20T22:59:29.470716118Z          input = NChallengeInput(player_url='https://www.youtube.com/s/player/1ebf2aa6/tv-player-ias.vflset/tv-player-ias.js', challenges=['NEXVkHjdL9TluF2I', 'khaYy_CVENxhDDyU', 'JPCwh3NSwjc0yEPA'])
2026-03-20T22:59:29.470771200Z          Please report this issue on  https://github.com/yt-dlp/yt-dlp/issues?q= , filling out the appropriate issue template. Confirm you are on the latest version using  yt-dlp -U
2026-03-20T22:59:29.470852661Z [WARNING] [youtube] T4XZmMPQ9Kw: n challenge solving failed: Some formats may be missing. Ensure you have a supported JavaScript runtime and challenge solver script distribution installed. Review any warnings presented before this message. For more details, refer to  https://github.com/yt-dlp/yt-dlp/wiki/EJS
2026-03-20T22:59:29.470932669Z [WARNING] [youtube] Unable to fetch GVS PO Token for web_safari client: Missing required Visitor Data. You may need to pass Visitor Data with --extractor-args "youtube:visitor_data=XXX"
2026-03-20T22:59:29.470996621Z 2026-03-20 15:59:29.460508:  INFO: Extraction successful for https://www.youtube.com/@KittenAcademy/live.
2026-03-20T22:59:29.471046159Z 2026-03-20 15:59:29.460635:  WARNING: No formats available for https://www.youtube.com/@KittenAcademy/live.
2026-03-20T22:59:29.471094596Z [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)
2026-03-20T22:59:29.471147831Z [debug] yt-dlp version [email protected] from yt-dlp/yt-dlp [92f1d99db] API
2026-03-20T22:59:29.471195678Z [debug] params: {'verbose': True, 'no_warnings': False, 'format': 'all', 'retries': 0, 'fragment_retries': 0, 'logger': <__main__.YTDLLogger object at 0x7f976be28a10>, '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/139.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'}}
###
### ODD that older log entries are now appearing from 2026-03-20 15:59...
###
2026-03-20T23:10:31.261894606Z [debug] Lazy loading extractors is disabled
2026-03-20T23:10:31.262422086Z [debug] Python 3.12.13 (CPython x86_64 64bit) - Linux-4.4.302+-x86_64-with-glibc2.41 (OpenSSL 3.5.5 27 Jan 2026, glibc 2.41)
2026-03-20T23:10:31.262551077Z [debug] exe versions: none
2026-03-20T23:10:31.262599562Z [debug] Optional libraries: Cryptodome-3.23.0, brotli-1.2.0, certifi-2026.02.25, curl_cffi-0.14.0, mutagen-1.47.0, requests-2.32.5, sqlite3-3.46.1, urllib3-2.6.3, websockets-16.0, yt_dlp_ejs-0.7.0
2026-03-20T23:10:31.262671156Z [debug] JS runtimes: node-24.14.0
2026-03-20T23:10:31.262715935Z [debug] Proxy map: {}
2026-03-20T23:10:31.262759662Z [debug] Request Handlers: urllib, requests, websockets, curl_cffi
2026-03-20T23:10:31.262831030Z [debug] Plugin directories: none
2026-03-20T23:10:31.262876002Z [debug] Loaded 1864 extractors
2026-03-20T23:10:31.262918875Z 2026-03-20 15:59:29.697160:  INFO: Extracting info from https://www.youtube.com/@KittenAcademy/live...
2026-03-20T23:10:31.262984083Z [youtube:tab] Extracting URL: https://www.youtube.com/@KittenAcademy/live
2026-03-20T23:10:31.263031650Z [youtube:tab] @KittenAcademy/live: Downloading webpage
2026-03-20T23:10:31.263076005Z 2026-03-20 15:59:30.539635:  INFO: URL redirected to https://www.youtube.com/watch?v=T4XZmMPQ9Kw.
2026-03-20T23:10:31.263126526Z [debug] [youtube] [pot] PO Token Providers: none
2026-03-20T23:10:31.263176826Z [debug] [youtube] [pot] PO Token Cache Providers: memory
2026-03-20T23:10:31.263221364Z [debug] [youtube] [pot] PO Token Cache Spec Providers: webpo
2026-03-20T23:10:31.263265544Z [debug] [youtube] [jsc] JS Challenge Providers: bun (unavailable), deno (unavailable), node, quickjs (unavailable)
2026-03-20T23:10:31.263316571Z [youtube] Extracting URL: https://www.youtube.com/watch?v=T4XZmMPQ9Kw
2026-03-20T23:10:31.263360348Z [youtube] T4XZmMPQ9Kw: Downloading initial data API JSON
2026-03-20T23:10:31.263404912Z [youtube] T4XZmMPQ9Kw: Downloading iframe API JS
2026-03-20T23:10:31.263447048Z [youtube] T4XZmMPQ9Kw: Downloading player 1ebf2aa6-tv
2026-03-20T23:10:31.263490285Z [youtube] T4XZmMPQ9Kw: Downloading web player API JSON
2026-03-20T23:10:31.263538071Z [youtube] [jsc:node] Solving JS challenges using node
2026-03-20T23:10:31.263585103Z [debug] [youtube] [jsc:node] Using challenge solver lib script v0.7.0 (source: python package, variant: minified)
2026-03-20T23:10:31.263637671Z [debug] [youtube] [jsc:node] Using challenge solver core script v0.7.0 (source: python package, variant: minified)
2026-03-20T23:10:31.263686982Z [debug] [youtube] [jsc:node] Running node: node --permission -
2026-03-20T23:10:31.263731556Z [WARNING] [youtube] [jsc] Error solving n challenge request using "node" provider: Error running node process (returncode: 1): <anonymous_script>:22962
2026-03-20T23:10:31.263829476Z   var A8_ = self.location.origin + "/";
2026-03-20T23:10:31.263884611Z                           ^
2026-03-20T23:10:31.264017512Z 
2026-03-20T23:10:31.264070236Z TypeError: Cannot read properties of undefined (reading 'origin')
2026-03-20T23:10:31.264127088Z     at eval (eval at <anonymous> ([stdin]:58:6208), <anonymous>:22962:27)
2026-03-20T23:10:31.264183500Z     at eval (eval at <anonymous> ([stdin]:58:6208), <anonymous>:89615:4)
2026-03-20T23:10:31.264230038Z     at [stdin]:58:6229
2026-03-20T23:10:31.264271167Z     at [stdin]:58:6235
2026-03-20T23:10:31.264311237Z     at [stdin]:59:36
2026-03-20T23:10:31.264350657Z     at runScriptInThisContext (node:internal/vm:219:10)
2026-03-20T23:10:31.264398574Z     at node:internal/process/execution:451:12
2026-03-20T23:10:31.264443311Z     at [stdin]-wrapper:6:24
2026-03-20T23:10:31.264489979Z     at runScriptInContext (node:internal/process/execution:449:60)
2026-03-20T23:10:31.264537686Z     at evalFunction (node:internal/process/execution:283:30).
2026-03-20T23:10:31.264582523Z          input = NChallengeInput(player_url='https://www.youtube.com/s/player/1ebf2aa6/tv-player-ias.vflset/tv-player-ias.js', challenges=['wggTL61KqzgunmjK', '2do6akcW-pSWfTJ6', 'YKR_1fQhrLgH9Oop'])
2026-03-20T23:10:31.264651264Z          Please report this issue on  https://github.com/yt-dlp/yt-dlp/issues?q= , filling out the appropriate issue template. Confirm you are on the latest version using  yt-dlp -U
2026-03-20T23:10:31.264720303Z [WARNING] [youtube] T4XZmMPQ9Kw: n challenge solving failed: Some formats may be missing. Ensure you have a supported JavaScript runtime and challenge solver script distribution installed. Review any warnings presented before this message. For more details, refer to  https://github.com/yt-dlp/yt-dlp/wiki/EJS
2026-03-20T23:10:31.264927539Z [WARNING] [youtube] Unable to fetch GVS PO Token for web client: Missing required Visitor Data. You may need to pass Visitor Data with --extractor-args "youtube:visitor_data=XXX"
2026-03-20T23:10:31.265060864Z 2026-03-20 15:59:33.317530:  INFO: Extraction successful for https://www.youtube.com/@KittenAcademy/live.
2026-03-20T23:10:31.265129074Z 2026-03-20 15:59:33.317675:  WARNING: No formats available for https://www.youtube.com/@KittenAcademy/live.
2026-03-20T23:10:31.265194803Z [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)
2026-03-20T23:10:31.265258260Z [debug] yt-dlp version [email protected] from yt-dlp/yt-dlp [92f1d99db] API
2026-03-20T23:10:31.265327969Z [debug] params: {'verbose': True, 'no_warnings': False, 'format': 'all', 'retries': 0, 'fragment_retries': 0, 'logger': <__main__.YTDLLogger object at 0x7f976be29400>, '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/139.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'}}
2026-03-20T23:10:31.265513771Z [debug] Lazy loading extractors is disabled
2026-03-20T23:10:31.265580649Z [debug] Python 3.12.13 (CPython x86_64 64bit) - Linux-4.4.302+-x86_64-with-glibc2.41 (OpenSSL 3.5.5 27 Jan 2026, glibc 2.41)
2026-03-20T23:10:31.265634336Z [debug] exe versions: none
2026-03-20T23:10:31.265687095Z [debug] Optional libraries: Cryptodome-3.23.0, brotli-1.2.0, certifi-2026.02.25, curl_cffi-0.14.0, mutagen-1.47.0, requests-2.32.5, sqlite3-3.46.1, urllib3-2.6.3, websockets-16.0, yt_dlp_ejs-0.7.0
2026-03-20T23:10:31.265762811Z [debug] JS runtimes: node-24.14.0
2026-03-20T23:10:31.265831943Z [debug] Proxy map: {}
2026-03-20T23:10:31.265873602Z [debug] Request Handlers: urllib, requests, websockets, curl_cffi
2026-03-20T23:10:31.265925758Z [debug] Plugin directories: none
2026-03-20T23:10:31.265975674Z [debug] Loaded 1864 extractors
2026-03-20T23:10:31.266016705Z 2026-03-20 15:59:33.515545:  INFO: Extracting info from https://www.youtube.com/@KittenAcademy/live...
2026-03-20T23:10:31.266076812Z [youtube:tab] Extracting URL: https://www.youtube.com/@KittenAcademy/live
2026-03-20T23:10:31.266134530Z [youtube:tab] @KittenAcademy/live: Downloading webpage
2026-03-20T23:10:31.266178257Z 2026-03-20 15:59:34.488536:  INFO: URL redirected to https://www.youtube.com/watch?v=T4XZmMPQ9Kw.
2026-03-20T23:10:31.266239550Z [debug] [youtube] [pot] PO Token Providers: none
2026-03-20T23:10:31.266297471Z [debug] [youtube] [pot] PO Token Cache Providers: memory
2026-03-20T23:10:31.266351151Z [debug] [youtube] [pot] PO Token Cache Spec Providers: webpo
2026-03-20T23:10:31.266395938Z [debug] [youtube] [jsc] JS Challenge Providers: bun (unavailable), deno (unavailable), node, quickjs (unavailable)
2026-03-20T23:10:31.266456395Z [youtube] Extracting URL: https://www.youtube.com/watch?v=T4XZmMPQ9Kw
2026-03-20T23:10:31.266512001Z [youtube] T4XZmMPQ9Kw: Downloading initial data API JSON
2026-03-20T23:10:31.266557645Z [youtube] T4XZmMPQ9Kw: Downloading ios player API JSON
2026-03-20T23:10:31.266612722Z [youtube] T4XZmMPQ9Kw: Downloading m3u8 information
2026-03-20T23:10:31.266668151Z 2026-03-20 15:59:35.715563:  INFO: Extraction successful for https://www.youtube.com/@KittenAcademy/live.
2026-03-20T23:10:31.266735792Z 2026-03-20 15:59:35.715707:  INFO: Found 8 formats.
2026-03-20T23:10:31.266782358Z 2026-03-20 15:59:35.716142:  INFO: 1 format(s) has/have been filtered out due to missing n-parameter(s).
2026-03-20T23:10:31.266856945Z 2026-03-20 15:59:35.716197:  INFO: No single-stream found. Combining audio + video tracks.
2026-03-20T23:10:31.266918878Z 2026-03-20 15:59:35.716303:  INFO: Combined manifest created with m3u8_combined protocol.

Something strange going on with the SLM log.
I can view it from SLM Controls > Logs, but the docker container log acts like it's being buffered and doesn't display the last log lines that appear in SLM.
Portainer view of container log ends at

2026-03-21T00:31:49.770099392Z 2026-03-20 17:31:49.758582:  WARNING: No formats available for https://www.youtube.com/@KittenAcademy/live.
2026-03-21T00:31:49.770171093Z [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)
2026-03-21T00:31:49.770226198Z [debug] yt-dlp version [email protected] from yt-dlp/yt-dlp [92f1d99db] API
2026-03-21T00:31:49.770280066Z [debug] params: {'verbose': True, 'no_warnings': False, 'format': 'all', 'retries': 0, 'fragment_retries': 0, 'logger': <__main__.YTDLLogger object at 0x7f976acd64e0>, '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/139.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'}}
2026-03-21T00:31:49.770375854Z [debug] Lazy loading extractors is disabled
2026-03-21T00:31:49.770420517Z [debug] Python 3.12.13 (CPython x86_64 64bit) - Linux-4.4.302+-x86_64-with-glibc2.41 (OpenSSL 3.5.5 27 Jan 2026, glibc 2.41)
2026-03-21T00:31:49.770470640Z [debug] exe versions: none
2026-03-21T00:31:49.770515654Z [debug] Optional libraries: Cryptodome-3.23.0, brotli-1.2.0, certifi-2026.02.25, curl_cffi-0.14.0, mutagen-1.47.0, requests-2.32.5, sqlite3-3.46.1, urllib3-2.6.3, websockets-16.0, yt_dlp_ejs-0.7.0

SLM view of log continues

2026-03-20 17:31:49.758582:  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 [92f1d99db] API
[debug] params: {'verbose': True, 'no_warnings': False, 'format': 'all', 'retries': 0, 'fragment_retries': 0, 'logger': <__main__.YTDLLogger object at 0x7f976acd64e0>, '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/139.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.5 27 Jan 2026, glibc 2.41)
[debug] exe versions: none
[debug] Optional libraries: Cryptodome-3.23.0, brotli-1.2.0, certifi-2026.02.25, curl_cffi-0.14.0, mutagen-1.47.0, requests-2.32.5, sqlite3-3.46.1, urllib3-2.6.3, websockets-16.0, yt_dlp_ejs-0.7.0
###
### Following lines appear in SLM, but not container log
###
[debug] JS runtimes: node-24.14.0
[debug] Proxy map: {}
[debug] Request Handlers: urllib, requests, websockets, curl_cffi
[debug] Plugin directories: none
[debug] Loaded 1864 extractors
2026-03-20 17:31:49.956307:  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-03-20 17:31:51.225066:  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
[youtube] T4XZmMPQ9Kw: Downloading m3u8 information
2026-03-20 17:31:52.328740:  INFO: Extraction successful for https://www.youtube.com/@KittenAcademy/live.
2026-03-20 17:31:52.328908:  INFO: Found 8 formats.
2026-03-20 17:31:52.329307:  INFO: 1 format(s) has/have been filtered out due to missing n-parameter(s).
2026-03-20 17:31:52.329363:  INFO: No single-stream found. Combining audio + video tracks.
2026-03-20 17:31:52.329457:  INFO: Combined manifest created with m3u8_combined protocol.
[info | 2026-03-20 17:31:52,333] - 172.17.0.1 - - [20/Mar/2026 17:31:52] "GET /playlists/streams/stream?url=https://www.youtube.com/@KittenAcademy/live HTTP/1.1" 200 -
[info | 2026-03-20 17:40:19,574] - 172.17.0.1 - - [20/Mar/2026 17:40:19] "GET / HTTP/1.1" 200 -

I verified it's not a Portainer issue using docker logs -t --since=1h slm 2>&1

Thanks @babsonnexus for suggesting YouTube could be blocking my IP. I logged out of my YouTube account on my ipad, and got the “sign in to prove you’re not a bot” error, as well. I switched to a vpn on my nas, and the YouTube channels are working again using SLM!

The only thing I can think of that may have caused this is that I was using Tivimate with multiscreens recently. Maybe YouTube didn’t like that?

I live in an apartment, so, unfortunately I have no control of my router, except to reboot it. I tried leaving it unplugged for 30 minutes to see if I would get a new IP assigned, but that didn’t work. I may have to submit a ticket to my ISP. Anyway, vpn is a good workaround for now.

Thanks to everyone for your help!

1 Like

Yep...that'll trigger YT easily. I get similar errors when running ytdl-sub. You have to throttle or curb your frequent connection to there or else they'll temporarily ban your ip

A VPN or a cookie file is really the only workaround

1 Like