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.

First, check Resonite’s main log file for yt-dlp errors. For example, the errors can show you that the file yt-dlp_linux doesn’t exist in Resonite’s RuntimeData folder: ~/.local/share/Steam/steamapps/common/Resonite/RuntimeData/, as it can apparently get deleted in updates (fixed by verifying game files, which you can perform preemptively). Another common error is no JavaScript support (more on that below). You can safely ignore ffmpeg-related errors, as it’s not used for streaming videos.

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 this, provide 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.

    If you chose Deno, you can automate it with this script: echo "--js-runtimes deno:RuntimeData/deno" > ~/.local/share/Steam/steamapps/common/Resonite/yt-dlp.conf

    For 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. This is why you need to place one manually in the RuntimeData folder.

Video Proxy mod#

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.

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_linux.

    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.