rocksdanister/lively · error · DepreciatedException

libmpv depreciated player selected.

Error message

libmpv depreciated player selected.

What it means

Thrown by WallpaperPluginFactory when the user's selected video player is LivelyMediaPlayer.libmpv, which has been removed/deprecated. DepreciatedException is a project-local Exception subclass. It fires per-video-wallpaper launch, so the wallpaper will never play until the setting changes.

Source

Thrown at src/Lively/Lively/Factories/WallpaperPluginFactory.cs:83

                                display,
                                userSettings.Settings.WebDebugPort,
                                lpFactory.CreateLivelyPropertyFolder(model, display, arrangement, userSettings),
                                GetWebView2UserDataDir(arrangement, display, isWindowed),
                                userSettings.Settings.ApplicationTheme,
                                userSettings.Settings.AudioVolumeGlobal,
                                GetWebView2Scale(display, isWindowed),
                                userSettings.Settings.VisualizerAudioDeviceId);
                    }
                    break;
                case WallpaperType.video:
                    //How many videoplayers you need? Yes.
                    switch (userSettings.Settings.VideoPlayer)
                    {
                        case LivelyMediaPlayer.wmf:
                            return new VideoWmfProcess(model.FilePath, model,
                                display, 0, userSettings.Settings.WallpaperScaling);
                        case LivelyMediaPlayer.libmpv:
                            throw new DepreciatedException("libmpv depreciated player selected.");
                        case LivelyMediaPlayer.libmpvExt:
                            throw new DepreciatedException("libmpvExt depreciated player selected.");
                        case LivelyMediaPlayer.libvlc:
                            throw new DepreciatedException("libvlc depreciated player selected.");
                        case LivelyMediaPlayer.libvlcExt:
                            return new VideoLibVlcPlayer(model.FilePath,
                                model,
                                display,
                                lpFactory.CreateLivelyPropertyFolder(model, display, arrangement, userSettings),
                                userSettings.Settings.ApplicationTheme,
                                userSettings.Settings.AudioVolumeGlobal,
                                userSettings.Settings.VideoPlayerHwAccel);
                        case LivelyMediaPlayer.mpv:
                            return new VideoMpvPlayer(model.FilePath,
                                model,
                                display,
                                lpFactory.CreateLivelyPropertyFolder(model, display, arrangement, userSettings),
                                userSettings.Settings.VideoPlayerHwAccel,

View on GitHub (pinned to c1036feb66)

Solutions

  1. Change Settings.VideoPlayer to a supported backend (wmf, mpv, or libvlcExt) and restart.
  2. On startup, migrate/sanitize persisted settings: if VideoPlayer is deprecated, fall back to a default and notify.
  3. Catch DepreciatedException in the wallpaper-launch path and prompt the user to pick a new player.

Example fix

// before
case LivelyMediaPlayer.libmpv:
    throw new DepreciatedException("libmpv depreciated player selected.");

// after — fall back to a supported default instead of throwing at launch
var preferred = userSettings.Settings.VideoPlayer;
if (preferred is LivelyMediaPlayer.libmpv or LivelyMediaPlayer.libmpvExt or LivelyMediaPlayer.libvlc)
    preferred = LivelyMediaPlayer.mpv;
switch (preferred) { /* ... */ }
Defensive patterns

Strategy: fallback

Validate before calling

var player = userSettings.Settings.VideoPlayer;
if (player is LivelyMediaPlayer.libmpv or LivelyMediaPlayer.libmpvExt or LivelyMediaPlayer.libvlc)
{
    userSettings.Settings.VideoPlayer = LivelyMediaPlayer.mpv; // remap deprecated
    await userSettings.SaveAsync();
}

Type guard

static bool IsSupportedVideoPlayer(LivelyMediaPlayer p)
    => p is LivelyMediaPlayer.wmf or LivelyMediaPlayer.mpv or LivelyMediaPlayer.libvlcExt;

Try / catch

try { return factory.CreateVideoPlayer(model, display, arrangement); }
catch (DepreciatedException ex) when (ex.Message.Contains("libmpv"))
{ userSettings.Settings.VideoPlayer = LivelyMediaPlayer.mpv; return factory.CreateVideoPlayer(model, display, arrangement); }

Prevention

When it happens

Trigger: Loading a video wallpaper while userSettings.Settings.VideoPlayer == LivelyMediaPlayer.libmpv — the factory switch hits the libmpv case and throws.

Common situations: User upgraded from an older Lively version that stored 'libmpv' as the preferred player; settings file carried over; user manually edited settings; libmpv build dropped from the distribution.

Related errors


AI-assisted analysis of rocksdanister/lively@c1036feb66 (2026-08-13). Data as JSON: /api/errors/f967109770337d33. Report an issue: GitHub.