github fscorrupt/posterizarr 3.3.5
v3.3.5

4 hours ago

Posterizarr v3.3.5 is here! This release brings automated season template generation and batch season updates, massive performance improvements for large Plex TV libraries, critical fixes for Jellyfin 12 collection handling, improved specials detection, real-time WebSocket stability, and full Homepage dashboard support.


🌟 Highlights

🎨 Automated Season Template Generation & Batch Updates

Managing season posters just became effortless:

  • AutoCreateSeasonTemplate: When a show poster is added, replaced, or synced, Posterizarr can automatically generate/update the matching SeasonTemplate image.
  • AutoUpdateExistingSeasonPosters: When enabled alongside the template creator, Posterizarr detects existing seasons (via filesystem and export database) and regenerates all season posters with your new template.
  • Smart Regeneration: A newly created template immediately triggers regeneration ($SeasonTemplateJustCreated), bypassing timestamp caching delays.
  • Gated and configurable directly inside the Web UI Config Editor.

🚀 Massive Plex API Speedups & Resiliency

  • Bulk API Endpoints: TV library metadata queries now utilize Get-PlexSectionSeasonsBulk and Get-PlexSectionEpisodesBulk with 2,000-item pagination, significantly reducing scanning time and network overhead for large TV libraries.
  • Resilient Plex Requests (Invoke-PlexWebRequest): Centralized Plex HTTP logic with exponential backoff, retry handling, and clearer error logging for transient network issues.

🛠️ Jellyfin 12 & Emby BoxSet Collapsing Fix (#665)

  • Under Jellyfin 12, movies assigned to collections/box sets could be collapsed and omitted from library queries.
  • Added CollapseBoxSetItems=false across all modes and the Web UI backend, ensuring 100% of movies and shows are always discovered.

📡 WebSocket, Log Streaming & Cache Hardening

  • Flicker-Free Log Viewer: Reconnecting WebSockets no longer trigger a full log viewer reload.
  • Heartbeats & Silence: Added active ping/pong heartbeats and suppressed benign client disconnect noise (ConnectionReset/BrokenPipe).
  • CSV Inode Tracking: Instant, reliable rotation detection for ImageChoices.csv without artificial sleep delays.
  • Jellyfin / Emby Plugins: Enhanced AssetPathResolver with TTL-backed folder caching and item disambiguation across libraries with identical names.

📊 Homepage Dashboard Widget Integration

  • Added complete documentation and configuration examples for integrating Posterizarr into your Homepage dashboard docs.
  • Live run status, asset statistics, and scheduler monitoring via customapi widgets with optional dark glassmorphism CSS/JS.

📋 Full Changelog

  • Core & Generation:

    • dac9d41e Add AutoCreateSeasonTemplate and AutoUpdateExistingSeasonPosters configuration options.
    • 3f5166e0 Gate season poster update option by template enablement in UI.
    • 5dd3e37f Force season regeneration immediately when a template is created in the same run.
    • 03057fc8 Fix path resolution using -LiteralPath, standardize manual test directories, and preserve text overlays when using templates.
    • f16f735a Fix specials season detection (including localized names like 'Spezial' and Season 0) and preserve override text casing.
    • 01821718 Honor custom provider order and media overrides in prerequisite check.
    • e0ed4c11 Report distinct Movie vs Show counts in library discovery logs.
    • 8a6e5453 Add library Type property and deduplicate show libraries for bulk queries.
  • Plex Integration:

    • 40183269 Optimize Plex metadata fetching with bulk APIs (Get-PlexSectionSeasonsBulk, Get-PlexSectionEpisodesBulk).
    • 8c66efd4 Use Invoke-PlexWebRequest for season children requests in mass restore.
    • 89e68a44 Add resilient Plex request retries with exponential backoff and timeout handling.
  • Jellyfin / Emby Integration:

    • f5533fea / 800232b3 / 74bdb99e Disable boxset collapsing (CollapseBoxSetItems=false) to ensure complete library discovery (#665).
    • 3e4ee671 / a52b7d65 / bbdc3106 Improve WebSocket candidate matching, LibraryName disambiguation, and AssetPathResolver TTL cache.
  • Web UI & Backend:

    • 86642c79 Prevent log viewer refresh on reconnect, add active WebSocket heartbeats, and handle inotify limits.
    • dac9d41e Add backend helpers to detect season template flags, queue season replacements, and harden queue worker loops.
    • d6a818c2 Add documentation and screenshots for Homepage dashboard widgets.

What's Changed

  • Sync main2dev by @fscorrupt in #662
  • Fix incomplete Jellyfin 12 imports caused by BoxSet collapsing by @Rollbacke in #665
  • Automated Season Templates, Plex Bulk API Optimizations, Jellyfin 12 BoxSet Fix & Real-Time Hardening by @fscorrupt in #667

New Contributors

Full Changelog: 3.3.4...3.3.5

Don't miss a new posterizarr release

NewReleases is sending notifications on new releases.