Commit Graph
587 Commits
Author SHA1 Message Date
euzu 45c10edd3d ci: bump version v3.3.147 2026-10-12 14:36:37 +00:00
euzu d9482aeca1 ci: bump version v3.3.146 2026-10-12 07:54:15 +00:00
euzu e6032679ac ci: bump version v3.3.145 2026-10-09 23:15:32 +00:00
euzu d158b152d2 ci: bump version v3.3.144 2026-10-09 15:43:05 +00:00
d35875e3d1 fix hls close revision file at reader deadline (#907)
* fix hls close revision file at reader deadline

Move the progressive revision reader onto its own task and feed the
response stream through a bounded channel. At the deadline the watchdog
aborts the reader, so the file handle and revision pin are released
even if a stalled client never polls the stream again.

Each open revision file now holds its own pin, so GC cannot retire a
revision while a handle is open, including one held by an in-flight
blocking read.

* fix hls close revision file at reader deadline

Move the progressive revision reader onto its own task and feed the
response stream through a bounded channel. At the deadline the watchdog
aborts the reader, so the file handle and revision pin are released
even if a stalled client never polls the stream again.

Each open revision file now holds its own pin, so GC cannot retire a
revision while a handle is open, including one held by an in-flight
blocking read.

---------

Co-authored-by: euzu <euzu@proton.me>
2026-10-09 17:41:39 +02:00
euzu 7cfd9ac3a9 ci: bump version v3.3.143 2026-10-08 11:29:50 +00:00
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
euzu e5313faa38 ci: bump version v3.3.142 2026-10-07 16:42:29 +00:00
euzu ac0dad8342 ci: bump version v3.3.141 2026-10-07 13:42:46 +00:00
euzu aa687e6e3f ci: bump version v3.3.140 2026-10-06 17:29:10 +00:00
euzu 509e2cfeee ci: bump version v3.3.139 2026-10-06 05:56:43 +00:00
euzu 7511f719f1 ci: bump version v3.3.138 2026-10-05 17:56:23 +00:00
euzu 9183ca0846 ci: bump version v3.3.137 2026-10-05 10:20:26 +00:00
euzu 9cebb510ef ci: bump version v3.3.136 2026-10-04 14:04:05 +00:00
euzuandGitHub 91f6c57159 Fix/merge live and vod recording (#876)
feat(dvr)!: unify live and VOD/series recording into one recoverable DVR

Merge fix/merge_live_and_vod_recording into develop.

- One recording queue for scheduled live captures and VOD/series transfers,
  with a shared transition graph, provider-slot scheduling, resumable HTTP
  transfers (strong ETag / Last-Modified validation) and ffmpeg live capture.
- Crash-recoverable persistence: B+Tree repository with a journal-first
  recovery history; one file can be shared by several library entries.
- Admission checks quota and disk on request, at transfer start (real size)
  and before an entry attaches to a finished file; idempotent requests.
- REST is command-only; state reaches clients via owner-filtered WebSocket
  snapshots.
- Deleting a recording removes the file once no entry holds it; removing an
  entry keeps a finished file and cleans up orphaned partials.
- User ids derive from the configured username (web:/api:); the identity
  registry is gone.
- Spanish locale added; ru/ar completed; locale parity test.

BREAKING CHANGE: `video.download` is now `video.recording` (nested
`recording` keys move up, `download_priority`/`recording_priority` become
`priority`); old configs fail to load with a migration hint.
BREAKING CHANGE: `/api/v1/file/download*` and `/file/record` are removed in
favour of `/api/v1/recording/*`.
BREAKING CHANGE: `download.*` and `recording.write` permissions are replaced
by `recording.read|create|manage|delete`; tokens from before the change must
re-authenticate.
BREAKING CHANGE: the old recording queue does not migrate; existing
`identity_registry.json` is ignored.
2026-10-04 16:02:55 +02:00
euzu b4290e8724 ci: bump version v3.3.135 2026-10-03 16:09:21 +00:00
euzuandGitHub 3b656f56b5 fix(hls): return upstream status for HLS resources (#896)
* fix(hls): return upstream status for HLS resources

- no TS fallback for failed segments, init and keys
- bounded capacity wait on pinned account (manifest 5s, media 2s)
- reject waiting requests after session end or account switch
- per-origin provider cookie jar, read at send time
- opt-in flussonic_hls_audio_tracks input option

* fix(hls): return upstream status for HLS resources

- no TS fallback for failed segments, init and keys
- bounded capacity wait on pinned account (manifest 5s, media 2s)
- reject waiting requests after session end or account switch
- per-origin provider cookie jar, read at send time
- opt-in flussonic_hls_audio_tracks input option

* fix(hls): return upstream status for HLS resources

- no TS fallback for failed segments, init and keys
- bounded capacity wait on pinned account (manifest 5s, media 2s)
- reject waiting requests after session end or account switch
- per-origin provider cookie jar, read at send time
- opt-in flussonic_hls_audio_tracks input option
2026-10-03 18:07:59 +02:00
euzu e85361736c ci: bump version v3.3.134 2026-10-02 18:17:45 +00:00
euzu 154206ed74 ci: bump version v3.3.133 2026-10-01 16:56:29 +00:00
euzu 559d18a373 ci: bump version v3.3.132 2026-10-01 12:47:36 +00:00
euzu 93b1603412 ci: bump version v3.3.131 2026-10-01 06:19:04 +00:00
euzu 6f9687c890 ci: bump version v3.3.130 2026-09-30 23:24:33 +00:00
euzu c09c06f663 ci: bump version v3.3.129 2026-09-30 15:31:19 +00:00
euzu 02fba44fd4 ci: bump version v3.3.128 2026-09-30 08:44:20 +00:00
euzu 59e0f242ab ci: bump version v3.3.127 2026-09-30 07:03:47 +00:00
euzu 67515b120e ci: bump version v3.3.126 2026-09-27 08:25:35 +00:00
euzu de577f6773 ci: bump version v3.3.125 2026-09-27 07:43:45 +00:00
euzu 11efe7a24e ci: bump version v3.3.124 2026-09-26 16:57:25 +00:00
euzu 3e1bb60551 ci: bump version v3.3.123 2026-09-26 15:05:04 +00:00
725917f12b Fix/policy trusted destinations (#883)
* fixing resource url problem

* fix(resources): classify resource destinations per hop and keep the proxy in the fetch path
A resource URL is classified (public / non-public / local) before it reaches a client, and every
redirect hop is classified and fetched again: non-public hops connect directly, public hops go
through the configured proxy, local hops are refused. Adds the public no-redirect resource client,
a process-wide destination memo, and regression tests for the redirect and Web UI paths.

* fix(resources): classify resource destinations per hop and keep the proxy in the fetch path
A resource URL is classified (public / non-public / local) before it reaches a client, and every
redirect hop is classified and fetched again: non-public hops connect directly, public hops go
through the configured proxy, local hops are refused. Adds the public no-redirect resource client,
a process-wide destination memo, and regression tests for the redirect and Web UI paths.

---------

Co-authored-by: euzu <euzu@proton.me>
2026-09-26 17:03:09 +02:00
euzu cfc78fd64a ci: bump version v3.3.122 2026-09-25 06:23:11 +00:00
euzuandGitHub 2c07d52b93 Fixed max user connection screen when grace granted (#880)
* **Bug Fixes**
  * Improved live-stream session handling during instant grace periods, including when a session has not yet been created.
  * Corrected connection-limit and eviction tracking so active streams remain eligible for eviction even when their session record is unavailable.
  * Improved reliability when switching between live channels under connection limits.
* **Improvements**
  * Updated staged M3U overlays for Xtream providers: staged groups determine selected categories and channels, while unmatched categories remain available. Provider categories with no usable staged channels are retained.
* **Documentation**
  * Clarified how staged Xtream and M3U playlists affect provider categories and channels.
2026-09-25 08:22:11 +02:00
euzu 0d60a54d3e ci: bump version v3.3.121 2026-09-24 16:11:17 +00:00
euzu 688806da01 ci: bump version v3.3.120 2026-09-24 15:38:40 +00:00
Juanjo PresaandGitHub 0d4f113c54 feat: add TMDB Trending target curation (#872)
- add target-wide TMDB Trending discovery for movie/TV and day/week, bounded by an optional `limit` (default 100, range 1–500) of unique remote references before local matching
- compose concrete Trakt and TMDB sources under one target curation policy while retaining legacy `output[].trakt` compatibility
- match only positive TMDB IDs of the same media kind and preserve existing catalog identities, series closure, and Xtream alias behavior
- require every active selector to complete before target IDs, writers, caches, or watches can change
- preserve the YAML-owned block through Source Editor operations and add TMDB setup/failure documentation and application Credits attribution
- validate complete decoded pages under independent request, selector, and shared target-batch budgets, using a configured TMDB-only HTTP profile with certificate/hostname verification and no redirects or replays
2026-09-24 17:36:34 +02:00
euzu 06e2b35009 ci: bump version v3.3.119 2026-09-23 22:52:04 +00:00
euzu e6ceddec9a ci: bump version v3.3.118 2026-09-23 20:47:10 +00:00
euzu 211e305650 ci: bump version v3.3.117 2026-09-22 14:53:13 +00:00
euzu 2297b3700a ci: bump version v3.3.116 2026-09-22 13:04:15 +00:00
euzuandGitHub 2adc18adbc resource policy trusted destinations (#875)
* **New Features**
  * Added a Resource Policy editor for each input, supporting trusted hostnames and private network ranges.
  * Resource URLs now retain their source input and use authenticated links where supported.
  * Resource caching is scoped to the policy authorizing access.

* **Bug Fixes**
  * Invalid or unsupported resource values are safely discarded.
  * Redirects and destination addresses are rechecked against the applicable policy.

* **Breaking Changes**
  * Private DNS destinations require approved hosts and networks; private IP literals require an approved network.
  * Input and alias names must be non-empty and globally unique.
2026-09-22 15:02:22 +02:00
euzu fbc1e669fe ci: bump version v3.3.115 2026-09-22 10:23:40 +00:00
euzu 3ffdfc2018 ci: bump version v3.3.114 2026-09-19 08:19:20 +00:00
euzuandGitHub 6a567d264e Feature/connection handling (#869)
* **New Features**
  * Added an opt-in runtime liveness watchdog with diagnostics, health status, and optional automatic restart.
  * Added configurable stream cleanup capacity and eviction re-entry protection.
  * Expanded configuration and UI access for users with playlist or user permissions, with safer data sanitization.
  * Added testkit scenarios and reporting for playback, admission, provider limits, sharing, and VOD behavior.
  * Added support for experimental-branch Docker builds.

* **Bug Fixes**
  * Improved provider prioritization, shared playback capacity, cleanup, reconnect handling, and concurrent client behavior.
  * Fixed playlist parsing for declared media types.
  * Release links now use the configured destination.
2026-09-19 10:17:23 +02:00
euzu c2a636282c ci: bump version v3.3.113 2026-09-15 11:38:51 +00:00
euzu 97779c54d5 bumped version to 3.3.112 2026-09-15 13:37:54 +02:00
euzu 37d2732cf9 ci: bump version v3.3.111 2026-09-15 10:52:14 +00:00
euzuandGitHub fa5d3237f1 added docker ulimits, .env support, ptt fix (#867)
- **New Features**
  - Added automatic `.env` loading for secrets and environment variables, with custom file paths and existing-environment precedence.
  - Added a `--env-file` option and a sample environment configuration template.
  - Increased Docker file descriptor limits for improved reliability under high connection counts.

- **Bug Fixes**
  - Fixed title parsing for multi-byte UTF-8 characters, preventing crashes and incorrect volume extraction.

- **Documentation**
  - Added guidance for `.env` configuration, Docker usage, restart requirements, and resolving file descriptor exhaustion.
2026-09-15 12:51:09 +02:00
euzu 2833fba738 ci: bump version v3.3.110 2026-09-14 14:51:48 +00:00
euzu da9c03a688 ci: bump version v3.3.109 2026-09-09 18:44:09 +00:00
145b082a4f refactor: extract source-neutral playlist curation (#860)
* refactor: extract source-neutral playlist curation

* fix: keep curation matches within media kind

---------

Co-authored-by: Juanjo Presa <juanjop@gmail.com>
2026-09-09 20:40:53 +02:00