Skip to content

Releases: TechJedi51/floating-posters

v2.2.7 — Python 3.14 base image

Choose a tag to compare

@TechJedi51 TechJedi51 released this 15 Jun 22:43

v2.2.7

  • Base image upgraded from python:3.13-slim to python:3.14-slim (current stable) to address CVE-2026-7210 (medium, XML DoS — no practical impact on this container but resolved for compliance)

v2.2.6 - Saves Temp First

Choose a tag to compare

@TechJedi51 TechJedi51 released this 15 Jun 22:05

What's New in v2.2.6

🎨 7 Animation Styles

Choose your animation per-video in the yaml with ANIMATION_STYLE:

Style Description
bounce Sine-wave vertical float (original)
fade Static grid, fade in/out only
wave Left-to-right cascade with staggered delay
pop-in Each poster scales from large down to grid size, staggered
carousel Elliptical orbit with depth-based scaling (3-D feel)
spotlight Soft searchlight sweeps the full grid in random order
drift Parade — one poster at a time travels across the screen

🔦 Spotlight

Full grid always visible. A dark overlay with a soft elliptical searchlight beam travels between posters in random order using smooth interpolation. Each poster gets equal time.

🎠 Drift

One poster at a time eases in from the edge, pauses at centre, eases out. 6+ posters automatically split into two staggered rows. Fully tunable overlap, timing, and row offset.

🔒 Atomic File Write (v2.2.6)

Output is now written to .tmp_<name>.mp4 first, then moved atomically into place. Plex always sees a complete file — no more partial reads mid-render.

🐛 Fixes

  • Spotlight double-move at slot boundaries fixed
  • Pop-in date label log spam fixed
  • Animation style and parameters now shown in job log header

Full changelog in README.md

v2.2.5 — Animation Styles

Choose a tag to compare

@TechJedi51 TechJedi51 released this 01 May 00:52

What's New in v2.2.5

🎨 7 Animation Styles

Choose your poster animation per-video in the yaml file with ANIMATION_STYLE:

Style Description
bounce Sine-wave vertical float (original)
fade Static grid, fade in/out only
wave Left-to-right cascade with staggered delay
pop-in Each poster scales from large down to grid size
carousel Elliptical orbit with depth-based scaling
spotlight Searchlight sweeps across the full grid in random order
drift Parade of posters travelling across the screen

🔦 Spotlight

Full grid always visible with a dark overlay. A soft elliptical searchlight beam travels between posters in random order using smooth interpolation. Tunable darkness, beam size, and soft-edge falloff.

🎠 Drift

One poster at a time travels across the screen — eases in from the edge, pauses at centre, eases out. 6+ posters automatically use two staggered rows. Fully tunable overlap, entry/pause/exit timing.

🐛 Fixes

  • Spotlight no longer double-moves at slot boundaries
  • Pop-in date labels no longer spam the log
  • Animation style and parameters logged in the job header

v2.1.0 — 7 animation styles: bounce, fade, wave, pop-in, carousel, spotlight, drift

Choose a tag to compare

@TechJedi51 TechJedi51 released this 30 Apr 22:04
v2.1.0 — 7 animation styles: bounce, fade, wave, pop-in, carousel, sp…

v2.0 First public release

Choose a tag to compare

@TechJedi51 TechJedi51 released this 28 Apr 02:28
  • Version bump marking the first stable public release
  • All core features complete and tested: multi-video yaml processing, Radarr/Sonarr integration, NeXroll registration, built-in scheduler, multi-row poster layout, text overlays, 17 bundled fonts, startup retry logic

v1.9.9 — skip duplicate NeXroll registration on repeat runs

Choose a tag to compare

@TechJedi51 TechJedi51 released this 22 Apr 02:53
Update floating_posters.py

v1.9.9 — skip duplicate NeXroll registration on repeat runs

v1.9.8 — PYTHONUNBUFFERED=1 and python3 -u for reliable Docker log output

Choose a tag to compare

@TechJedi51 TechJedi51 released this 22 Apr 02:33
Logging issue fix

v1.9.7 — fix NeXroll path field name, suppress moviepy progress bar

Choose a tag to compare

@TechJedi51 TechJedi51 released this 22 Apr 02:26
Update floating_posters.py

NeXroll expects the field to be called path, not file_path. The API docs were wrong. Two fixes in one go: field name and suppress the progress bar noise.

v1.9.6.1 - Fix UnboundLocalError: move category_id log to after lookup

Choose a tag to compare

@TechJedi51 TechJedi51 released this 22 Apr 02:20
Update floating_posters.py

Fix UnboundLocalError: move category_id log to after lookup

v1.9.6 — log full NeXroll responses, fix category ID extraction

Choose a tag to compare

@TechJedi51 TechJedi51 released this 22 Apr 02:13
Update floating_posters.py

NeXroll API chnages