I wonder if this is more AI usage, like I can understand adding a cert, but it sounds like their advice is heading towards clearing old root certs which is likely done already.
What i do is manually replacing the yt-dlp.exe with the latest from the github and exclude the whole vrchat game folder and the vrchat appdata folder in windows defender (i don’t use any other security software) and it works 99 out 100 times
The reason that error lists so many different possibly is because it’s a general error… check a few lines above where it talks about yt-dlp, if it says that a url resolves to the exact same url, yt-dlp did nothing.
The message where the YouTube link resolves to that really long Google video url is what yt-dlp is supposed to do. Like it’s at least doing it’s part.
If it comes back with a long ass URL and VRChat can’t play it, I’m not sure what to suggest, as that’s how it’s currently working for whatever percentage of people are working.
Possibly unrelated but Google drive sets a cookie, and there is no way for the yt-dlp resolver to pass a cookie to media foundation. If YouTube added a mere cookie test to it, they could stop VRChats ability to do YouTube cold. Maybe they’re testing something in a few locations?
I encountered this issue yesterday, with the yt-dlp VRChat is distributing, while testing the VRC Beta, and what I usually do to fix this is download the latest compiled binary from the yt-dlp GitHub repo, replace the one in AppData, set the file to read-only, and set the integrity level to medium (since it’s an unsigned binary running under AppData\LocalLow). This is, of course, not an amazing idea, as setting the integrity level of the binary to medium creates the potential for abuse, though the risk of exploitation is likely very low - just be aware. Here’s a couple lines of PowerShell that will delete the existing yt-dlp, replace it with one you download, set it to read-only, and set the integrity level to medium with icacls:
# Replace "C:\Users\Username\Downloads\yt-dlp.exe" with the path to a known working copy of yt-dlp:
$PathToGoodYtDlp = "C:\Users\Username\Downloads\yt-dlp.exe"
Remove-Item -Path "$env:APPDATA\..\LocalLow\VRChat\VRChat\Tools\yt-dlp.exe" -Force
Copy-Item -Path $PathToGoodYtDlp -Destination "$env:APPDATA\..\LocalLow\VRChat\VRChat\Tools\yt-dlp.exe"
Set-ItemProperty -Path "$env:APPDATA\..\LocalLow\VRChat\VRChat\Tools\yt-dlp.exe" -Name IsReadOnly -Value $true
icacls "$env:APPDATA\..\LocalLow\VRChat\VRChat\Tools\yt-dlp.exe" /setintegritylevel medium
I couldn’t figure out what the issue was with the yt-dlp VRC downloads - much like your example in the logs, it looks like yt-dlp is resolving videos correctly, but the failing URL from the VRC yt-dlp is slightly different than the working one I get from using my own yt-dlp binary.