Commit Graph
156 Commits
Author SHA1 Message Date
Juanjo PresaandGitHub 8a2e379f6d feat: add media-server input foundations (#742)
* feat: add remote media input foundations
* fixed macro variable names
* Added todo comment for source editor sidebar
2026-05-04 20:22:51 +02:00
Juanjo PresaandGitHub 15e4857d4c build: remove vendored OpenSSL dependency (#743)
* build: remove vendored OpenSSL dependency
* remvoed unnecessary comments and clippy fixes
2026-05-04 19:07:41 +02:00
euzuandGitHub e4e31d060d epg merge fix (#737)
* epg merge fix
2026-05-01 20:06:29 +02:00
knylbyteandGitHub 3875a1c89b Feature/ffprobe piped from reqwest (#734)
* fix: video and audio deserialization for db dump
* fix: resolve proivder feature for redirect mode
* fix: enable seek feature for ffprobe on large vod and series elements
* fix: keep seekable ffprobe probes bounded
2026-05-01 11:01:24 +02:00
euzuandGitHub 57805eec36 BPlusTree optimizations (#735)
* BPlusTree optimizations
2026-05-01 10:27:13 +02:00
knylbyteandGitHub b51fc105a4 feat: pipe remote ffprobe probes through reqwest (#730)
pipe remote ffprobe probes through reqwest
2026-04-24 09:59:06 +02:00
knylbyteandGitHub ae4c6d988f fix: resolve provider urls before probing (#726)
* fix: resolve provider urls before probing
* fix: avoid live probe url allocation
2026-04-23 07:26:23 +02:00
euzuandGitHub 48eb5a8478 Connection admission state machine (#723)
Connection admission state machine
2026-04-21 15:21:51 +02:00
euzuandGitHub 9eef3b24e0 Feature/filter resolve probe (#720)
* Filter for resolve
* Filter for probe
2026-04-17 11:57:43 +02:00
euzuandGitHub edc0ceb05e Fix: Vod session handling (#717)
* Fix: Vod session handling
* Review fixes
2026-04-13 12:26:44 +02:00
euzuandGitHub 31a48bc1f3 Feature/structured errors landing page (#705)
- structured errors
- landing page
- fix: table header background
2026-04-06 10:20:52 +02:00
euzuandGitHub c82169542f Fix/hls rewrite css fixes (#685)
* hls uri rewrite fixed
* source editor canvas pan delete icon fix
* css-fixes
* added epg smart match form to input
* staged input fix
* Disable wasm compression
2026-03-31 14:28:43 +02:00
euzuandGitHub bb82798457 Fix/local series episodes (#681)
* Local and provider series uuid generation fixed.
* fixed some local media issues
2026-03-29 15:13:00 +02:00
euzuandGitHub 783c73275e theme refactor, added new themes (#679)
- Theme refactor, added new themes
- Fixed user session cleanup 3h problem
- Fixed sequence sorting with order none
2026-03-28 21:57:13 +01:00
euzuandGitHub 9d35a9cbbe Sorce ordinal by category and channel index (#672)
* Sorce ordinal by category and channel index
* Parsing UserApiRequest from request body or query
* CSS stylings
* media tools refactoring
* xtream info parsing now number/string fields
2026-03-27 15:23:39 +01:00
euzuandGitHub 69e7ae8680 Feature/local media (#671)
* local library default extensions
* series info generation
* local library series episodes
2026-03-26 23:32:22 +01:00
euzuandGitHub a32a503e20 Fix: local media path (#669)
* Fix: local media path
* Fix: xmltv api post request
2026-03-25 20:43:41 +01:00
euzuandGitHub 2fccbb66e5 Fix/scheduled updates logger initialization zombie connections (#664)
* fix: Scheduler preserve forced_targets across config reloads.
hot reload could cause loosing scheduler task targets.

warn logs for:
- process_source: warns when all inputs are disabled for given targets
- process_sources: warns when no sources were processed at all

* Fix: Logger initialization

* Fix: TCP USER TIMEOUT for linux. If a client disrupts the connection, the tcp layer will hold it approx for 5-15 minutes. With this setting we can close in 30 seconds under linux
2026-03-24 23:24:57 +01:00
euzuandGitHub ab1c2217e0 Fix/resolve task enque (#657)
- Source Editor readonly view
- Resolve task fix for series
2026-03-20 17:27:59 +01:00
euzuandGitHub 66915a306d Feature/rbac (#656)
* RBAC implementation
* Schedules config edit mode
2026-03-20 15:31:19 +01:00
euzuandGitHub f0459e7e14 Fix/hls connect m3u parsing probe resolve (#646)
* Fix HLS session handling and disable retry for adaptive segment requests
* Resolve / probe vod task uses last modified date
* Resolve expiration date in input form
* fixed m3u parsing
* fixed wasm opt for frontend build
2026-03-15 23:32:09 +01:00
euzuandGitHub 392bcbfdc2 Fix/resolve probe tasks (#644)
* Fixed issues with probe and resolve tasks
* hls and catchup session fixes
* fixed problem with grace and shared stream
- added fix for missing episode title
2026-03-15 08:32:18 +01:00
euzuandGitHub f47d1ee2c3 Api User Priority (#637)
Added  Api User Priority
2026-03-09 17:12:46 +01:00
euzuandGitHub 497a75e0bb Feature/resolve probe fairness (#636)
* Added Resolve - Probe fairness to avoid probe starvation
* Added Probe setting to setup wizard
* Playlist sort order fix
2026-03-08 14:53:05 +01:00
euzuandGitHub 1dd090d9ec - Staged Input source selection (#635)
* Staged Input source selection
- batch input validation fix
* episode source ordinal fix
* playlist filter streaming
* Input validation fixed
2026-03-07 16:44:27 +01:00
euzuandGitHub 737d04d08b Feature/staged input and path improvements (#632)
* No template file not found error message
* Setup wizard improvmenets
* path improvements
* staged input fix
* path improvements
* Provider dns resolved ips now writing to a file instead of source.yml
* Playlist update hard kill after 1h
* matadata update tmdb fix
* Web UI fixes
* GeoIp update schedule
* batch:// prefix  for aliases
2026-03-06 17:29:42 +01:00
euzuandGitHub 36dcd0ff12 rewrite resource urls for webui (#629)
* rewrite resource urls for webui
* fix for dbviewer
* added metadata update new field
2026-03-05 00:04:53 +01:00
euzuandGitHub 34266e1bcd Feature/some fixes (#627)
* Staged input enabled
* Show default values in config
* tmdb release date fix
2026-03-03 17:54:32 +01:00
euzuandGitHub 765f8f72bc Feature/metadata update (#625)
- Metadata Updater fixes
- Input Form Provider Config
2026-03-02 19:56:22 +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 96a5512b65 TMDB retry fixed and added cooldown. (#613)
New Features

Background probing for Live streams with configurable interval; new input options to trigger probing and toggle background resolution.
Configuration Changes

metadata_update reorganized into grouped sections: log, resolve, probe, ffprobe, tmdb.
FFprobe controls moved under ffprobe.* and now require explicit time/size units; new live ffprobe settings.
Added metadata_update.tmdb.cooldown (default 7d) and grouped TMDB settings.
Bug Fixes

TMDB no-match cooldown to prevent endless requeues.
Documentation

README and UI help updated to reflect grouped metadata_update fields and explanations.
2026-02-26 14:41:02 +01:00
euzuandGitHub 3be0fa347f MetadatResolve hardening rerties after errors (#611)
* MetadatResolve hardening rerties after errors
2026-02-25 19:30:19 +01:00
euzuandGitHub 43909f1a5d - Fixed telegram markdown escape (#606)
- Fixed telegram markdown escape
- Fixed sort order for episodes
- Fixed session stickyness problem for vod and series
- Fixed template resolution
2026-02-24 12:51:51 +01:00
euzuandGitHub d0ce95eb3c Fix/web UI save overrides templates (#604)
- WebUI save overrides templates
- Deadlock during playlist update and metadata background task
- Global templates like mappings
2026-02-23 17:00:11 +01:00
euzuandGitHub 17df82f006 Sort Order (#600)
* Sort Order
* Frontend refactorings
2026-02-20 20:40:48 +01:00
euzuandGitHub fe6a35676c Feature/login background (#599)
* Login particle flow background
* Fixed initial input folder missing problem
2026-02-20 13:09:30 +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 dd7d3c6fe3 Target is updated after all resolve tasks finish (#590)
Target is updated after all resolve tasks finish
2026-02-15 17:31:14 +01:00
euzuandGitHub 688952821e fixed: probe_live was ignored. (#588)
Fix probe_live flag
2026-02-15 11:54:51 +01:00
euzuandGitHub 7b8bdaa49b Feature/stream probe (#585)
Stream probe
2026-02-14 17:52:35 +01:00
euzuandGitHub 38813bb672 Feature/makefile ci and log with local time (#582)
- Add Makefile to simplify installing required tools
- Add CONTRIBUTING.md welcome new contributors
- Add fmt, lint, test tasks to makefile and update CONTRIBUTING.md
- Add CI workflow
-  Log with local date
2026-02-14 12:12:59 +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 360c75dae7 Feature/fix tests (#561)
fixed some tests
2026-02-01 14:45:33 +01:00
euzuandGitHub 33124393d4 Feature/m3u playlist with extension (#552)
m3u playlist with extensions
2026-01-30 00:20:13 +01:00
euzuandGitHub bcc1c4afba sort when no sort is given (#551)
Sort with provider order if no sort config/rules given.
2026-01-29 23:25:59 +01:00
euzuandGitHub 0be9258fc0 epg timeshift refactoring (#550)
epg timeshift refactoring
2026-01-29 18:08:22 +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
euzuandGitHub e01197cf52 Feature/for each genre review (#541)
* New Features
Added for_each DSL construct for iterating over playlist item fields, with split() function support.
Added "genre" as a queryable and editable playlist item field.

Bug Fixes
Improved short EPG request handling with automatic default limits.
Fixed EPG timestamp formatting to use UTC consistently.
2026-01-26 23:04:37 +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