What's fixed
1. Bandwidth (video_bitrate) is now saved
Previously, 0 of all checked streams had video_bitrate populated in stream_stats. The plugin only read the per-stream bit_rate, which is almost always missing on live MPEG-TS / HLS feeds.
-show_formatis now always passed to ffprobe.probe_data['format']['bit_rate']is the new fallback when stream-level is missing.- The packet-based fallback now filters by video
stream_indexso audio packets don't dilute the result.
2. Streamlink-only channels (YouTube, Twitch, Kick, …) no longer get deleted
ffprobe cannot validate URLs that Dispatcharr serves through Streamlink. Those channels would always probe Dead and, with auto-delete enabled, get permanently removed.
check_streamnow early-returnsstatus='Skipped'for hosts that cannot be probed by ffprobe.- New Streamlink-Only Hosts setting (default:
youtube.com, youtu.be, twitch.tv, kick.com). Blank falls back to defaults; entries are matched as host suffixes. delete_dead_channelsnow intersects the dead-ID set with the currently loaded scope before issuing DELETE — defends against staleresults.jsonand scheduler/UI scope mismatches.Skippedis reported separately fromDeadin the summary, CSV export, and webhook payload.
3. Scheduler picks up settings edits without requiring a manual action
Cron runs previously used the closure snapshot of settings from plugin-init time. Editing settings (e.g. switching group_names from "" to "News") wouldn't take effect until a manual action restarted the scheduler.
- New
_fresh_settings(fallback)helper re-readsPluginConfigfrom the DB on each fire.
Verified in container
| Test | Result |
|---|---|
| Streamlink-host parser (defaults, blank, mixed-case, leading dot) | ✓ |
_is_streamlink_only_url host matching
| ✓ |
check_stream Skipped path returns full metadata schema
| ✓ |
_fresh_settings reads live settings from DB
| ✓ |
delete_dead_channels safety gate (no DELETE confirmation)
| ✓ refused |
End-to-end on 3 live News streams: video_bitrate populated (6303, 3785, 2703 kbps)
| ✓ |
_update_dispatcharr_metadata writes video_bitrate=5790.78 to stream_stats
| ✓ persisted |