github JellyboxAD/Jellyfin.Plugin.StreamLimit v1.1.0.3

3 hours ago

πŸ‘» v1.1.0.3 β€” No more ghost streams, clearer settings & messages on native apps

Recommended update for everyone. Install it from Dashboard β†’ Plugins (your server picks the right build), then restart Jellyfin.

Jellyfin server Version File
10.11.0 β†’ 10.11.x 1.1.0.3 StreamLimit-v1.1.0.3.zip
12.0 β†’ 12.x 1.1.1.3 StreamLimit-v1.1.0.3-jellyfin12.zip

Important

This release fixes "ghost" streams. Some users were shown with β€” and blocked by β€” streams they no longer had, sometimes while not even connected. If a user was wrongly blocked on 1.1.0.2, updating fixes it; no reset needed.

πŸ› Fixes

  • Ghost streams are gone. A stream now counts only while it is really active: Jellyfin reports it as playing, or media data is actually being sent. A connection left open without sending anything (phone asleep or offline, app killed, a transcode segment the client gave up on) stops counting after 90 seconds, and is closed after 30 minutes. Finished or aborted requests never count.
  • A stop report or session end now always frees the slot, even when old connections of that device are still open.
  • Playback negotiation is no longer stricter than the stream itself β€” a stream that would have been allowed is no longer refused up front (e.g. after closing a browser tab).
  • Automatic cleanup every minute of slots, stopped devices and internal registries, also for users who never come back.

✨ New

  • Your blocked message on native apps, by default β€” Android TV, Swiftfin, Streamyfin, AFinity, Findroid… now receive your message as a 10-second notice instead of a silent spinner. When the Android app's native player is blocked, the message is shown by the app's own interface. Web clients keep the single popup β€” no duplicates.
  • Redesigned settings page β€” six clear tabs (Live, Limits, Blocking, Message, Notifications, Advanced), a searchable user table showing the limit that really applies to each user, a live message preview and an always-visible save bar.
  • Clearer live view β€” only what is counted, with the reason (Playing, Streaming, Recently active, Stopped by the limiter), idle time and open downloads.
  • Reset button per user β€” frees everything a user holds in one click, as a last resort.

πŸ”§ Under the hood

  • Verified end to end on Jellyfin 10.11.11 and Jellyfin 12.3, including a real browser, simulated Android TV / Android / web clients (exactly one message each, none on web), range requests and a connection that stops reading mid-stream.
  • Admin stops now report live connections cut separately from stale entries cleaned up.

πŸ“¦ Install

Add the repository in Dashboard β†’ Plugins β†’ Repositories, then install StreamLimiter from the catalog:

https://raw.githubusercontent.com/JellyboxAD/Jellyfin.Plugin.StreamLimit/main/manifest.json

Tip

If the plugin shows NotSupported after updating: uninstall it, restart, reinstall it from the catalog and restart again. Your limits and settings are kept.

Full changelog: v1.1.0.2...v1.1.0.3

Don't miss a new Jellyfin.Plugin.StreamLimit release

NewReleases is sending notifications on new releases.