Commit Graph
41 Commits
Author SHA1 Message Date
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 9bd44284d0 DB optimizations (#572)
DB optimizations
2026-02-10 19:37:20 +01:00
euzuandGitHub 33124393d4 Feature/m3u playlist with extension (#552)
m3u playlist with extensions
2026-01-30 00:20:13 +01:00
euzuandGitHub 2d0ac6f957 Feature/sort epg playlistexplorer normalization fix (#543)
* Fixed series sort issues
* Playlist explorer copy to clipboard functons implemented
* Epg time fix
* grace period hold stream option added.
* Fixed group and mapper normalization
* Image cache validity for browsers set to 4 hours. Responding now  last modified and cache header.
2026-01-27 18:33:16 +01:00
euzu ccdbf1dfce Retry request from reverseproxy retry options 2026-01-22 13:30:59 +01:00
euzuandGitHub f02e8a11a2 Fixed info content type mismatch (#529)
* Fixed info content type mismatch
2026-01-21 15:32:46 +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 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 df2a4e4a72 - Fix for telegram send error
- Fix for series strm generation
- Input disabled is now disabled and can't be forced through cli to be enabled
2026-01-02 13:18:08 +01:00
euzu 25d3454932 Wrong Category Id after update fix 2025-12-30 15:06:16 +01:00
euzu b3a7e6af7c added some events for playlist update,
fixed explorer view image display for channels
2025-12-30 12:31:55 +01:00
euzu d95932227e db iterator fix 2025-12-29 11:13:45 +01:00
euzu bdf268d39a fixed series episode resolve 2025-12-28 11:23:58 +01:00
euzu 9f10cc73a9 Refactored playlist storage 2025-12-27 20:28:22 +01:00
euzu cf0c928730 stream properties refactored 2025-12-27 09:52:28 +01:00
euzu d5207e886f stream properties refactored 2025-12-26 14:09:44 +01:00
euzu c7bc0beb96 stream properties refactored 2025-12-22 17:33:18 +01:00
euzu 2de127122d refactored resolve vod/series functions 2025-12-17 17:37:25 +01:00
euzu 8021d06435 refactored resolve vod/series functions 2025-12-17 09:11:45 +01:00
euzu a571f863bb Integrate local movie file into playlist 2025-12-16 19:59:53 +01:00
euzu c22a3df93b write operations optimized for less memory usage 2025-12-11 20:18:31 +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 ab8e6c0d53 write operations optimized for less memory usage 2025-12-11 14:32:04 +01:00
euzu 55191d6c84 vod resolve refactored
Arc<Client> is now Client
2025-12-11 09:54:28 +01:00
knylbyte adb9e70807 feat: prevent duplicate xtream info fetches for mapping aliases 2025-11-30 20:29:00 +01:00
euzu c6203190e0 File Lock fix 2025-11-14 09:49:48 +01:00
euzu 9bf787953d fixes for series tmdb id 2025-09-20 15:32:14 +02:00
Goldy 49bb65d0f6 Revert "Add is_trakt_group field to PlaylistGroup and update sorting logic"
This reverts commit 27d84edf9c.
2025-08-19 17:33:51 +02:00
Goldy 27d84edf9c Add is_trakt_group field to PlaylistGroup and update sorting logic
- Introduced `is_trakt_group` field in `PlaylistGroup` struct to differentiate between Trakt and non-Trakt groups.
- Updated relevant parsing functions in `m3u.rs`, `xtream.rs`, and `trakt.rs` to set this field appropriately.
- Enhanced sorting logic in `sort.rs` to prioritize Trakt groups during playlist sorting.
- Ensured backward compatibility by defaulting `is_trakt_group` to false where applicable.
2025-08-19 17:09:20 +02:00
euzu bd052562b9 web ui config pages 2025-08-13 23:07:21 +02:00
euzu 78e138e5d8 some clippy fixes 2025-07-24 14:27:57 +02:00
euzu b8bcba585d bincode removed from webui. 2025-07-23 12:49:43 +02:00
euzu 6c238c607f refactored unwrap calls to make it more stable 2025-07-22 11:32:46 +02:00
euzu 504b4df277 Fix shared stream provider connections
Web UI State update through websocket
2025-07-21 22:17:57 +02:00
euzu c292f0b73e config refactor 2025-06-24 11:25:42 +02:00
euzu 7f54327bfd config added to shared model 2025-06-19 16:37:37 +02:00
euzu 2a9c8711e6 project shared added 2025-06-19 12:45:55 +02:00