Posterizarr is an automated asset maker for Plex, Jellyfin and Emby libraries. It builds the artwork a media server does not generate for itself — posters, season posters, backgrounds, title cards and Clearlogos — by pulling textless images from Fanart.tv, TMDB, TVDB, Plex and IMDb, then applying your own overlays and text on top so the whole library looks like one collection instead of a pile of unrelated uploads.
Under the hood it is a PowerShell script wrapped in a full web UI, shipped as a Docker image that runs on Linux, Windows, macOS and ARM. The UI is where the work happens now: you configure providers and overlays, watch a run in progress, review the assets it produced, swap a Clearlogo by hand, and re-run the parts that came out wrong — all from the browser, without editing scripts or re-running a container by hand.
A media library looks finished or unfinished depending on its artwork, and doing that artwork by hand does not scale past a few dozen titles. Posterizarr automates the repetitive part — find the textless poster, apply the same overlay, write the same title card, export it where the media server expects it — while leaving a way to intervene on the individual items that the automation got wrong. Because it writes into the library’s own asset folders and produces a Kometa-compatible structure, it slots into an existing Plex, Jellyfin or Emby setup without becoming another library manager; the server still owns the metadata, Posterizarr only supplies the images.
The supported path is Docker: the published Compose file uses ghcr.io/fscorrupt/posterizarr:latest, runs as 1000:1000, publishes port 8000 and mounts four directories — /config for configuration, /assets for generated artwork, /assetsbackup and /manualassets. Environment variables cover the essentials: TZ, RUN_TIME (set disabled to rely on the scheduler or on triggers instead of a timed run), APP_PORT if you move the UI off 8000, and DISABLE_UI=true for headless deployments. Unraid and the other platforms are covered by the project’s documentation site. After the first start, open http://localhost:8000, add the media server and the provider API keys, set the overlays, and run a first pass on a single library before letting it loose on everything. From v2.2.50 the project collects anonymous usage statistics (an anonymous GUID, OS, target media server and app version — no IP, no paths); it can be turned off with "telemetry": false in config.json.
Free and open source, licensed under the GNU General Public License v3.0 (GPL-3.0); the full text is in the repository’s LICENSE file.