"no OPENSSL_Applink" error occurs yt-dlp that modified by VRChat
available in future release
kazu(かず)
Describe the bug
I can't see any videos that played anyone including me.
Although I have not been able to examine the specific environment in which this occurs, at least in my current environment, when I use [yt-dlp] downloaded from VRChat, I get the following error after retrieving the video URL.
but when I download in Official repogitory that vrchat downloaded version said and use it, I playable any videos.
According "yt-dlp" that vrchat downloaded version says in Comments
Official repository: <https://github.com/yt-dlp/yt-dlp>
So I download yt-dlp from Official repos, install it and trying verify.
for example, I checked
https://youtu.be/eEAmoid1lFc
. this url is just my instance user watched.I have no other intention.- VRChat + "yt-dlp" that vrchat downloaded version: fail to see OPENSSL_Uplink(00000189056E8D40,08): no OPENSSL_Applink
- "yt-dlp" that vrchat downloaded version: fail to see OPENSSL_Uplink(00000189056E8D40,08): no OPENSSL_Applink. Please check the description in the "vrchat downloaded version.log" listed below.
- "yt-dlp" that official repogitory version: no problem to see it. download it correctly.
- VRChat + "yt-dlp" that official repogitory version: no problem to see it. Please check the description in the "official repository version.log" listed below.
This URL "" will give the same error if you hit yt-dlp directly.
Add some notes
- We also tried with and without [Untrusted URL]. Apparently, if [Untrusted URL] is turned off, it will not play at all. This is the same if I switch to the community version.
- I also wanted to test the presence of IPv6, so I asked a friend of mine to lend me his VPN server and I verified it there. Similarly, video playback was not possible.
- VRChat performs a yt-dlp hash check on each instance joined. Therefore, to implement this as an effective alternative, it was necessary to replace the file while continuing to separately detect that it had been replaced.
- VRChat's yt-dlp, as noted above, lists the source of the modification as the "official repository" even though it has been modified. As other Canny have pointed out,I think this is a source of misunderstanding for users unless it is stated that if it has been modified, it has at least been modified independently of the XX repository.
Notes
vrchat downloaded version.log
2024.05.19 02:09:07 Log - [Video Playback] Attempting to resolve URL 'https://youtu.be/eEAmoid1lFc?si=-GNMoBab8WHXJ5o8'
2024.05.19 02:09:07 Log - NativeProcess.Start: started process id [23456]: C:/Users/XXXX/AppData/LocalLow/VRChat/VRChat\Tools/yt-dlp.exe (...)
2024.05.19 02:09:08 Log - NativeProcess.HasExited: process exited with code 1, took 518 ms. Command line: C:/Users/XXXX/AppData/LocalLow/VRChat/VRChat\Tools/yt-dlp.exe (...)
2024.05.19 02:09:08 Error - [Video Playback] OPENSSL_Uplink(0000016A18B78D40,08): no OPENSSL_Applink
2024.05.19 02:09:08 Log - [Video Playback] URL 'https://youtu.be/eEAmoid1lFc?si=-GNMoBab8WHXJ5o8' resolved to 'https://youtu.be/eEAmoid1lFc?si=-GNMoBab8WHXJ5o8'
2024.05.19 02:09:09 Error - WindowsVideoMedia error 0x80004005 while reading https://youtu.be/eEAmoid1lFc?si=-GNMoBab8WHXJ5o8
Context: MFCreateSourceReaderFromURL
Error details: Unspecified error
Track types:
2024.05.19 02:09:09 Error - [USharpVideo] Video player error when trying to load https://youtu.be/eEAmoid1lFc?si=-GNMoBab8WHXJ5o8
official repository version.log
2024.05.20 00:36:51 Log - [Video Playback] Attempting to resolve URL 'https://youtu.be/eEAmoid1lFc?si=-GNMoBab8WHXJ5o8'
2024.05.20 00:36:51 Log - NativeProcess.Start: started process id [21420]: C:/Users/kazu/AppData/LocalLow/VRChat/VRChat\Tools/yt-dlp.exe (...)
2024.05.20 00:36:55 Log - NativeProcess.HasExited: process exited with code 0, took 3726 ms. Command line: C:/Users/kazu/AppData/LocalLow/VRChat/VRChat\Tools/yt-dlp.exe (...)
2024.05.20 00:36:55 Warning - [Video Playback] WARNING: [youtube] Skipping player responses from android clients (got player responses for video "aQvGIIdgFDM" instead of "eEAmoid1lFc")
2024.05.20 00:36:55 Log - [Video Playback] URL 'https://youtu.be/eEAmoid1lFc?si=-GNMoBab8WHXJ5o8' resolved to 'https://<reducted>.googlevideo.com/videoplayback?<reducted>
Log In
This post was marked as
available in future release
_
_tau_
complete
kazu(かず)
Although I could not prove with certainty that this would fix the problem, I have improved it in my environment, so I will describe it here for the time being. The following environment variable caused this problem: SSLKEYLOGFILE
I had been using my PC as a development machine for a while, so this argument was still there. When I removed this argument, the above error did not occur in my environment.
_
_tau_
kazu(かず): We've just released an update to our yt-dlp version that should fix this issue. It should also note that is modified by VRChat now.
Can you confirm this is working for you so we can close this issue?
kazu(かず)
_tau_ Sorry for not replying here. Yes, the latest build shows up fine with SSLKEYLOGFILE in place. Also, I have confirmed that the issues regarding modification that I was concerned about elsewhere have been addressed. Thank you very much!
StormRel
tracked
kazu(かず)
As I mentioned on X, we are using the community version of yt-dlp as a temporary workaround for now.
The problem of yt-dlp being rewritten each time a session is joined is "worked around" by the following steps.
- explicitly prohibit rewriting of yt-dlp for [Administrators], and adjust the permissions on the Windows side to only allow rewriting by users.
- create a task scheduler on the Windows side to run yt-dlp -U periodically.
- on join, the process runs to update yt-dlp, but the rewriting process fails with Failed to create filebecause the rewriting process is prohibited.
As a result, the community version is still available and the video plays normally.
This process is only temporary and will be removed once the problems with yt-dlp (at least Canny, who is the cause of the complete lack of viewability) are resolved.
kazu(かず)
Canny can't put a header in Markdown format... Well, I think you get the meaning somehow, and you can interpret it in a nice way.
P.S. Understood, you don't support Header's 2 and beyond. I rewrote it to be good.