Commit Graph
61 Commits
Author SHA1 Message Date
knylbyteandGitHub faac89325b feat: add provider DNS IP-connect, resolved persistence, and SNI-safe failover (#624)
* feat: add provider DNS IP-connect, resolved persistence, and SNI-safe failover
2026-03-02 12:24:05 +01:00
knylbyteandGitHub f8ae4c9d56 fix: use manual redirects only for http proxies and apply proxy setting to ffprobe subprocess (#612)
* fix: use manual redirects only for http proxies
* fix: sync panel api on manual playlist update
* fix: route ffprobe probes through configured proxy
* fix: handle non-unicode proxy env vars safely
* fix: serialize panel api sync and align sync naming
* fix: manually follow hls redirects when proxy is configured
* fix: align hls manual redirect with proxy scheme
* fix: emit playlist update failure when lock is closed
* fix: align probe and scheduler paths for upstream merge
* fix: remove playlist lock retry and name hls redirect limit
2026-02-26 20:36:01 +01:00
euzuandGitHub 815487e4f5 Fix/peristed m3u file invalid provider url (#595)
Fixed m3u playlist with  provider_config persistence as text file
Added probe_delay input option (default 2s); stream probing renamed “Stream Probing” and now covers live, VOD and series as a low‑priority background task.
2026-02-18 08:18:28 +01:00
euzuandGitHub 7b8bdaa49b Feature/stream probe (#585)
Stream probe
2026-02-14 17:52:35 +01:00
euzuandGitHub fc0f1f32aa Enhanced Metadata Resolution, Stream Analysis & Improved STRM-Output. Added connection priority management.
**Description:**
This PR introduces a major overhaul of how streams are analyzed and connections are managed. It integrates `ffprobe` for deep stream analysis, adds a background task queue for metadata resolution to prevent UI blocking, introduces a connection priority system, and adds support for Live TV probing.

### 🚀 Key Features

*   **FFprobe Integration & Live TV Probing**:
    *   Automatically probes streams (VOD/Series **and now Live TV**) to determine resolution, codecs (HEVC/AV1), dynamic range (HDR/DV), bit depth, and audio channels.
    *   **Safe Probing**: Probing strictly respects the provider's `max_connections` limit.
    *   Docker images now include static `ffmpeg/ffprobe` binaries.

*   **Smart Connection Management (Priority System)**:
    *   Introduced a priority system for connections to manage provider limits intelligently.
    *   **Preemption**: Users with higher priority can preempt (kick) lower priority connections when provider slots are full.
    *   **Background Queue**: Metadata resolution and stream analysis run as background tasks (Priority 0). They only run when connection slots are idle and yield immediately if a real user needs to stream.

*   **Enhanced Metadata Resolution**:
    *   **Fallback Logic**: If a provider is missing the TMDB ID or Release Date, the system resolves them via the TMDB API.
    *   **Smart Title Cleaning**: Implemented a centralized cleaner to strip common IPTV prefixes before attempting metadata matches or generating filenames, significantly improving match rates.

*   **Improved Output**:
    *   **Quality Tags**: Filenames in STRM files now include detailed tags (e.g., `Movie - [4K HEVC HDR].strm`).
    *   **Flat Grouping**: `flat: true` now correctly groups multi-version movies into single folders based on TMDB ID.
    *   **Global Series Date**: Ensures consistent series folder naming even if episodes have different years.
2026-02-12 15:06:57 +01:00
euzuandGitHub 555bc2cce1 Feature/provider config (#570)
New Features
- Automatic provider failover & rotation across multiple provider URLs with a provider:// scheme and capped retries
- Configurable failover redirect patterns to influence retry/failover behavior
UI

- New interface to view and edit failover redirect patterns in reverse proxy configuration

- Expanded docs covering Provider Failover & Rotation and enriched messaging templating
Reliability

- Improved URL resolution, error reporting and logging for more robust provider handling
2026-02-10 11:53:42 +01:00
knylbyteandGitHub 7bcb9c17c3 Bugfix/proxy auth (#557)
gitignore added debug directory and codex instructions STEPS.md
fix: preserve proxy auth across redirects
fix: fail when proxy client build fails
fix: keep no-redirect fallback policy
fix: drop auth headers on cross-origin redirects
fix: ignore NO_PROXY for redirect handling
Fix redirect fails proxy authentification
2026-02-01 13:37:49 +01:00
euzuandGitHub 748fca44b3 Feature/request timeout and web UI updates (#555)
* Idle timeout for requests implemented
* fix: user api path
* WebUI Added APi Proxy Config
2026-01-31 15:29:32 +01:00
euzu 6ae663f024 New Features
Aliases can now be individually enabled or disabled to manage active sources.

Bug Fixes
Improved channel identification accuracy in XMLTV outputs.

Style
Disabled aliases display with strikethrough text for better visibility.
2026-01-26 17:44:32 +01:00
euzuandGitHub 9a6b7e574b epg fix (#537)
New Features
Aliases can now be individually enabled or disabled to manage active sources.

Bug Fixes
Improved channel identification accuracy in XMLTV outputs.

Style
Disabled aliases display with strikethrough text for better visibility.
2026-01-26 17:37:01 +01:00
euzuandGitHub 62f7611125 Feature/log fixes and button styling (#536)
fixed some logs, added input name
epg short response hos now no errors field
added missing fields for reverse_proxy and library config in ui
fixed button styling
2026-01-25 16:32:35 +01:00
euzuandGitHub a407f209a8 Messaging templates (#534)
Messaging templates
2026-01-25 12:41:18 +01:00
euzu ccdbf1dfce Retry request from reverseproxy retry options 2026-01-22 13:30:59 +01:00
euzuandGitHub cc2e50549d Feature/panel api update (#524)
Panel Api update
2026-01-20 18:51:46 +01:00
euzuandGitHub 16fcd7f882 Optimizations
* New Features

Added series information display with episodes, cast, and metadata in playlist explorer
Introduced multi-cluster playlist endpoints (live, VOD, series) for flexible content retrieval
Added series info lookup and filtering capabilities
Implemented sidebar navigation for source editor with dedicated pages (Main, Options, Staged, Advanced, Alias)
Added filter state controls (All, Selected, Deselected) for playlist category management
Enabled Trakt configuration toggle to control integration
Performance Improvements

Optimized B+Tree indexing for faster queries
Reduced startup latency with disk-based operations and optional memory caching
Improved string memory handling through efficient reference-counted strings
UI Enhancements

Enhanced playlist explorer with series details and episode grouping by season
Added new UI icons (Options, Advanced, Staging, Alias, Trakt)
Improved form layouts with toolbar controls
Enhanced radio button group styling for better visual hierarchy

* New Features

Added series information display with episodes, cast, and metadata in playlist explorer
Introduced multi-cluster playlist endpoints (live, VOD, series) for flexible content retrieval
Added series info lookup and filtering capabilities
Implemented sidebar navigation for source editor with dedicated pages (Main, Options, Staged, Advanced, Alias)
Added filter state controls (All, Selected, Deselected) for playlist category management
Enabled Trakt configuration toggle to control integration
Performance Improvements

Optimized B+Tree indexing for faster queries
Reduced startup latency with disk-based operations and optional memory caching
Improved string memory handling through efficient reference-counted strings
UI Enhancements

Enhanced playlist explorer with series details and episode grouping by season
Added new UI icons (Options, Advanced, Staging, Alias, Trakt)
Improved form layouts with toolbar controls
Enhanced radio button group styling for better visual hierarchy

* New Features

Added series information display with episodes, cast, and metadata in playlist explorer
Introduced multi-cluster playlist endpoints (live, VOD, series) for flexible content retrieval
Added series info lookup and filtering capabilities
Implemented sidebar navigation for source editor with dedicated pages (Main, Options, Staged, Advanced, Alias)
Added filter state controls (All, Selected, Deselected) for playlist category management
Enabled Trakt configuration toggle to control integration
Performance Improvements

Optimized B+Tree indexing for faster queries
Reduced startup latency with disk-based operations and optional memory caching
Improved string memory handling through efficient reference-counted strings
UI Enhancements

Enhanced playlist explorer with series details and episode grouping by season
Added new UI icons (Options, Advanced, Staging, Alias, Trakt)
Improved form layouts with toolbar controls
Enhanced radio button group styling for better visual hierarchy

* New Features

Added series information display with episodes, cast, and metadata in playlist explorer
Introduced multi-cluster playlist endpoints (live, VOD, series) for flexible content retrieval
Added series info lookup and filtering capabilities
Implemented sidebar navigation for source editor with dedicated pages (Main, Options, Staged, Advanced, Alias)
Added filter state controls (All, Selected, Deselected) for playlist category management
Enabled Trakt configuration toggle to control integration
Performance Improvements

Optimized B+Tree indexing for faster queries
Reduced startup latency with disk-based operations and optional memory caching
Improved string memory handling through efficient reference-counted strings
UI Enhancements

Enhanced playlist explorer with series details and episode grouping by season
Added new UI icons (Options, Advanced, Staging, Alias, Trakt)
Improved form layouts with toolbar controls
Enhanced radio button group styling for better visual hierarchy
2026-01-20 10:09:58 +01:00
euzu 6f776782f1 Playlist Update Optimization: Reduced Memory Usage
An optimization has been introduced to reduce memory consumption during playlist updates.

Overview
Previously, provider playlists were fully loaded into memory during the update process. For large playlists (e.g. hundreds of thousands of entries or multiple providers), this could result in significant RAM usage.
With the new implementation, it is now possible to optionally read provider playlists directly from disk instead of keeping them entirely in memory.

How It Works
 - users can configure whether:
     - Provider playlists are loaded into memory (previous behavior), or
     - Provider playlists are streamed to/from disk to minimize RAM usage.

Processing remains sequential and batch-based, ensuring identical functional behavior.
This approach significantly lowers peak memory usage, especially on systems with limited resources.

Benefits

- Reduced peak RAM consumption during playlist updates
- Better scalability for large playlists and multiple providers
- Full backward compatibility

Trade-offs / Drawbacks

 - Increased processing time due to reduced in-memory caching
 - Higher disk I/O usage, especially for large or fragmented playlists
 - Performance depends more strongly on disk speed (Nvme SSD, HDD)
 - Slightly increased CPU overhead due to repeated parsing and deserialization
 - Not optimal for environments where fast updates are more important than memory usage

Recommendation

 - Use in-memory mode for systems with sufficient RAM and a focus on update speed
 - Use disk-based mode for large playlists, multiple providers, or memory-constrained environments
2026-01-08 15:54:12 +01:00
euzu 8cc9283a31 Playlist Update Optimization: Reduced Memory Usage
An optimization has been introduced to reduce memory consumption during playlist updates.

Overview
Previously, provider playlists were fully loaded into memory during the update process. For large playlists (e.g. hundreds of thousands of entries or multiple providers), this could result in significant RAM usage.
With the new implementation, it is now possible to optionally read provider playlists directly from disk instead of keeping them entirely in memory.

How It Works
 - users can configure whether:
     - Provider playlists are loaded into memory (previous behavior), or
     - Provider playlists are streamed to/from disk to minimize RAM usage.

Processing remains sequential and batch-based, ensuring identical functional behavior.
This approach significantly lowers peak memory usage, especially on systems with limited resources.

Benefits

- Reduced peak RAM consumption during playlist updates
- Better scalability for large playlists and multiple providers
- Full backward compatibility

Trade-offs / Drawbacks

 - Increased processing time due to reduced in-memory caching
 - Higher disk I/O usage, especially for large or fragmented playlists
 - Performance depends more strongly on disk speed (Nvme SSD, HDD)
 - Slightly increased CPU overhead due to repeated parsing and deserialization
 - Not optimal for environments where fast updates are more important than memory usage

Recommendation

 - Use in-memory mode for systems with sufficient RAM and a focus on update speed
 - Use disk-based mode for large playlists, multiple providers, or memory-constrained environments
2026-01-08 15:11:12 +01:00
euzu e5e94a5f28 Fix stream session poisoning and correct headers handling 2026-01-04 10:54:41 +01:00
euzu 1abf9e81c8 Updated database structure
- Using Slotted Pages
- Using compression
- Using file locking to prevent race conditions
2025-12-29 13:46:55 +01:00
euzu d5207e886f stream properties refactored 2025-12-26 14:09:44 +01:00
euzu 76bde0fcc4 stream properties refactored 2025-12-22 21:00:58 +01:00
euzu 19b8153fa5 stream properties refactored 2025-12-22 18:00:42 +01:00
euzu 37985c0324 Integrate local movie file into playlist 2025-12-16 16:43:11 +01:00
euzu 73017363cc xtream and m3u parsing with streaming 2025-12-12 16:10:08 +01:00
euzu 2738f8b7f3 xtream and m3u parsing with streaming 2025-12-12 15:49:10 +01:00
euzu ee0441877d xtream and m3u parsing with streaming 2025-12-12 15:33:41 +01:00
euzu 80660312e4 write operations optimized for less memory usage 2025-12-11 20:02:20 +01:00
euzu a522d2863b write operations optimized for less memory usage 2025-12-11 19:50:31 +01:00
euzu 1193fc2265 write operations optimized for less memory usage 2025-12-11 19:27:56 +01:00
euzu 55191d6c84 vod resolve refactored
Arc<Client> is now Client
2025-12-11 09:54:28 +01:00
euzu 72fef10b86 Xtream Codes Batch provider accounts are now checked for expiration. 2025-11-22 11:07:50 +01:00
euzu 98dc80dd75 SyncIOBridge caused tokio panic 2025-11-21 01:35:04 +01:00
euzu a14253519e fixed some async file operations 2025-11-20 13:40:04 +01:00
euzu e6338b69a2 Added braking change info
fixed a notification message, added input name
2025-11-20 13:08:37 +01:00
euzu d2779a3e30 Some fixes for async handling 2025-11-20 13:00:01 +01:00
DarkBreakpoint 000df50b76 EPG export async 2025-11-19 15:07:30 -06:00
euzu 6f2be9693c Using async file operations 2025-11-14 22:45:08 +01:00
euzu 66bba7b96b Merge remote-tracking branch 'dark-breakpoint/async-file-copy' into feature/async_playlist_persistence 2025-11-14 16:32:24 +01:00
DarkBreakpoint c65e9181e4 Use tokio::fs for playlist persistence to avoid blocking async paths 2025-11-14 08:58:11 -06:00
euzu c7f772f43b Fixed login screen flicker through wrong response handling in WebUI 2025-11-13 21:39:50 +01:00
euzu ef567e3ce7 better connection handling 2025-11-10 01:52:13 +01:00
euzu 55c2bdabba better connection handling 2025-11-10 01:30:23 +01:00
euzu b69ed4921e better connection handling 2025-11-10 01:04:13 +01:00
knylbyte 45a3fcd659 feat: added enhanced header handling for outgoing request in reverse proxy mode 2025-10-31 17:04:35 +01:00
euzu bcf9de2d89 Hls request headers added for fringerprinting. 2025-10-14 19:04:32 +02:00
euzu 4b667b939f Hls request headers added for fringerprinting. 2025-10-14 18:47:38 +02:00
euzu 4e549f6603 Fixed invalid epg text content parsing 2025-10-01 17:06:41 +02:00
euzu 2e91cd9615 Epg View optimization
Added async stream based xml parsing
2025-09-30 14:46:18 +02:00
euzu 9ae71b99d5 Fixed SeriesInfo episode data-type problem,
Added accept_unsecure_ssl_certificate to config.yml
2025-09-19 12:15:24 +02:00
euzu 346478b260 Staged input 2025-08-13 13:40:41 +02:00