<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: shedman214</title>
    <description>The latest articles on DEV Community by shedman214 (@shedman214).</description>
    <link>https://dev.to/shedman214</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F1274823%2F792f2b3c-2598-4515-a932-adbfd07fb694.png</url>
      <title>DEV Community: shedman214</title>
      <link>https://dev.to/shedman214</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/shedman214"/>
    <language>en</language>
    <item>
      <title>I Built Preludarr: A Self-Hosted Theme Music Manager for Plex, Jellyfin &amp; Emby</title>
      <dc:creator>shedman214</dc:creator>
      <pubDate>Sun, 01 Nov 2026 21:10:39 +0000</pubDate>
      <link>https://dev.to/shedman214/i-built-preludarr-a-self-hosted-theme-music-manager-for-plex-jellyfin-emby-ie</link>
      <guid>https://dev.to/shedman214/i-built-preludarr-a-self-hosted-theme-music-manager-for-plex-jellyfin-emby-ie</guid>
      <description>&lt;p&gt;I've spent a lot of time building and improving my self-hosted media setup with Plex, Jellyfin, and other media management tools.&lt;/p&gt;

&lt;p&gt;One thing I particularly enjoy about streaming services is the experience of browsing a library and hearing the theme music for a show.&lt;/p&gt;

&lt;p&gt;I wanted to bring more of that experience to my own media collection—especially for anime, where opening and ending songs are such an important part of the experience.&lt;/p&gt;

&lt;p&gt;That's why I started working on &lt;strong&gt;Preludarr&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;After considerable development and testing in my homelab, I'm releasing it publicly as a free, open-source project.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;GitHub:&lt;/strong&gt; &lt;a href="https://github.com/shedman214/preludarr" rel="noopener noreferrer"&gt;https://github.com/shedman214/preludarr&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  🎵 What is Preludarr?
&lt;/h2&gt;

&lt;p&gt;Preludarr is a self-hosted theme music manager for &lt;strong&gt;Plex, Jellyfin, and Emby&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;It discovers theme music for anime, TV shows, and movies, lets you preview available tracks, and installs your selected audio as &lt;code&gt;theme.mp3&lt;/code&gt; inside the corresponding media folder.&lt;/p&gt;

&lt;p&gt;Instead of manually searching for songs, downloading audio, converting files, and copying them into each show's directory, Preludarr brings the process into one web interface.&lt;/p&gt;

&lt;p&gt;The goal is simple:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Make your personal media library feel more alive.&lt;/strong&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  📺 What can it do?
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Anime openings and endings
&lt;/h3&gt;

&lt;p&gt;Preludarr uses AnimeThemes to find opening and ending songs for anime TV series and movies.&lt;/p&gt;

&lt;p&gt;You can explore available OP and ED tracks, preview different versions, and choose which song you want to install.&lt;/p&gt;

&lt;p&gt;Anime matching uses title and year information, with additional metadata from AniList and the AniDB title list.&lt;/p&gt;

&lt;h3&gt;
  
  
  Theme discovery for TV shows and movies
&lt;/h3&gt;

&lt;p&gt;Anime isn't the only focus.&lt;/p&gt;

&lt;p&gt;Preludarr also supports theme suggestions for television shows and movies using sources such as Plex TV Themes and ThemerrDB.&lt;/p&gt;

&lt;p&gt;Optional YouTube searching is available for users who provide their own API credentials and cookies file.&lt;/p&gt;

&lt;h3&gt;
  
  
  A visual media library
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fsf0es34a9dxo6c9jycqs.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fsf0es34a9dxo6c9jycqs.png" alt="Preludarr Library" width="800" height="560"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Preludarr provides a library interface where you can:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Browse your titles by root folder.&lt;/li&gt;
&lt;li&gt;Search and filter your collection.&lt;/li&gt;
&lt;li&gt;Identify titles missing theme music.&lt;/li&gt;
&lt;li&gt;Review and select available soundtracks.&lt;/li&gt;
&lt;li&gt;Manage installed themes.&lt;/li&gt;
&lt;li&gt;Use a Theme Queue to review multiple titles.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;You can also configure optional automatic anime theme installation, which is disabled by default.&lt;/p&gt;

&lt;h3&gt;
  
  
  Theme review
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fxe0ycx2no99unp0v933s.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fxe0ycx2no99unp0v933s.png" alt="Preludarr Theme Review" width="800" height="560"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The Theme Browser lets you review available music before making changes to your library.&lt;/p&gt;

&lt;p&gt;I wanted users to have control over what gets installed, rather than relying entirely on automatic matching.&lt;/p&gt;

&lt;h3&gt;
  
  
  Plex, Jellyfin, Emby, Sonarr, and Radarr integrations
&lt;/h3&gt;

&lt;p&gt;Preludarr supports optional integrations with popular media server and library management applications.&lt;/p&gt;

&lt;p&gt;These integrations help identify titles and refresh media servers after a theme is installed.&lt;/p&gt;

&lt;p&gt;Connection options include Plex sign-in, Jellyfin Quick Connect, and Emby authentication.&lt;/p&gt;

&lt;h3&gt;
  
  
  Movie collection themes
&lt;/h3&gt;

&lt;p&gt;Preludarr can also manage theme music for movie collections.&lt;/p&gt;

&lt;p&gt;Plex collection themes are uploaded through Plex. Experimental Jellyfin and Emby collection support is also included, although playback depends on the server and client.&lt;/p&gt;

&lt;h3&gt;
  
  
  Backup, recovery, and customization
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Festvw45ssvjtxe9axn2h.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Festvw45ssvjtxe9axn2h.png" alt="Preludarr Appearance" width="800" height="560"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Other features include:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Manual and scheduled configuration backups.&lt;/li&gt;
&lt;li&gt;Guarded restoration and rollback protection.&lt;/li&gt;
&lt;li&gt;Theme replacement recovery and Undo.&lt;/li&gt;
&lt;li&gt;Library health checks.&lt;/li&gt;
&lt;li&gt;Dark, light, OLED, and customizable visual themes.&lt;/li&gt;
&lt;li&gt;A web interface for managing root folders and integrations.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  🐳 Installing with Docker Compose
&lt;/h2&gt;

&lt;p&gt;Preludarr is available through GitHub Container Registry.&lt;/p&gt;

&lt;p&gt;Here's a basic Docker Compose example:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight yaml"&gt;&lt;code&gt;&lt;span class="na"&gt;services&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
  &lt;span class="na"&gt;preludarr&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
    &lt;span class="na"&gt;image&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;ghcr.io/shedman214/preludarr:latest&lt;/span&gt;
    &lt;span class="na"&gt;container_name&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;preludarr&lt;/span&gt;
    &lt;span class="na"&gt;restart&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;unless-stopped&lt;/span&gt;
    &lt;span class="na"&gt;ports&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
      &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="s"&gt;8788:8787"&lt;/span&gt;
    &lt;span class="na"&gt;environment&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
      &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="s"&gt;PUID=1000&lt;/span&gt;
      &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="s"&gt;PGID=1000&lt;/span&gt;
      &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="s"&gt;TZ=America/Chicago&lt;/span&gt;
    &lt;span class="na"&gt;volumes&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
      &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="s"&gt;./preludarr-config:/config&lt;/span&gt;
      &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="s"&gt;/path/to/tv:/media/tv_shows&lt;/span&gt;
      &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="s"&gt;/path/to/movies:/media/movies&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Change the folder paths, user/group IDs, and time zone to match your environment.&lt;/p&gt;

&lt;p&gt;Your media mounts must permit writing &lt;code&gt;theme.mp3&lt;/code&gt; if you want to install themes.&lt;/p&gt;

&lt;p&gt;Start it with:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;docker compose up &lt;span class="nt"&gt;-d&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Then open:&lt;/p&gt;

&lt;p&gt;&lt;code&gt;http://YOUR-SERVER-IP:8788&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;On first launch, Preludarr provides a one-time setup code in its container logs. Use that code to create your account, then add your library root folders under Settings → Media Management.&lt;/p&gt;

&lt;p&gt;For Unraid users, a Docker template is also available in the GitHub repository. The Community Applications submission is underway.&lt;/p&gt;

&lt;h2&gt;
  
  
  🔐 What about existing media files?
&lt;/h2&gt;

&lt;p&gt;One of my priorities was making sure Preludarr wouldn't damage an existing media collection.&lt;/p&gt;

&lt;p&gt;Preludarr does not rename or delete your video files.&lt;/p&gt;

&lt;p&gt;Theme installations target the selected media folder, and existing theme music is protected from automatic replacement by default.&lt;/p&gt;

&lt;p&gt;When you explicitly replace a theme, Preludarr preserves the previous version in a recovery location so you can undo the change.&lt;/p&gt;

&lt;p&gt;The application also includes backups for its database and settings.&lt;/p&gt;

&lt;p&gt;As with any application that writes to media directories, I recommend testing with a small library first and maintaining your own backups.&lt;/p&gt;

&lt;h2&gt;
  
  
  🚀 Current release and limitations
&lt;/h2&gt;

&lt;p&gt;Preludarr's &lt;strong&gt;1.12 series marks its first stable public release&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;It's primarily been tested on Unraid with Plex. Jellyfin and Emby integrations are available, but have received less testing.&lt;/p&gt;

&lt;p&gt;Some features require additional configuration:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;TMDB or TheTVDB credentials for certain artwork.&lt;/li&gt;
&lt;li&gt;YouTube API credentials and cookies for optional YouTube searching.&lt;/li&gt;
&lt;li&gt;Appropriate filesystem permissions for theme installation.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The application currently supports one user account, and ARM64 hardware testing is still limited.&lt;/p&gt;

&lt;p&gt;I'm continuing to improve compatibility, reliability, and the overall experience.&lt;/p&gt;

&lt;h2&gt;
  
  
  🤝 I'm looking for feedback and contributors
&lt;/h2&gt;

&lt;p&gt;This project started because I wanted a better soundtrack experience in my own homelab.&lt;/p&gt;

&lt;p&gt;Now I'd like to see how it works for other people running Plex, Jellyfin, Emby, Docker, and Unraid.&lt;/p&gt;

&lt;p&gt;I'd especially appreciate feedback about installation, different media folder structures, anime matching, and media server compatibility.&lt;/p&gt;

&lt;p&gt;If you encounter problems or have ideas, feel free to open an issue on GitHub.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;GitHub:&lt;/strong&gt; &lt;a href="https://github.com/shedman214/preludarr" rel="noopener noreferrer"&gt;https://github.com/shedman214/preludarr&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Docker image:&lt;/strong&gt; &lt;code&gt;ghcr.io/shedman214/preludarr:latest&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;License:&lt;/strong&gt; GPL-3.0-or-later&lt;/p&gt;

&lt;p&gt;If you run a self-hosted media server, I'd love to hear what you think.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What would make theme music management more useful in your own library?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Thanks for checking out Preludarr! 🎵&lt;/p&gt;

</description>
      <category>opensource</category>
      <category>selfhosted</category>
      <category>docker</category>
      <category>showdev</category>
    </item>
  </channel>
</rss>
