Skip to content

v0.3.03 — Fix Now Playing restart race + timing, Always On mode

Latest

Choose a tag to compare

@jstevenscl jstevenscl released this 09 Jul 23:23

What's New

🔒 Fixed a multi-worker race in Now Playing's viewer detection

  • Every Dispatcharr worker process ran Tickarr's background poller independently with no coordination — a single viewer connecting could trigger 2+ simultaneous profile clones and restarts for the same channel
  • Now uses a Redis-based leader-election lock so only one worker runs the poller, sports sweep, EAS sweep, and now-playing sweep loops

⏱️ Fixed on-demand restart timing

  • The overlay restart used to fire the instant a channel reached "active" state — exactly the moment a player transitions from buffering to playing, guaranteeing an interruption
  • Now waits up to 20 seconds for the channel to go active, then gives it a 5-second grace period of real playback before restarting for the profile swap
  • Significantly reduces playback interruptions on players sensitive to mid-stream restarts (Plex, some web/VLC setups)

🆕 Always On trigger mode for Now Playing

  • Previously on-demand only; now supports the same Trigger Mode choice as Custom Text and Sports Ticker
  • Always On assigns the overlay profile permanently at enable time, before any viewer connects — eliminates the restart-on-connect entirely
  • Steady-state cost is unchanged: FFmpeg only runs while a channel is actively connected, regardless of trigger mode

📖 Documentation

  • Clarified that Now Playing requires a genuinely audio-only base profile — no -c:v/-vcodec flag, not even -c:v copy — since Tickarr generates its own video canvas for the overlay and misclassifies profiles carrying a leftover video flag
  • Added an example audio-only profile and a Trigger Mode reference entry to the User Guide

Bundled Files

This release includes: plugin.py, plugin.json, logo.png, eas_tone.wav, eas_tone_ca.wav, ca_city_names.json, channels.json, channel_aliases.json

Checksums

SHA-256: 2a4a7192bf6b21e98094b450938f8f90a159b7ab7594dc47591cfb55ccd20fa1
MD5:     fc6498692454c22fa910b3236c5a34b5