This release warns when an Xtream subscription has expired or is about to, lets a failing Dispatcharr account switch to a working server, and shows each Dispatcharr stream's findings on its own row.
Xtream
- The account's expiry, status and
authflag are judged when the playlist opens: expiring soon (within 7 days), expired, banned or disabled, or rejected (auth: 0). Unknown status words never raise an alarm (#295). - A banner reports an unusable or soon-expiring account: red when the channels will not play, amber for an upcoming expiry. After a scan, if at least half of the checked channels were refused with HTTP 401/403, it names the account as the likely cause (#295).
- Opening an expired or rejected account fails with that cause instead of "Xtream server returned no live or VOD content". Saved playlists still fail over to their other mirrors and report the account error only if none opens. The server tester reports it too, and shows the account's status and expiry (#295).
- The report panel gains an Xtream Status row, and both account rows are colored by state (#295).
- A playlist download that never connects reports "Timeout", "DNS failure" or "Connection refused", read from the error chain. A saved playlist whose mirrors were all unreachable says so in one line, listing the causes (#295).
Dispatcharr
- The provider-down banner offers Test servers for Xtream Codes accounts. The test uses the account's own login from Dispatcharr, starting with its current server and the servers tried for it before (#296).
- Picking a working server re-reads the account, refuses if its server changed meanwhile, updates
server_url, verifies it and asks Dispatcharr to refresh the account. Streams that keep their provider stream ID are rewritten in place. Plain M3U accounts are not offered the switch. Changing an account needs a Dispatcharr admin connection (#296). - The server test probes no more servers at once than the smallest connection limit they report, so a one-connection account no longer makes every server after the first look dead (#296).
- The quality-label check reads the provider stream name (
x-dispatcharr-stream-name) instead of the row title, which is the Dispatcharr channel's name. A stream named 4K that probes 720p is now flagged as mislabeled, in scans and after in-app playback (#297). - Stream rows show their findings as chips after the stream name: mislabel ("720p, not 4K"), low frame rate, low bitrate, frozen video, missing media info and a dead stream's reason. Hovering a chip shows the full explanation. Results from earlier scans keep their old label results until rescanned (#297).
Fixes
- The stream proxy reports hosts that do not resolve as a DNS failure ("Upstream host not found", HTTP 502) instead of as a private network address with HTTP 403.
Dependencies
- All JS and Rust dependencies updated, including Tauri 2.12.5,
fancy-regex0.20 andcast-sender0.4 (#298).
Full changelog: v2.2.1...v2.3.0