Jump to content

Recommended Posts

Babatom
Posted (edited)

I wanted to share a little side project I've been working on — a lightweight Docker container that turns your Radarr/Sonarr release calendar into a "Coming Soon" library right inside Emby.

What it does:

  • Syncs upcoming releases from Radarr & Sonarr automatically
  • Generates a folder structure that you can add as a mixed-content library in Emby — complete with poster art (with badges), backdrop, .nfo metadata (release date, description, genres, rating, cast for movies), and a placeholder .mp4
  • Adds visual badges on posters: UPCOMING, a countdown ("5 Days"), and episode badge for shows (e.g. S03E07)
  • Cleans up entries that are no longer upcoming
  • Runs on a schedule (default every 6h) via Docker

Built for Unraid, but works on any Docker host.

Testet with Emby Beta v4.10.0.17

It's vibe coded — built with AI — so review the code before using it in production. Use at your own risk!

GitHub: https://github.com/mrt187/release-poster-sync

Edited by Babatom
  • Like 3
Posted
On 7/5/2026 at 6:14 AM, Babatom said:

Syncs upcoming releases from Radarr & Sonarr automatically

Hi.  Why not get this info from the metadata providers instead?

Posted
52 minutes ago, ebr said:

Why not get this info from the metadata providers instead?

If I'm not mistaken, Emby's metadata providers only work with content that's already in your library. With Radarr/Sonarr, I can track titles I'm interested in — including things I don't own yet. This container simply reads that calendar and displays it as a "Coming Soon" shelf, so I know what's dropping soon without having to check Radarr/Sonarr separately.

Posted
21 hours ago, ebr said:

Why not get this info from the metadata providers instead?

— you were right, and I misunderstood at first. v2.0.0 now includes tmdbid/imdbid in the .nfo so Emby fetches cast, trailers, and descriptions itself via TheMovieDb. Thanks for the nudge!

## v2.0.0

- Emby now fetches cast, trailers, and descriptions automatically via TheMovieDb — no TMDB API key required
- Removed yt-dlp trailer download and manual cast fetching
- Added tmdbid/imdbid to .nfo for automatic Emby metadata matching
- Daily sync schedule (00:01) instead of every 6 hours
- XML injection protection for .nfo files
- Cleanup now skipped if Radarr/Sonarr API call fails (prevents accidental wipe)

GitHub: https://github.com/mrt187/release-poster-sync

Posted

This is a really nice addition, currently on Emby stable, I guess it gets real interesting in combination with Home Screen Companion when beta becomes stable.

Thanks for this!

  • Like 1
Posted (edited)

@Babatom How comes that Plugin finds more radarr/sonarr items than it sets up in posters directory?

 

Edit: Enabled DEBUG, now I see, it's because some releases are in calendar but no digital release date is present atm.

 

2026-07-10T18:40:27.793804153Z [release-poster-sync] Führe initialen Sync aus...
2026-07-10T18:40:27.868121994Z [release-poster-sync] 2026-07-10 20:40:27,867 [INFO] Starte Sync (Zeitraum: heute + 1000 Tage, Ziel: /posters)
2026-07-10T18:40:27.890424108Z [release-poster-sync] 2026-07-10 20:40:27,890 [INFO] Radarr: 25 anstehende Filme gefunden.
2026-07-10T18:40:28.113922910Z [release-poster-sync] 2026-07-10 20:40:28,113 [INFO] Eintrag aktualisiert: Scary Movie (2026)
2026-07-10T18:40:28.294110496Z [release-poster-sync] 2026-07-10 20:40:28,293 [INFO] Eintrag aktualisiert: The Death of Robin Hood (2026)
2026-07-10T18:40:28.317387687Z [release-poster-sync] 2026-07-10 20:40:28,317 [INFO] Sonarr: 40 anstehende Episoden gefunden.
2026-07-10T18:40:28.357901591Z [release-poster-sync] 2026-07-10 20:40:28,357 [INFO] Eintrag aktualisiert: House of the Dragon (2022)
2026-07-10T18:40:28.412035904Z [release-poster-sync] 2026-07-10 20:40:28,411 [INFO] Eintrag aktualisiert: Criminal Minds (2005)
2026-07-10T18:40:28.460470072Z [release-poster-sync] 2026-07-10 20:40:28,460 [INFO] Eintrag aktualisiert: Stuart Fails to Save the Universe (2026)
2026-07-10T18:40:28.515429750Z [release-poster-sync] 2026-07-10 20:40:28,515 [INFO] Eintrag aktualisiert: MobLand (2025)
2026-07-10T18:40:28.588055477Z [release-poster-sync] 2026-07-10 20:40:28,587 [INFO] Eintrag aktualisiert: Law & Order Special Victims Unit (1999)
2026-07-10T18:40:28.644210710Z [release-poster-sync] 2026-07-10 20:40:28,644 [INFO] Eintrag aktualisiert: VisionQuest (2026)
2026-07-10T18:40:28.704611767Z [release-poster-sync] 2026-07-10 20:40:28,704 [INFO] Eintrag aktualisiert: Lupin (2021)
2026-07-10T18:40:28.772221131Z [release-poster-sync] 2026-07-10 20:40:28,771 [INFO] Eintrag aktualisiert: The Lord of the Rings The Rings of Power (2022)
2026-07-10T18:40:28.844725678Z [release-poster-sync] 2026-07-10 20:40:28,844 [INFO] Eintrag aktualisiert: The Rookie (2018)
2026-07-10T18:40:28.850359724Z [release-poster-sync] 2026-07-10 20:40:28,850 [INFO] Cleanup abgeschlossen, 0 Eintrag/Einträge entfernt.
2026-07-10T18:40:28.850375452Z [release-poster-sync] 2026-07-10 20:40:28,850 [INFO] Sync abgeschlossen.
2026-07-10T18:40:28.861881264Z [release-poster-sync] Starte Cron-Zeitplan: 1 0 * * *
2026-07-10T18:40:28.866003166Z [release-poster-sync] time="2026-07-10T20:40:28+02:00" level=info msg="read crontab: /app/crontab.rendered"

 

Edited by sh0rty
  • Agree 1
Posted (edited)

Keep up the good work.

 

Edited by sh0rty
  • Agree 1
Babatom
Posted

Different approach – native plugin!
- A Docker container is no longer required.

Each configured row becomes a real Emby library, created and kept in sync automatically under the plugin's data folder. For every upcoming movie and TV episode the plugin writes a proper library entry — a poster with the release date badged in, a backdrop for the hero image, overview and cast, and the actual trailer downloaded locally and surfaced through Emby's native Trailer button (so it plays inside Emby instead of kicking Apple TV/tvOS users out to YouTube). Because these are ordinary library items, they behave like any other media in EmbyHighlights

  • Multiple configurable rows, each its own home-screen library (e.g. a "Digital", a "Physical" and an "In Cinemas" row) with its own release-date type and an "IN CINEMAS" badge where it applies.
  • English & German for badges, dates, overview text and the settings page itself.
  • No manual dependencies: yt-dlp is auto-downloaded on any Docker image, ffmpeg is optional.
  • Runs on a daily schedule; a built-in log viewer means no SSH needed to see what happened.
  • Requires Sonarr and/or Radarr. A free TMDB API key is optional (only needed for local trailer downloads).

Beta – feel free to test it and report bugs or suggest improvements.

*It's vibe coded — built with AI — so review the code before using it in production. Use at your own risk!

ComingSoonPlugin.dll

  • Like 2
sh0rty
Posted (edited)
7 hours ago, Babatom said:

Different approach – native plugin!
- A Docker container is no longer required.

Each configured row becomes a real Emby library, created and kept in sync automatically under the plugin's data folder. For every upcoming movie and TV episode the plugin writes a proper library entry — a poster with the release date badged in, a backdrop for the hero image, overview and cast, and the actual trailer downloaded locally and surfaced through Emby's native Trailer button (so it plays inside Emby instead of kicking Apple TV/tvOS users out to YouTube). Because these are ordinary library items, they behave like any other media in EmbyHighlights

  • Multiple configurable rows, each its own home-screen library (e.g. a "Digital", a "Physical" and an "In Cinemas" row) with its own release-date type and an "IN CINEMAS" badge where it applies.
  • English & German for badges, dates, overview text and the settings page itself.
  • No manual dependencies: yt-dlp is auto-downloaded on any Docker image, ffmpeg is optional.
  • Runs on a daily schedule; a built-in log viewer means no SSH needed to see what happened.
  • Requires Sonarr and/or Radarr. A free TMDB API key is optional (only needed for local trailer downloads).

Beta – feel free to test it and report bugs or suggest improvements.

*It's vibe coded — built with AI — so review the code before using it in production. Use at your own risk!

ComingSoonPlugin.dll 3.66 MB · 0 downloads

DLL is build against Beta. Not usable with 4.9.5.0, if that was your intention.

2026-07-11 19:46:54.934 Error App: Error loading types from assembly
	*** Error Report ***
	Version: 4.9.5.0
	Command line: C:\Users\blingbling\AppData\Roaming\Emby-Server\system\EmbyServer.dll -service
	Operating system: Microsoft Windows 10.0.26200
	OS/Process: x64/x64
	Framework: .NET 8.0.27
	Runtime: C:/Users/blingbling/AppData/Roaming/Emby-Server/system/System.Private.CoreLib.dll
	Processor count: 4
	Data path: C:\Users\blingbling\AppData\Roaming\Emby-Server\programdata
	Application path: C:\Users\blingbling\AppData\Roaming\Emby-Server\system
	System.Reflection.ReflectionTypeLoadException: System.Reflection.ReflectionTypeLoadException: Unable to load one or more of the requested types.
	Could not load file or assembly 'MediaBrowser.Common, Version=4.10.0.17, Culture=neutral, PublicKeyToken=null'. Das System kann die angegebene Datei nicht finden.
	Could not load file or assembly 'MediaBrowser.Model, Version=4.10.0.17, Culture=neutral, PublicKeyToken=null'. Das System kann die angegebene Datei nicht finden.
	Could not load file or assembly 'MediaBrowser.Model, Version=4.10.0.17, Culture=neutral, PublicKeyToken=null'. Das System kann die angegebene Datei nicht finden.
	Could not load file or assembly 'MediaBrowser.Model, Version=4.10.0.17, Culture=neutral, PublicKeyToken=null'. Das System kann die angegebene Datei nicht finden.
	Could not load file or assembly 'MediaBrowser.Model, Version=4.10.0.17, Culture=neutral, PublicKeyToken=null'. Das System kann die angegebene Datei nicht finden.
	Could not load file or assembly 'MediaBrowser.Model, Version=4.10.0.17, Culture=neutral, PublicKeyToken=null'. Das System kann die angegebene Datei nicht finden.
	Could not load file or assembly 'MediaBrowser.Model, Version=4.10.0.17, Culture=neutral, PublicKeyToken=null'. Das System kann die angegebene Datei nicht finden.
	Could not load file or assembly 'MediaBrowser.Model, Version=4.10.0.17, Culture=neutral, PublicKeyToken=null'. Das System kann die angegebene Datei nicht finden.
	Could not load file or assembly 'MediaBrowser.Model, Version=4.10.0.17, Culture=neutral, PublicKeyToken=null'. Das System kann die angegebene Datei nicht finden.
	Could not load file or assembly 'MediaBrowser.Model, Version=4.10.0.17, Culture=neutral, PublicKeyToken=null'. Das System kann die angegebene Datei nicht finden.
	Could not load file or assembly 'MediaBrowser.Model, Version=4.10.0.17, Culture=neutral, PublicKeyToken=null'. Das System kann die angegebene Datei nicht finden.
	Could not load file or assembly 'MediaBrowser.Model, Version=4.10.0.17, Culture=neutral, PublicKeyToken=null'. Das System kann die angegebene Datei nicht finden.
	   at System.Reflection.RuntimeModule.GetTypes(RuntimeModule module)
	   at System.Reflection.RuntimeModule.GetTypes()
	   at Emby.Server.Implementations.ApplicationHost.GetTypes(Tuple`2 assemblyInfo)
	System.IO.FileNotFoundException: Could not load file or assembly 'MediaBrowser.Common, Version=4.10.0.17, Culture=neutral, PublicKeyToken=null'. Das System kann die angegebene Datei nicht finden.
	File name: 'MediaBrowser.Common, Version=4.10.0.17, Culture=neutral, PublicKeyToken=null'
	System.IO.FileNotFoundException: Could not load file or assembly 'MediaBrowser.Model, Version=4.10.0.17, Culture=neutral, PublicKeyToken=null'. Das System kann die angegebene Datei nicht finden.
	File name: 'MediaBrowser.Model, Version=4.10.0.17, Culture=neutral, PublicKeyToken=null'
	System.IO.FileNotFoundException: Could not load file or assembly 'MediaBrowser.Model, Version=4.10.0.17, Culture=neutral, PublicKeyToken=null'. Das System kann die angegebene Datei nicht finden.
	File name: 'MediaBrowser.Model, Version=4.10.0.17, Culture=neutral, PublicKeyToken=null'
	System.IO.FileNotFoundException: Could not load file or assembly 'MediaBrowser.Model, Version=4.10.0.17, Culture=neutral, PublicKeyToken=null'. Das System kann die angegebene Datei nicht finden.
	File name: 'MediaBrowser.Model, Version=4.10.0.17, Culture=neutral, PublicKeyToken=null'
	System.IO.FileNotFoundException: Could not load file or assembly 'MediaBrowser.Model, Version=4.10.0.17, Culture=neutral, PublicKeyToken=null'. Das System kann die angegebene Datei nicht finden.
	File name: 'MediaBrowser.Model, Version=4.10.0.17, Culture=neutral, PublicKeyToken=null'
	System.IO.FileNotFoundException: Could not load file or assembly 'MediaBrowser.Model, Version=4.10.0.17, Culture=neutral, PublicKeyToken=null'. Das System kann die angegebene Datei nicht finden.
	File name: 'MediaBrowser.Model, Version=4.10.0.17, Culture=neutral, PublicKeyToken=null'
	System.IO.FileNotFoundException: Could not load file or assembly 'MediaBrowser.Model, Version=4.10.0.17, Culture=neutral, PublicKeyToken=null'. Das System kann die angegebene Datei nicht finden.
	File name: 'MediaBrowser.Model, Version=4.10.0.17, Culture=neutral, PublicKeyToken=null'
	System.IO.FileNotFoundException: Could not load file or assembly 'MediaBrowser.Model, Version=4.10.0.17, Culture=neutral, PublicKeyToken=null'. Das System kann die angegebene Datei nicht finden.
	File name: 'MediaBrowser.Model, Version=4.10.0.17, Culture=neutral, PublicKeyToken=null'
	System.IO.FileNotFoundException: Could not load file or assembly 'MediaBrowser.Model, Version=4.10.0.17, Culture=neutral, PublicKeyToken=null'. Das System kann die angegebene Datei nicht finden.
	File name: 'MediaBrowser.Model, Version=4.10.0.17, Culture=neutral, PublicKeyToken=null'
	System.IO.FileNotFoundException: Could not load file or assembly 'MediaBrowser.Model, Version=4.10.0.17, Culture=neutral, PublicKeyToken=null'. Das System kann die angegebene Datei nicht finden.
	File name: 'MediaBrowser.Model, Version=4.10.0.17, Culture=neutral, PublicKeyToken=null'
	System.IO.FileNotFoundException: Could not load file or assembly 'MediaBrowser.Model, Version=4.10.0.17, Culture=neutral, PublicKeyToken=null'. Das System kann die angegebene Datei nicht finden.
	File name: 'MediaBrowser.Model, Version=4.10.0.17, Culture=neutral, PublicKeyToken=null'
	System.IO.FileNotFoundException: Could not load file or assembly 'MediaBrowser.Model, Version=4.10.0.17, Culture=neutral, PublicKeyToken=null'. Das System kann die angegebene Datei nicht finden.
	File name: 'MediaBrowser.Model, Version=4.10.0.17, Culture=neutral, PublicKeyToken=null'
	Source: System.Private.CoreLib
	TargetSite: System.RuntimeType[] GetTypes(System.Reflection.RuntimeModule)
	
2026-07-11 19:46:54.934 Error App: LoaderException: Could not load file or assembly 'MediaBrowser.Common, Version=4.10.0.17, Culture=neutral, PublicKeyToken=null'. Das System kann die angegebene Datei nicht finden.
2026-07-11 19:46:54.934 Error App: LoaderException: Could not load file or assembly 'MediaBrowser.Model, Version=4.10.0.17, Culture=neutral, PublicKeyToken=null'. Das System kann die angegebene Datei nicht finden.
2026-07-11 19:46:54.934 Error App: LoaderException: Could not load file or assembly 'MediaBrowser.Model, Version=4.10.0.17, Culture=neutral, PublicKeyToken=null'. Das System kann die angegebene Datei nicht finden.
2026-07-11 19:46:54.934 Error App: LoaderException: Could not load file or assembly 'MediaBrowser.Model, Version=4.10.0.17, Culture=neutral, PublicKeyToken=null'. Das System kann die angegebene Datei nicht finden.
2026-07-11 19:46:54.934 Error App: LoaderException: Could not load file or assembly 'MediaBrowser.Model, Version=4.10.0.17, Culture=neutral, PublicKeyToken=null'. Das System kann die angegebene Datei nicht finden.
2026-07-11 19:46:54.934 Error App: LoaderException: Could not load file or assembly 'MediaBrowser.Model, Version=4.10.0.17, Culture=neutral, PublicKeyToken=null'. Das System kann die angegebene Datei nicht finden.
2026-07-11 19:46:54.934 Error App: LoaderException: Could not load file or assembly 'MediaBrowser.Model, Version=4.10.0.17, Culture=neutral, PublicKeyToken=null'. Das System kann die angegebene Datei nicht finden.
2026-07-11 19:46:54.934 Error App: LoaderException: Could not load file or assembly 'MediaBrowser.Model, Version=4.10.0.17, Culture=neutral, PublicKeyToken=null'. Das System kann die angegebene Datei nicht finden.
2026-07-11 19:46:54.934 Error App: LoaderException: Could not load file or assembly 'MediaBrowser.Model, Version=4.10.0.17, Culture=neutral, PublicKeyToken=null'. Das System kann die angegebene Datei nicht finden.
2026-07-11 19:46:54.934 Error App: LoaderException: Could not load file or assembly 'MediaBrowser.Model, Version=4.10.0.17, Culture=neutral, PublicKeyToken=null'. Das System kann die angegebene Datei nicht finden.
2026-07-11 19:46:54.934 Error App: LoaderException: Could not load file or assembly 'MediaBrowser.Model, Version=4.10.0.17, Culture=neutral, PublicKeyToken=null'. Das System kann die angegebene Datei nicht finden.
2026-07-11 19:46:54.934 Error App: LoaderException: Could not load file or assembly 'MediaBrowser.Model, Version=4.10.0.17, Culture=neutral, PublicKeyToken=null'. Das System kann die angegebene Datei nicht finden.

 

Edited by sh0rty
Babatom
Posted (edited)
42 minutes ago, sh0rty said:

DLL is build against Beta. Not usable with 4.9.5.0, if that was your intention

No, that was a mistake; I’ve updated it if you’d like to test it

 

Works with v4.9.5.0

Tested with v4.10.0.18 beta

ComingSoonPlugin.dll

Edited by Babatom
  • Like 1
Posted (edited)
3 hours ago, Babatom said:

No, that was a mistake; I’ve updated it if you’d like to test it

ComingSoonPlugin.dll 3.66 MB · 0 downloads

Runs nice 👌. Few suggestions:

- On my 1080p Screen, the badges are barely redable, could you make them a little bit larger like in the Docker version?
- Can the forecast be extended to more than 120 days?

Edited by sh0rty

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