Jump to content

Playlist manager Plugin - Never lose a playlist.


Recommended Posts

JacobFeindt
Posted

So I took the plunge and migrated my Emby from Windows to Linux on containers.

Unfortunately some major playlist I spent time on got lost because they are path based and no repair option.

Rather than re-create them which would have been faster - I create this plugin and I would love feedback.

Readme includes tons of details of what why and how.  Playlist are now saved backed up and repaired.  Export/Import all by provider Id..

So you can share them with others, see what's missing etc.

I would like to take the next step soon and work with the mdblistarr groups and source code to integrate further.
 

Features
Export / Import

    Export all playlists to a single portable JSON file
    Import playlists from JSON, resolving items by any provider ID Emby has scraped (IMDb, TMDb, TVDb, etc.)
    All provider IDs captured at export — new providers added by Emby in future versions come for free
    Import resolution priority: IMDb → TMDb → any other provider ID, stopping on first match
    Episode fallback: resolves via series TMDb/TVDb ID + season/episode number if no direct item match
    Collision handling — toggle between auto-rename (e.g. My Playlist (1)) or overwrite existing
    Preview imported playlists before committing — shows item counts and what will happen to each
    Export filename includes the source server name and timestamp
    All imported playlists created as public (visible to all users)

Shadow Playlist System

    Maintains a continuously updated JSON copy of every playlist in the background
    Updates automatically on every playlist change event — no manual exports needed
    On first enable, initializes shadow files from all existing playlists
    On every startup, automatically initializes shadows for any new playlists that don't have one yet
    Enables one-click repair after Sonarr/Radarr renames, library moves, or re-scans
    Scan shows every playlist — shadowed and unshadowed — with GUID, path, and shadow file info for easy debugging
    Safe mode (default): only adds missing items, never removes or replaces
    Full Restore mode: treats shadow as authoritative, rebuilds playlist from shadow
    Repair All also initializes shadows for any unshadowed playlists found during the run
    Unresolvable items listed with provider IDs for Radarr/Sonarr lookup
    Export missing items to JSON — compatible with Import if media is found later
    Weekly scheduled repair task (Dashboard → Scheduled Tasks → Playlist Manager)
    Shadow backup copies stored in userplaylists — included in MBBackup automatically
    On restore, shadow files auto-promoted from backup copies on startup
    Stale shadow files (from deleted/recreated playlists) cleaned up automatically on startup and on write
    Enable/disable toggle — off by default, zero performance impact when disabled

General

    Native Emby plugin UI with folder/file pickers, action buttons, and live status feedback
    HTTP API endpoints for automation and scripting
    Per-item error handling — one unresolvable item never aborts an operation
    Full activity logging via Emby's logging framework
    Fault tolerant — shadow system never blocks or hangs Emby on failure

Why Provider IDs?

Emby's internal item IDs and file paths change when you migrate to a new server or re-scan a library. By storing IMDb/TMDb/TVDb IDs in the exported JSON, playlists can be reliably reconstructed on any Emby instance that has the same media — regardless of where files are stored.



image.png.40877edac935c52629dabca379b55b44.png

image.png.b732771679763e776515e105ec7c6649.png

https://github.com/jacobfeindt/emby-playlist-manager

First release here:
https://github.com/jacobfeindt/emby-playlist-manager/releases/tag/v0.9.0
 

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...