Releases: fscorrupt/posterizarr
v2.2.40
What's New?
🖼️ Automated Logo Management
I’ve added a massive new feature set for managing your Plex ClearLogos:
- LogoUpdater: Automatically scan your libraries and fetch high-quality logos from TMDB, TVDB, and Fanart.
- LogoRevert: Changed your mind? Revert mode identifies logos uploaded by Posterizarr and restores the original Plex defaults.
- Multi-Library Support: Run updates or reverts across a single library or your entire collection at once.
🔒 Security Improvements
- Implemented SSRF and Path Traversal protections to ensure external URL fetching and file paths remain secure.
- Sanitized API error responses to improve the security posture of the web interface.
🛠️ Improvements & Fixes
- UI Refactor: Smoother, faster modals for Run Modes and Library browsing.
- Bug Fixes: Resolved issues with duplicate action buttons and improved handling of assets with special characters.
What's Changed
- Sync Main to dev by @fscorrupt in #554
- feat: introduce LogoUpdater, LogoRevert, and Security Hardening by @fscorrupt in #555
Full Changelog: 2.2.39...2.2.40
v2.2.39
🚀 Features & Improvements
- Enhanced Jellyfin/Emby Search: Expanded the API query fields (
Tags,Width,Height,Path,ProviderIds, etc.) and improved search robustness. If a strict series path match fails, the system will now intelligently fallback to search as a movie type to recover the match. - Smart Season Titling: In Manual Mode, selecting a folder will now auto-set the title to "Season X" (if in season mode) rather than strictly grabbing the base folder name, improving the overlay generation workflow.
- Precise
mediaTypeRouting: ThemediaType(movie vs. show) is now explicitly passed through the asset replacement flow from the frontend to the backend, ensuring the correct Poster/Card flags (-MoviePosterCardor-ShowPosterCard) are triggered during upload. - Expanded Debug Logging: Added more descriptive logging for Jellyfin/Emby search URIs and item resolutions to make troubleshooting easier.
🐛 Bug Fixes
- TMDB Logo Language Check: Fixed a bug where the
$langcheck would always evaluate to true due to an incorrect-oroperator. It now correctly uses-andto filter outnullandxxlanguages. by @kevbentz in #552 - Season Overlay Application: Fixed an issue in the image composition command where the standard
$Posteroverlaywas being applied to season posters instead of the intended$Seasonoverlay.
⚙️ Maintenance & Under the Hood
- Updated GitHub action runner parameters to force Node 24 (
FORCE_JAVASCRIPT_ACTIONS_TO_NODE24). - Bumped
softprops/action-gh-releasetov3.
Full Changelog: 2.2.38...2.2.39
v2.2.38
🛠 Improvements
- WebUI Backend (
main.py):- Implemented
final_langlogic to normalize language codes. - Added explicit mapping for "Textless" assets using the
xxcode. - Added automatic conversion of 3-letter codes (ISO 639-2) to 2-letter codes (ISO 639-1).
- Implemented
What's Changed
- Sync Main Manifest by @fscorrupt in #549
- Normalize TVDB artwork language codes and map textless to 'xx' by @fscorrupt in #550
Full Changelog: 2.2.37...2.2.38
v2.2.37
🛠 Improvements & Fixes
- WebUI: Added
show_titlesupport for better asset matching. - PowerShell: Added
-SkipExifCheckoption toUploadOtherMediaServerArtwork. - Metadata:
- Default
PreferredMetadataLanguagetoenif not set. - Improved HDR detection logic to filter out invalid
'None'strings.
- Default
- Backend: Enhanced search query logic in
main.pyto useshow_titlefor more accurate TMDB/TVDB lookups.
What's Changed
- Sync Main Manifest by @fscorrupt in #547
- feat: enhance metadata handling and skip-exif support by @fscorrupt in #548
Full Changelog: 2.2.36...2.2.37
v2.2.36
Summary
Version v2.2.36 is a massive leap forward. We’ve upgraded our WebUI to a lightning-fast new engine, patched critical security vulnerabilities, fixed a lingering configuration bug in the core script, and added highly requested features like Show-specific overlays and multi-instance Tautulli support!
✨ New Features
- Show-Specific Overlays: You can now define separate overlays specifically for TV Shows! We've added
showoverlayfileandshowbackgroundoverlayfileto the config. If left blank, they will automatically fall back to your standard overlays. - Manual Mode Auto-Sync: Running manual mode? Posterizarr will now automatically upload your processed assets directly to Plex, Jellyfin, or Emby, just like the automated triggers do. (if Upload2Plex is enabled, Jelly/Emby by default)
- Multi-Instance Tautulli Support: The Tautulli
trigger.pyscript has been completely rewritten. It now supports flexible arguments and a new-pflag, allowing you to easily direct triggers to multiple different Posterizarr instances. (See the updated Tautulli docs for setup!)
🚀 Improvements
- Vite v8 & Rolldown: The WebUI backend has been upgraded to Vite 8 with Rolldown, providing a faster, more modern UI bundling experience.
- Smarter Logo Recoloring: Upgraded the logo chroma detection to use the HCL colorspace. Posterizarr is now much smarter at determining if a logo is a flat color before attempting to recolor it.
- WebUI Queue Dates: Fixed an issue where the queue view dates would render incorrectly on Safari and iOS devices.
- Localization: Refined translation strings in German, French, Italian, English, and Portuguese.
🛡️ Security & Bug Fixes
- State Bleed Bug Squashed: Fixed a crucial issue in the core processing loop where skipping an overlay or border on one item would accidentally disable it for the rest of the queue.
- Security Hardening: Patched three high/moderate severity vulnerabilities in the Vite Dev Server (including CVE-2026-39363) that could lead to unauthorized file access.
- ImageMagick: Fixed syntax errors related to stroke width arguments when rendering text.
What's Changed
- Sync Main to dev by @fscorrupt in #545
- feat/chore: Vite v8 upgrade, Show-specific overlays, Tautulli refactor, and core logic fixes by @fscorrupt in #546
Full Changelog: 2.2.35...2.2.36
v2.2.35
What's Changed
- Sync Main to dev by @fscorrupt in #543
- Npm Deps Updates. by @fscorrupt in #544
Full Changelog: 2.2.34...2.2.35
v2.2.34
What's Changed
- Bug: Fix media server query on jelly arr trigger. by @fscorrupt in #542
Full Changelog: 2.2.33...2.2.34
v2.2.33
This release brings an important security patch, massive speed improvements to Plex EXIF scanning, and better handling for HDR and Dolby Vision content. We highly recommend updating to this version.
🔒 Security
- Patched Picomatch: Resolved a known method injection vulnerability related to POSIX character classes in the
picomatchdependency. - Localhost Binding: The server now binds to
localhostby default to ensure it isn't unintentionally exposed to your broader network. (Check the new networking docs if you need to adjust this!)
⚡ Performance Improvements
- Lightning Fast Plex Scans: We've replaced full downloads with a 64KB fast-scan for Plex EXIF checks. This significantly speeds up
UploadExistingAssetswhen local assets already have EXIF data.
✨ Features & Improvements
- Smart Logo Conversion: Posterizarr now detects a logo's color dominance before converting it to white, resulting in much cleaner overlays.
- HDR & Dolby Vision Support: Added deep parsing for MediaStreams, HDR resolutions, and
DOVIWithEL(Dolby Vision with Enhancement Layer) handling. - Kometa Integration: We've added a brand new guide for integrating with Kometa! Check the navigation to read up on it.
- UI Updates: The AssetReplacer UI has been compacted for a cleaner look.
🐛 Bug Fixes
- Fixed an issue where Season text extraction was failing on the Asset Replace Modal.
- Fixed Jellyfin plugin synchronization logic.
- Fixed minor typos, cleaned up JSX formatting, and removed redundant cleanup tasks.
What's Changed
- feat: detect logo color dominance before applying white conversion by @MrRobotoGit in #536
- perf: use fast-scan (64KB) for Plex EXIF check instead of full download by @MrRobotoGit in #538
- feat: fast-scan Plex EXIF, smart logo conversion, and security patches by @fscorrupt in #540
New Contributors
- @MrRobotoGit made their first contribution in #536
Full Changelog: 2.2.32...2.2.33
v2.2.32
What's Changed
- Sync GH Action Updates by @fscorrupt in #533
- Fix: Manual Mode season text by @fscorrupt in #534
Full Changelog: 2.2.31...2.2.32
v2.2.31
What's Changed
📢 Highlights
This version focuses on making Posterizarr more "set-and-forget" with automated asset cleanup and better scheduling reliability. I’ve also added a major documentation piece for those using dashboarding tools.
What's New?
- Dashboard Integration: You can now easily add Posterizarr stats to your Homepage dashboard. Check out the new "Homepage Custom API" section in the docs!
- Smart Asset Cleanup: The backend now detects if a manual asset is newer than a generated one and cleans up the outdated versions automatically.
- Improved Log Handling: The Log Viewer is now much smarter at finding available logs and falling back to the UI logs if the script logs haven't been generated yet.
🛠️ Bug Fixes & Improvements
- Fixed an issue where poster exponents were not being applied correctly.
- Fixed "Gravity" selection in the Config Editor to ensure compatibility with backend requirements.
- Improved Scheduler stability to prevent crashes during job retrieval.
- Fixed centered alignment issues on text strokes.
CI/CD: Upgraded internal build workflows to Node 24 for better performance and security.
- Sync by @fscorrupt in #531
- feat: Homepage Integration, Asset Cleanup, and CI Improvements by @fscorrupt in #532
Full Changelog: 2.2.30...2.2.31