AVPro Player , Vizvid plays low resolution yt videos

It’s my first time working on a vrc world project with my friend, we are trying to implement a vizvid video player in the world but for some reason the video player can’t play youtube links at 1080p resolution, for any video link I put in that is. I’m wondering how do people solve this or if there’s anything I’ve missed in the process.

world link here too

Usually world creators just add one of the common pre-made video player prefabs made by other creators, and for first time video watching you might need to enable untrusted urls.

I have also seen this issue for several weeks in VRChat, but I have been a bit busy to deal with the troubleshooting myself. Thanks for the heads-up, OP.

If you’re seeing 360p muxes from YouTube, it usually means yt-dlp’s web or web_safari extractor is broken and it’s falling back to android_vr. Unlike the upstream yt-dlp executable, VRChat’s yt-dlp defaults to webor web_safari instead of android_vr because video players in VRChat can only play premuxed formats (only available in web,web_safari with 1080p and android_vr with 360p without PO tokens).

If you’re on Windows, open up a Terminal window, cd %LocalAppdata%Low\VRChat\VRChat\Tools and share the output of .\yt-dlp.exe --version please. Example output:

PS C:\Users\linda.LINDALAP\AppData\LocalLow\VRChat\VRChat\Tools> .\yt-dlp.exe --version
2026.03.03

There’s no way to get verbose logs (-v, --verbose) out of VRChat’s yt-dlp executable, so the best you can do is then share a YouTube URL where you’re experiencing the issue.

The relevant video playback lines from the full output logs may also be helpful.


If you feel adventurous and experimental yourself. You’ll need a JS runtime (Deno) installed first for web,web_safari formats. Caution, this downloads an executable with winget and installs it. Please don’t follow me or do this unless you know what you’re doing!

PS C:\Users\linda.LINDALAP\AppData\Local\Temp\yt-dlp_upstream_2026.03.03> winget install DenoLand.Deno
Found Deno [DenoLand.Deno] Version 2.7.13
This application is licensed to you by its owner.
Microsoft is not responsible for, nor does it grant any licenses to, third-party packages.
Downloading https://github.com/denoland/deno/releases/download/v2.7.13/deno-x86_64-pc-windows-msvc.zip
  ██████████████████████████████  46.8 MB / 46.8 MB
Successfully verified installer hash
Extracting archive...
Successfully extracted archive
Starting package install...
Command line alias added: "deno"
Successfully installed

Then you can try .\yt-dlp.exe --extractor-args="youtube:player_client=web" -F https://www.youtube.com/watch?v=kEAC8eeQWcg with an upstream yt-dlp release to see which web formats are available with a version matching VRChat’s version (in this scenario, an upstream yt-dlp 2026.03.03 release). Here I’ve tried both web and web_safari:

PS C:\Users\linda.LINDALAP\AppData\Local\Temp\yt-dlp_upstream_2026.03.03> .\yt-dlp.exe --extractor-args "youtube:player_client=web" -F https://www.youtube.com/watch?v=kEAC8eeQWcg
[youtube] Extracting URL: https://www.youtube.com/watch?v=kEAC8eeQWcg
[youtube] kEAC8eeQWcg: Downloading webpage
[youtube] kEAC8eeQWcg: Downloading web player API JSON
ERROR: [youtube] kEAC8eeQWcg: The page needs to be reloaded.. The page needs to be reloaded.
PS C:\Users\linda.LINDALAP\AppData\Local\Temp\yt-dlp_upstream_2026.03.03> .\yt-dlp.exe --extractor-args "youtube:player_client=web_safari" -F https://www.youtube.com/watch?v=kEAC8eeQWcg
[youtube] Extracting URL: https://www.youtube.com/watch?v=kEAC8eeQWcg
[youtube] kEAC8eeQWcg: Downloading webpage
[youtube] kEAC8eeQWcg: Downloading web safari player API JSON
ERROR: [youtube] kEAC8eeQWcg: The page needs to be reloaded.. The page needs to be reloaded.

To be sure, let’s add the player_js_version=20514@9f4cc5e4extractor arg used in 2026.03.03.

PS C:\Users\linda.LINDALAP\AppData\Local\Temp\yt-dlp_upstream_2026.03.03> .\yt-dlp.exe --extractor-args "youtube:player_client=web_safari;player_js_version=20514@9f4cc5e4" -F https://www.youtube.com/watch?v=kEAC8eeQWcg
[youtube] Extracting URL: https://www.youtube.com/watch?v=kEAC8eeQWcg
[youtube] kEAC8eeQWcg: Downloading webpage
[youtube] kEAC8eeQWcg: Downloading web safari player API JSON
ERROR: [youtube] kEAC8eeQWcg: The page needs to be reloaded.. The page needs to be reloaded.

As one can see from the above, web and web_safari extractors are broken in 2026.03.03 and returning The page needs to be reloaded.. The page needs to be reloaded. errors. android_vr works, but only for 360p (-f 18):

PS C:\Users\linda.LINDALAP\AppData\Local\Temp\yt-dlp_upstream_2026.03.03> .\yt-dlp.exe --extractor-args "youtube:player_client=android_vr" -F https://www.youtube.com/watch?v=kEAC8eeQWcg
[youtube] Extracting URL: https://www.youtube.com/watch?v=kEAC8eeQWcg
[youtube] kEAC8eeQWcg: Downloading webpage
[youtube] kEAC8eeQWcg: Downloading android vr player API JSON
[info] Available formats for kEAC8eeQWcg:
ID  EXT   RESOLUTION FPS CH │   FILESIZE   TBR PROTO │ VCODEC        VBR ACODEC      ABR ASR MORE INFO
───────────────────────────────────────────────────────────────────────────────────────────────────────────────────
sb3 mhtml 48x27        2    │                  mhtml │ images                                storyboard
sb2 mhtml 80x45        1    │                  mhtml │ images                                storyboard
sb1 mhtml 160x90       1    │                  mhtml │ images                                storyboard
sb0 mhtml 320x180      1    │                  mhtml │ images                                storyboard
139 m4a   audio only      2 │  358.80KiB   49k https │ audio only        mp4a.40.5   49k 22k [en] low, m4a_dash
140 m4a   audio only      2 │  949.19KiB  130k https │ audio only        mp4a.40.2  130k 44k [en] medium, m4a_dash
251 webm  audio only      2 │  887.45KiB  121k https │ audio only        opus       121k 48k [en] medium, webm_dash
160 mp4   256x144     30    │  635.61KiB   87k https │ avc1.4d400c   87k video only          144p, mp4_dash
134 mp4   640x360     30    │    2.72MiB  381k https │ avc1.4d401e  381k video only          360p, mp4_dash
18  mp4   640x360     30  2 │ ≈  3.64MiB  510k https │ avc1.42001E       mp4a.40.2       44k [en] 360p
298 mp4   1280x720    60    │   15.30MiB 2142k https │ avc1.640020 2142k video only          720p60, mp4_dash
299 mp4   1920x1080   60    │   28.24MiB 3952k https │ avc1.64002a 3952k video only          1080p60, mp4_dash

The 720p (-f 298) and 1080p (-f 299) formats are not playable in VRChat, because they are video only DASH streams and merging different video/audio formats is not supported; only premuxed formats with both video & audio in one format are playable, and here the -f 18 (360p) is the only premuxed format with both video and audio for VRChat.

I am aware that the web extractor hack (forcing downgrading player_js_version=20514@9f4cc5e4 for web) in yt-dlp 2026.03.03 is fragile. See my feature request to VRChat from March 13, 2026 to update to a newer version: Update to yt-dlp 2026.03.13 / yt-dlp-ejs 0.7.0 to improve YouTube playback compatibility | Voters | VRChat.


Testing the same on yt-dlp nightly 2026.04.10.235301, which uses a newer yt-dlp-ejs and (I’m assuming) doesn’t use a player_js_version hack:

PS C:\Users\linda.LINDALAP\AppData\Local\Temp\yt-dlp-nightly-2026.04.10.235301> .\yt-dlp.exe --extractor-args "youtube:player_client=web" -F https://www.youtube.com/watch?v=kEAC8eeQWcg
[youtube] Extracting URL: https://www.youtube.com/watch?v=kEAC8eeQWcg
[youtube] kEAC8eeQWcg: Downloading webpage
[youtube] kEAC8eeQWcg: Downloading web client config
[youtube] kEAC8eeQWcg: Downloading web player API JSON
[youtube] kEAC8eeQWcg: Downloading player 8456c9de-main
[youtube] [jsc:deno] Solving JS challenges using deno
[info] Available formats for kEAC8eeQWcg:
ID  EXT   RESOLUTION FPS CH │ FILESIZE  TBR PROTO │ VCODEC      ACODEC    ASR MORE INFO
────────────────────────────────────────────────────────────────────────────────────────
sb3 mhtml 48x27        2    │               mhtml │ images                    storyboard
sb2 mhtml 80x45        1    │               mhtml │ images                    storyboard
sb1 mhtml 160x90       1    │               mhtml │ images                    storyboard
sb0 mhtml 320x180      1    │               mhtml │ images                    storyboard
18  mp4   640x360     30  2 │ ≈3.64MiB 510k https │ avc1.42001E mp4a.40.2 44k 360p

Hmm, only a 360p format from web. How about web_safari?

PS C:\Users\linda.LINDALAP\AppData\Local\Temp\yt-dlp-nightly-2026.04.10.235301> .\yt-dlp.exe --extractor-args "youtube:player_client=web_safari" -F https://www.youtube.com/watch?v=kEAC8eeQWcg
[youtube] Extracting URL: https://www.youtube.com/watch?v=kEAC8eeQWcg
[youtube] kEAC8eeQWcg: Downloading webpage
[youtube] kEAC8eeQWcg: Downloading player 8456c9de-main
[youtube] [jsc:deno] Solving JS challenges using deno
[youtube] kEAC8eeQWcg: Downloading m3u8 information
[info] Available formats for kEAC8eeQWcg:
ID  EXT   RESOLUTION FPS CH │  FILESIZE   TBR PROTO │ VCODEC      ACODEC    ASR MORE INFO
──────────────────────────────────────────────────────────────────────────────────────────
sb3 mhtml 48x27        2    │                 mhtml │ images                    storyboard
sb2 mhtml 80x45        1    │                 mhtml │ images                    storyboard
sb1 mhtml 160x90       1    │                 mhtml │ images                    storyboard
sb0 mhtml 320x180      1    │                 mhtml │ images                    storyboard
91  mp4   256x144     30    │ ~ 1.21MiB  170k m3u8  │ avc1.4D400C mp4a.40.5
93  mp4   640x360     30    │ ~ 4.98MiB  696k m3u8  │ avc1.4D401E mp4a.40.2
18  mp4   640x360     30  2 │ ≈ 3.64MiB  510k https │ avc1.42001E mp4a.40.2 44k 360p
300 mp4   1280x720    60    │ ~25.50MiB 3566k m3u8  │ avc1.640020 mp4a.40.2
301 mp4   1920x1080   60    │ ~39.47MiB 5518k m3u8  │ avc1.64002A mp4a.40.2

As far as I remember, those 1080p M3U8 formats (-f 301) should be playable in VRChat, but I am not 100% certain.


Feel free to submit a bug report on Canny explaining web,web_safari playback is broken and not returning any formats (no 1080p), or upvote the above feature request to restore 1080p video playback. I may do that later…

Upstream yt-dlp 2026.03.17 works for extracting web_safari formats, please submit a bug report to VRChat Canny to update yt-dlp in VRChat…

PS C:\Users\linda.LINDALAP\AppData\Local\Temp\yt-dlp_upstream_2026.03.17> .\yt-dlp.exe --version
2026.03.17
PS C:\Users\linda.LINDALAP\AppData\Local\Temp\yt-dlp_upstream_2026.03.17> .\yt-dlp.exe --extractor-args "youtube:player_client=web_safari" -F https://www.youtube.com/watch?v=kEAC8eeQWcg
[youtube] Extracting URL: https://www.youtube.com/watch?v=kEAC8eeQWcg
[youtube] kEAC8eeQWcg: Downloading webpage
[youtube] kEAC8eeQWcg: Downloading player 8456c9de-main
[youtube] [jsc:deno] Solving JS challenges using deno
[youtube] kEAC8eeQWcg: Downloading m3u8 information
[info] Available formats for kEAC8eeQWcg:
ID  EXT   RESOLUTION FPS CH │  FILESIZE   TBR PROTO │ VCODEC      ACODEC    ASR MORE INFO
──────────────────────────────────────────────────────────────────────────────────────────
sb3 mhtml 48x27        2    │                 mhtml │ images                    storyboard
sb2 mhtml 80x45        1    │                 mhtml │ images                    storyboard
sb1 mhtml 160x90       1    │                 mhtml │ images                    storyboard
sb0 mhtml 320x180      1    │                 mhtml │ images                    storyboard
91  mp4   256x144     30    │ ~ 1.21MiB  170k m3u8  │ avc1.4D400C mp4a.40.5
93  mp4   640x360     30    │ ~ 4.98MiB  696k m3u8  │ avc1.4D401E mp4a.40.2
18  mp4   640x360     30  2 │ ≈ 3.64MiB  510k https │ avc1.42001E mp4a.40.2 44k 360p
300 mp4   1280x720    60    │ ~25.50MiB 3566k m3u8  │ avc1.640020 mp4a.40.2
301 mp4   1920x1080   60    │ ~39.47MiB 5518k m3u8  │ avc1.64002A mp4a.40.2

Not 100% certain on M3U8 playback in VRChat again, but it should work IIRC.

I’ve reported this as a bug on Canny: 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