Video Players#

Videos keep glitching#

The Unity Native playback engine can have this issue on some systems, which could be caused by hardware acceleration. This issue isn’t tracked yet.

Play the video in a different player that’s already set to use libVLC.

To fix your existing player:

  1. Open an Inspector on the video player you’re using in Resonite.
  2. Find the VideoTextureProvider component (normally under a slot with Video in its name, in the first or second hierarchy level under its root).
  3. If it’s using Unity Native, press Use libVLC Playback Engine.

YouTube videos don’t load#

yt-dlp, the script that loads videos from YouTube and similar websites, updates itself on each Resonite startup (fetching a nightly release version), so restarting may help.

Sometimes YouTube videos just won’t load, which is caused by YouTube blocking yt-dlp (or your IP) in increasingly elaborate ways. This should only happen occasionally, but can be mitigated by using the Video Proxy mod. It streams videos (or audio-only, if requested) through the proxy selected by the user in the paste dialog. However, the server used to import them needs to download them first, which takes up time. Proxies also get occasionally blocked, requiring you to switch to a different one in the mod’s settings menu.

You could also try switching cookie settings in Resonite’s menu:

Settings → Network → Video Streaming Services → Use Cookies From Browser (start with NONE).

For more information on cookies and videos not loading, you can refer to the yt-dlp thread in Resonite’s Discord.

yt-dlp may require a JavaScript runtime to work, although this only seems to happen occasionally. Community players will then show the status as PartiallyLoaded.

To install a JavaScript runtime, continue reading the next section.

YouTube videos play at a low resolution (360p)#

To fix YouTube videos playing at low resolution, install a JavaScript runtime:

  1. Download an external JavaScript runtime, such as Deno.

    You don’t need to install it; you only need one file, the executable binary.

  2. Place the executable file (for example deno if you downloaded Deno) in the RuntimeData folder: ~/.local/share/Steam/steamapps/common/Resonite/RuntimeData/.

  3. Create yt-dlp.conf in Resonite’s root folder: ~/.local/share/Steam/steamapps/common/Resonite/, with the file’s content pointing to the runtime.

    You can do it with this script: echo "--js-runtimes deno:RuntimeData/deno" > ~/.local/share/Steam/steamapps/common/Resonite/yt-dlp.conf

    If you’re using Deno, the file’s content would be:

    --js-runtimes deno:RuntimeData/deno

Note: Even though yt-dlp documentation says Deno is enabled by default, runtimes nomally can’t be fetched from outside of Resonite’s folder due to Steam’s runtime containers, which is why we place them in the RuntimeData folder.

Switching to an older version of yt-dlp#

  1. Download an older nightly yt-dlp_linux.

    In the worst-case scenario, download the latest stable.

  2. Move it to ~/.local/share/Steam/steamapps/common/Resonite/RuntimeData/ and overwrite the yt-dlp_linux file that was already there.

    To check the version, run yt-dlp --version in the same path.

  3. Mark it as executable with chmod +x ~/.local/share/Steam/steamapps/common/Resonite/RuntimeData/yt-dlp.

    This fixes a Permission denied error you’d otherwise see in the Resonite log.

Note: if you follow these steps and start/restart Resonite, you’ll lose your changes.

Passing arguments to yt-dlp#

yt-dlp takes arguments from yt-dlp.conf in Resonite’s root folder. It doesn’t exist by default.