Files
tuliprox/docs/src/features.md
T
euzuandGitHub 62aea2a2fe persist table layouts and unify column metadata (#906)
* **New Features**
  * Customize table columns by showing, hiding, and reordering them, with keyboard or pointer controls.
  * Save layouts per account, restore defaults, and resolve conflicts when preferences change elsewhere. On installations without web authentication, settings are shared.
  * CSV tables now support saved layouts for recognized table structures.
* **Bug Fixes**
  * Improved pagination bounds and page-size validation.
  * Settings requests now return clearer errors for oversized or unreadable request bodies, and recheck access after waiting for settings to become available.
* **Documentation**
  * Added guidance for table customization and the settings API.
2026-10-08 13:28:41 +02:00

4.3 KiB

Core Features

Input side

Tuliprox can ingest:

  • M3U / M3U8 playlists
  • Xtream inputs
  • local library content

Output side

Tuliprox can publish:

  • M3U
  • Xtream-style outputs
  • HDHomeRun
  • STRM Files

That makes it usable both for IPTV players and for media-server-oriented workflows.

Playlist processing

  • filter channels and groups
  • manage target-specific group bouquets in whitelist or blacklist mode from the Source Editor
  • rename or normalize entries
  • apply mappings and templates
  • sort and regroup outputs
  • merge multiple inputs into a curated target

Runtime streaming

  • reverse-proxy streams instead of redirecting them
  • proxy M3U catchup and archive playback for template-based and native Flussonic HLS or MPEG-TS URLs
  • keep provider account affinity where clients need it
  • share live streams across users
  • enforce user connection limits
  • prioritize higher-value sessions over lower-priority traffic
  • serve custom fallback videos for failure cases
  • persist optional stream history for per-variant connect/disconnect, startup-failure, and reconnect telemetry
  • aggregate optional QoS snapshots from stream history to rank equivalent channel variants by reliability

Metadata and library

  • resolve VOD and series metadata
  • probe stream capabilities
  • scan local media
  • combine local library content with IPTV-oriented outputs

Operational features

Tuliprox also includes:

  • scheduled playlist refreshes
  • retain the last usable input and target playlists when an update unexpectedly produces no items
  • hot config reload support
  • provider failover and DNS-aware connection rotation
  • integrated download and recording manager with provider-aware fairness, retries, and RBAC
  • notifications and monitoring hooks
  • Web UI with monitoring and web-based configuration ability

Access control

Tuliprox supports role-based access control (RBAC) for the Web UI:

  • fine-grained permissions across 7 domains (config, source, user, playlist, library, system, epg)
  • custom groups with configurable permission sets
  • user-to-group assignments with union-based permission resolution
  • compact bitmask encoding in JWT claims for low-overhead permission checks
  • backward-compatible user file format
  • Web UI admin panel for user and group management

Personal table layouts

The Columns strip at the inline end of each Web UI table opens an overlay panel. Select columns with the checkboxes and reorder them with the handles using mouse or touch. For keyboard control, focus a handle, press Space or Enter, move with Up/Down, and press Space or Enter again to drop it. Escape cancels an active move; otherwise it closes the panel. Required fields remain visible.

Save stores the layout for your account. Cancel discards the draft. Restore defaults resets the draft; save it to remove that table's stored overrides. Changes made in another browser are detected when saving. The panel keeps your draft and lets you explicitly apply it again. A token refresh preserves your layout; switching accounts clears the previous account's settings. Without Web UI authentication, the installation uses shared settings and labels them accordingly.

Settings live under <config_path>/user_settings/, with separate builtin, web, api, and local directories. Back up this directory with the configuration volume. Ordinary lowercase names stay readable; special bytes are percent-encoded, and reserved or long names use a readable prefix plus a complete BLAKE3 hash. Explicit account deletion removes that account's settings. Configuration reloads do not run a settings garbage collector. After manually deleting and recreating an account while the server is stopped, remove its previous settings file yourself. Edit settings files while the server is stopped; invalid files and unsupported versions are never overwritten by the UI.

Accounts CSV layouts are scoped to their header schema. Duplicate headers are distinguished by occurrence; without semantic header IDs, exchanging two identically named headers cannot preserve their individual identity. Ragged rows retain extra fields and show empty cells for missing values. CSV files wider than 256 columns remain readable with the default layout and explain why saving a layout is unavailable. Each settings file supports at most 64 stored tables and 256 KiB. Limit failures leave existing layouts unchanged.