A different sort of video player issue (linux)

I’m not really expecting a solution from posting this; really just more wondering if anyone else is encountering this specific issue. Also disclaimer I’m running Linux and I understand that VRChat is not officially supported under Linux.

This post wound up becoming absurdly large and overly detailed, so I’ll give a tl;dr version up front and if anyone happens to want the detailed version I can post that as a reply. So, the basics:

  • Video players stopped working around 15 May, but not the usual way (the ‘usual way’ being yt-dlp unable to resolve video url because of youtube api changes)
  • Tried a few different Proton versions; most players would say they were playing but nothing would actually play
  • ProTV3 in particular would cause the game to hard-crash
    • VRChat logs stopped at “Playing (url) with API MediaFoundation”
    • System logs showed VRChat.exe segfaulting on proton’s ntdll.so lib
  • Disabled video entirely for a while (chmod 000 yt-dlp.exe) 'cos I didn’t want to deal with it.
  • Updated system last weekend, saw a new Proton get installed, reenabled yt-dlp.exe and tried the new Proton, to mixed results:
    • Avatar Test Chamber running ProTV3: immediate segfault crash again
    • Cozy Boat running USharpVideo: An older video played fine (albeit at 360p), a second video caused the same segfault crash
    • Hokyl Night running iwaSync3 with a default MaxResolution of 720p: Every video I threw at it played flawlessly
  • Additional observation: The “resolved” video stream URLs are significantly different between players for the same video and/or depending on resolution.

So, yeah. That’s weird; it seems like seemingly out of nowhere any attempts to play video above 720p cause a segfault. I realize the number of people running VRC under linux is pretty small as-is, but has anyone else had this happen to them?

For reference: CachyOS, 9070XT, proton-cachyos-slr 11.0.20260521

As far as I understand, this is Proton Experimental.

The bug report about video players being broken in Proton Experimental (Proton 11) was closed on April 30, 2026: “Proton Experimental is not supported, we only support stock Proton on Steam Deck.” Video players are broken on Proton Experimental (Proton 11) | Voters | VRChat

Please use the latest stable Proton version (Proton 10) meanwhile, or report a bug to Proton upstream against Proton 11.

Possibly related bug: yt-dlp 2026.03.03: YouTube 1080p web,web_safari formats unavailable: “The page needs to be reloaded.” - fix available in yt-dlp 2026.03.17 | Voters | VRChat - this was resolved in the past day, yt-dlp 2026.03.17 is now available in VRChat.

Huh, interesting. It doesn’t appear to have downloaded a newer version of yt-dlp in quite some time. Guess I could try to force it.

Delete the yt-dlp.exe file and try again

Also, the base Proton isn’t supporting RTMP, so the VRChat vieo players can’t work, see: Video Players | Linux VR Adventures Wiki

Unfortunately, a week later, I’m still not getting a ‘new’ yt-dlp.exe from VRChat; any time I delete the existing one to force a re-download, it’s an identical binary to the one I had before posting this topic, and still outputs URLs that cause VRC to segfault and die when the requesting video player asks for a 1080p video stream. (I did find it’s not just ProTV3; anything that requests a 1080p video causes a segfault.)

I’m sure the support staff would not approve, but I got sick of it and wrote a thin shim program in Rust that intercepts outbound calls to yt-dlp.exe and replaces the -f flag with a known-good format string (the one from an iwaSync3 player set to 720p max resolution). Everything else gets passed along to the ‘real’ yt-dlp and its stdout is handed back up to VRC. It doesn’t work for live streams (ie, LoFiGirl or ChillHop), and I don’t care enough to figure out why at this point. The code’s on github though (foxboxpdx/ytdlp-shim) if anyone wants to see what it does or try it out.

Regardless, it’s weird and a pain in the butt but at least this way I don’t have to scramble to chmod 000 yt-dlp.exe whenever I’m loading into a new world before the video player crashes me.