VRChat plays videos through yt-dlp. Stock yt-dlp is slow, breaks whenever YouTube changes something, and returns URLs that AVPro blocks in public worlds. VRCResolver replaces VRChat's Tools/yt-dlp.exe with a patched build that resolves videos through vrcresolver.com and serves them from a local address AVPro trusts. If anything fails, it falls back to VRChat's original yt-dlp, so playback is never worse than stock.
Formerly WKVRCProxy.
Streams are served from localhost.youtube.com:{port}, which AVPro's trust list accepts, so they work in public worlds. Resolving happens on a server rather than your PC, so regional blocks and rate limits don't apply, and the server updates its yt-dlp nightly. A new URL takes 2-3 seconds and a repeat about 20 ms. You get 1080p HLS instead of 360p mp4. Any failure hands the URL to VRChat's original yt-dlp.
No DRM bypass, no content hosting, no YouTube login.
- Launch VRChat once, so
Tools/yt-dlp.exeexists for the patcher to back up. - Download the latest
vrcresolver-*.ziprelease and extract it anywhere exceptProgram Files. - Run
vrcresolver.exeand accept the one-time UAC prompt. It adds127.0.0.1 localhost.youtube.comto your hosts file, which public-world playback needs. - Launch VRChat. When the console shows
[mesh] connected, paste a video URL into any in-world player.
Update: type /update in the console.
Uninstall: run vrcresolver.Uninstaller.exe. It restores the original yt-dlp.exe, removes the hosts entry, and wipes %LOCALAPPDATA%Low\vrcresolver\. There is no confirmation prompt.
Windows 10/11 x64. Self-contained, no installer.
The console prints one line per resolve: green = resolved, yellow = fell back to stock yt-dlp, red = error. Full logs are in %LOCALAPPDATA%Low\vrcresolver\logs\. When filing a bug, include the correlation-ID block for the failed resolve.
VRChat (AVPro)
v paste URL
Tools/yt-dlp.exe patched shim
v named pipe
vrcresolver.exe watchdog
v WebSocket
vrcresolver.com remote resolver
The resolved stream comes back through the watchdog's local listener at http://localhost.youtube.com:{port}/play/<session>/manifest.<ext>?target=.... If any link breaks, the shim runs the backed-up yt-dlp-og.exe instead.
GPL-3.0-or-later. See LICENSE for the full text and NOTICE for third-party attributions.