github stevezau/plex_generate_vid_previews 3.1.0
Webhook Support, Live Worker Scaling & Bug Fixes

latest releases: 3.7.4, 3.7.3, 3.7.2...
one month ago

Plex Generate Previews v3.1.0 — Webhook Support, Live Worker Scaling & Bug Fixes

Release Notes — v3.1.0

Highlights

This release delivers Radarr/Sonarr webhook support for single-file processing, live worker scaling (add/remove/pause/resume), improved ETA accuracy, and numerous bug fixes reported by the community.


New Features

  • Radarr/Sonarr Webhook Integration — Receive webhook payloads on media import and process only the imported file(s) instead of scanning the entire library. Includes configurable debounce delay, retry logic, path mappings, and a dedicated Webhooks page in the web UI. (#149)

  • Live Worker Scaling — Add or remove GPU, CPU, and CPU Fallback workers while a job is running, directly from the dashboard. Busy workers finish their current item before being retired. (#145)

  • Pause / Resume Processing — Global pause/resume control that halts dispatch of new tasks while letting active workers finish gracefully. Includes tooltip describing behavior. (#145)

  • CPU Fallback Workers — New worker type that only processes items that fail GPU acceleration (codec incompatibility). Configurable separately from regular CPU workers. (#142)

  • Shared Queue Across Libraries — Workers now process items from all selected libraries in a single shared queue, so idle workers immediately pick up items from the next library instead of waiting for the current one to finish.

Bug Fixes

  • CPU thread setting ignored — Setting CPU threads to 0 in the UI now correctly disables CPU workers. Previously a parsing error always spawned at least one. (#142)

  • ETA not displayed / wildly inaccurate — Per-worker ETA now uses FFmpeg's real-time speed multiplier (e.g. 120x) to calculate remaining wall-clock time instead of a static estimate. (#143)

  • Worker progress showing false precision — Progress percentage now reflects actual sub-percent granularity from FFmpeg instead of whole-number steps with a misleading decimal point. (#144)

  • Job stuck at 100% after removing workers — When all CPU-capable workers were removed while codec-fallback items remained in the queue, the dispatch loop would spin forever. These items are now drained as failures with a clear warning. (#149)

  • NoneType crash on Sonarr webhook payloads — Sonarr TV show payloads with missing or malformed fields no longer cause unhandled exceptions. All webhook path extraction functions have comprehensive None guards.

  • GPU counter briefly showing wrong value on page load — Fixed a race condition where the dashboard would flash config defaults (e.g. "1") before actual worker data loaded.

  • Webhook full-library scan — Webhook-triggered jobs no longer scan the entire Plex library. File paths are resolved using bounded recent-item lookups (configurable via WEBHOOK_RECENT_LIMIT / WEBHOOK_FALLBACK_LIMIT environment variables).

Improvements

  • Better path mappings — Webhook file paths are expanded through all configured path mappings for reliable matching across multi-disk setups.
  • Improved logging — More detailed and consistent log output for webhook events, worker lifecycle, job progress, and debug diagnostics.
  • Log viewer improvements — Better log scrolling behavior in the web UI.
  • UI tooltips — Added tooltips for pause/resume and worker scaling controls.
  • Documentation — Added webhook setup guides for Radarr/Sonarr, updated API reference with webhook endpoints, and added screenshots.

Testing

  • Expanded test suite from ~450 to 830+ tests covering webhooks, worker scaling, ETA calculation, path resolution, job lifecycle, and concurrency edge cases.

Upgrading

Pull the latest image and restart your container. No configuration migration is required — new settings (webhook delay, retry count, webhook secret) use sensible defaults and can be adjusted in Settings.

For Radarr/Sonarr webhook setup, navigate to the new Webhooks page in the web UI and follow the instructions.

Don't miss a new plex_generate_vid_previews release

NewReleases is sending notifications on new releases.