Playlists, Curation & Failover
Pluvira decouples playlist ingestion from channel presentation, allowing you to curate custom channel lists backed by multi-slot failover pools.
1. M3U Playlist Ingestion
Add external M3U/M3U8 URLs or upload local playlist files from the Sources tab in the WebUI:
- Automated Sync: Pluvira periodically refreshes M3U feeds in the background using an internal scheduler.
- Catalog Capacity: The Personal Free Tier processes up to 2,500 total channels in the local database. Pluvira Pro unlocks unlimited ingest capacity.
- Metadata Sanitization: Ingested streams automatically pass through global and source-level rewrite rules.
2. Personal Curated Playlists (“My List”)
“My List” (slug default) represents your custom TV lineup:
- Decoupled Identity: Channels in “My List” (
PersonalChannel) remain persistent in your local database even if underlying stream providers change or remove links. - Free Tier Cap (25 Channels): The Personal Free Tier permits up to 25 active channels in “My List” for playback and dynamic M3U exports.
- Non-Destructive Expiration: When an on-demand trial expires, channels beyond position 25 are preserved intact in the database (displayed with a padlock icon) and excluded from exports. Upgrading to Pro instantly re-activates all channels without re-configuration.
3. Slot-Pool Failover Architecture
Each curated channel maps to a pool of active stream URLs, dynamically sorted by calculated HealthScore:
| Tier | Slot Allocation | Description |
|---|---|---|
| Personal Free Tier | 2 Slots | Slot 0 (Primary Stream) + Slot 1 (Backup Stream) |
| Pluvira Pro Tier | 7 Slots | Slot 0 (Primary) + Slots 1–6 (Multi-tier Failover Pool) |
4. Automatic 3-Retry Player Recovery
When a stream encounters playback failure (HLS error, network timeout, HTTP 404/500):
[Stream Playback Error] │ ▼[Execute 3 Sequential Retries] (Backoff: 500ms ➔ 1000ms ➔ 1500ms) │ ┌────┴────┐ ▼ ▼[Recovered?] [Failed 3x] │ │ [Play] ▼ [Penalize Score (-30 pts)] [Promote Slot 1 Backup] [Seamless Switch (Zero Interruption)]- The built-in player executes 3 sequential retry attempts with progressive backoff.
- If all 3 attempts fail, an offline status report is dispatched to
/api/v1/scanner/report-status. - The offline link is penalized by -30 points in
pluvira_link_status.db. - The player immediately fails over to Slot 1, reorganizing the pool seamlessly.
5. Quarantine & Auto-Purge Engine
- Quarantined State: Streams with
HealthScore <= 20.0or $\ge 3$ consecutive network failures enter quarantine and are excluded from exports. - Manual Bulk Purge: Trigger 1-click cleanup of all quarantined streams from the WebUI.
- Auto-Purge: Configure
config.yaml(auto_purge_quarantine_days: 7) to automatically delete streams dead for more than 7 days.