Releases: TimeLance89/RoyalDownloader
Release list
RoyalDownloader v1.0.0-rc.3
RoyalDownloader v1.0.0-rc.3
This release candidate significantly expands Royal Downloader's queue
management, discovery experience, setup workflow, provider coverage, and
deployment reliability while preserving the established Legacy, /api/v1,
WebSocket, Docker, update, and integration contracts.
Download queue
- Replace the former slug-only queue representation with persistent logical
download jobs identified by stablejob_idvalues. - Preserve the same logical job identity throughout preparation, provider and
hoster fallback, restart recovery, and user-triggered retries. - Add a unique
attempt_idfor each execution and retry, persist the
cancellingstate before signalling a worker, and block retries until the
previous worker has actually completed. - Reject stale progress and completion callbacks from older attempts and use a
separate staging directory for every attempt. - Persist active queue jobs and the latest 500 completed, failed, or cancelled
jobs in an atomically written queue snapshot. - Migrate existing slug-based queue files automatically without changing
Watchlist, Telegram, Seerr, or media correlation keys. - Restore interrupted preparation and download jobs as queued work after an
application or container restart instead of presenting stale in-memory
transfers as still running. - Add dedicated Legacy and
/api/v1endpoints for active jobs, queue history,
cancellation, retry, ordering, and manually waking provider checks. - Return an explicit conflict response when a client attempts to pause an
active transfer that cannot be resumed reliably across all supported
download engines and hosters. - Add
job_idto versioned WebSocket snapshots, progress updates, and terminal
events while retaining the existing slug-based event contracts. - Expand the queue interface with per-job progress, transferred and total
bytes, speed, ETA, provider, hoster, errors, ordering controls, cancellation,
retry, and a separate download history. - Improve responsive and touch-friendly queue controls for mobile devices.
- Fail queue-changing API transactions closed when the persistent snapshot
cannot be written instead of silently accepting an in-memory-only state.
Discovery and recommendations
- Add a new guided Mood Mode that recommends content for the current viewing
session based on mood, company, desired intensity, and preferred format. - Add stricter family-selection rules that avoid unsuitable genres and prefer
accessible family, animation, comedy, fantasy, and adventure content. - Combine Mood Mode selections with locally stored taste preferences while
applying only weak preference signals so that a single evening does not
dominate the long-term recommendation profile. - Add global search across movies, series, and anime with Jellyfin availability
filters and batched library matching. - Run catalog searches only after an explicit submission instead of sending
requests continuously while the user is typing. - Change the home-page Top 10 from a weekly selection to a deterministic daily
rotation. - Expand the home discovery program with larger, distinct content lanes and a
manual shuffle action. - Reduce repeated titles across discovery sections and improve distribution
between movies and series. - Keep the home-page series section populated from other enabled providers when
the primary trending source is unavailable. - Improve TMDB artwork hydration so duplicate appearances of the same series
receive the same backdrop and metadata updates. - Restrict portrait-poster fallbacks to ranked Top 10 cards while regular
discovery cards continue to prefer landscape artwork. - Expand the Royal Archive into a searchable media-center-style view for local
and managed content. - Replace the large taste-feedback buttons with a compact, accessible two-way
control for positive and negative recommendations.
Series and episode handling
- Preserve announced future episodes in series details together with their
provider-supplied release date and time. - Display scheduled episodes as unavailable until their release time instead of
hiding them completely. - Prevent scheduled or otherwise unreleased episodes from being added through
subscriptions, automation, or direct queue API requests. - Improve SerienStream season parsing to distinguish playable episodes from
rows that already contain a future episode URL. - Restore hero artwork after an embedded series trailer finishes instead of
leaving the player active indefinitely. - Improve series source resolution and fallback matching across configured
providers.
Providers
- Add Filmo as a movie provider.
- Integrate Filmo into movie search, new and top catalogs, genre discovery,
movie details, source resolution, and configurable provider ordering. - Migrate existing installations to include Filmo at its intended default
priority without repeatedly overwriting later user changes. - Improve Huhu compatibility and provider regression coverage.
- Improve provider and hoster source metadata used by queue jobs and download
status reporting. - Retain configured provider fallback behavior when an individual provider is
unavailable or temporarily blocked.
Setup and deployment
- Add explicit Regular computer and NAS / home server operating modes to
the first-run wizard and settings. - Configure appropriate network binding, browser startup, storage expectations,
and deployment guidance for each operating mode. - Start fresh installations in English and translate the visible setup wizard
immediately when another language is selected. - Require and validate a TMDB API key or read access token before a new setup
can be completed. - Add safe
.envgeneration from.env.examplewhen setup is completed. - Preserve unknown and user-defined environment variables when changing the
operating mode or updating managed values. - Write environment-file changes atomically and apply restrictive file
permissions where supported. - Add
start_windows.cmdas a convenient launcher for regular Windows
installations. - Improve
start.shand mounted-source NAS startup behavior. - Detect deliberately replaced mounted project bundles and activate the changed
source as a new versioned runtime release. - Keep a newer in-app-updated runtime active when the mounted source bundle has
not changed. - Exclude virtual environments, test caches, and runtime identity files from
copied application releases.
Jellyfin and metadata
- Integrate Jellyfin availability information into the expanded global search.
- Improve batched movie and series library matching for large search result
collections. - Improve movie availability-status regression coverage and prevent stale
metadata from replacing newer catalog state. - Expand TMDB summary handling for catalog entries, artwork, genres, runtime,
ratings, and recommendation data. - Continue to prevent already-owned movies and episodes from being added to the
queue.
User interface
- Fix the mobile bottom navigation so it fills the viewport width, respects
device safe areas, and distributes five or six visible destinations without
wrapping. - Improve mobile catalog lazy loading by observing document scrolling as well
as desktop tab-container scrolling. - Add responsive layouts and styling for Mood Mode, expanded discovery lanes,
global search, queue history, and the Royal Archive. - Improve keyboard and focus handling for the new recommendation and search
interfaces. - Refresh frontend cache keys for all affected modules and stylesheets.
Documentation
- Rewrite the main README in English with clearer desktop, NAS,
start.sh, and
Docker Compose installation paths. - Document the two operating modes, required TMDB configuration, persistent
storage, updates, backups, and rollback behavior. - Add dedicated persistent queue job documentation covering states, migration,
atomic persistence, restart recovery, compatibility, and API behavior. - Expand the Android API documentation with persistent job identities, queue
history, controls, and additive WebSocket fields. - Update Docker and provider documentation for the new setup and runtime
behavior.
Quality and maintenance
- Add regression tests for persistent queue migration, atomic snapshots,
history retention, retry and cancellation controls, ordering, and restart
recovery. - Add tests for safe environment-file creation and updates.
- Add provider tests for Filmo and additional Huhu behavior.
- Add tests for scheduled episode release metadata and queue rejection.
- Add tests for operating modes, mandatory TMDB validation, TMDB summaries,
Jellyfin availability, and mounted-runtime activation. - Expand frontend contract coverage for global search, daily Top 10 rotation,
discovery shuffling, Mood Mode, mobile navigation, queue controls, archive
behavior, scheduled episodes, trailer cleanup, and accessible taste feedback. - Update the reviewed Python dependency lock and CI action versions.
- Continue running Python and JavaScript syntax checks, frontend contract tests,
Ruff, Bandit, dependency auditing, Docker Compose validation, the Python test
suite, image builds, health checks, persistence checks, and restart smoke
tests.
Compatibility
- Preserve all existing slug-based queue routes and correlation keys.
- Preserve the established Legacy and
/api/v1HTTP aliases. - Preserve existing WebSocket event names while adding job information
additively. - Preserve existing Docker mounts, media destinations, Stable/Overnight update
channels, backup behavior, and rollback paths. - Existing installations are migrated automatically; no manual queue or
settings conversion is required.
This is a release candidate, not the final v1.0.0 release. Back up at
least .env and data/ before updating. Third-party providers may change
their pag...
RoyalDownloader v1.0.0-rc.2
RoyalDownloader v1.0.0-rc.2
v1.0.0-rc.2 is the second release candidate. It introduces the persistent
two-channel updater model while preserving existing HTTP, /api/v1, WebSocket,
Docker, persistence, update, backup, and rollback contracts.
Highlights
- Stable remains the backward-compatible default and follows
mainonly. - Overnight follows the separate
overnightbranch and is clearly marked as a
potentially unstable development channel. - Channel selection persists across application and container restarts.
- Returning to an older or diverged Stable state requires explicit
confirmation and uses the existing backup and rollback path. - Overnight commits are offered only after the complete Quality workflow has
succeeded for the exact revision. - Application version, selected channel, source branch, installed commit, and
available commit remain separately visible. - Release publication now marks semantic pre-release versions such as this RC
as pre-releases without forcing future stable versions into that state.
This remains a release candidate. Back up data/ and runtime/ before an
upgrade. External providers may change their pages, domains, availability, or
protection mechanisms independently of RoyalDownloader.
Operations
- Install, upgrade, backup, verify, and roll back
- Docker and NAS operation
- Stable and Overnight channels
- Changelog
What's Changed
- feat(updater): add Stable and Overnight channels by @TimeLance89 in #21
- chore(release): prepare v1.0.0-rc.2 by @TimeLance89 in #22
- chore(release): promote v1.0.0-rc.2 to Stable by @TimeLance89 in #23
- fix(release): publish after gated tag creation by @TimeLance89 in #24
- fix(release): finalize idempotent v1.0.0-rc.2 publication by @TimeLance89 in #25
Full Changelog: v1.0.0-rc.1...v1.0.0-rc.2
RoyalDownloader v1.0.0-rc.1
RoyalDownloader v1.0.0-rc.1
This is the first officially versioned Royal Downloader release candidate.
It establishes a reproducible baseline; it is not the final v1.0.0 release.
Highlights:
- modular backend and frontend architecture;
- Docker and NAS operation with persistent queue recovery;
- Jellyfin, TMDB, Telegram, and Seerr integration;
- provider fallbacks, health states, and controlled retries;
- authentication, runtime, path, dependency, and update hardening;
- automated tests, CI validation, and container health smoke tests;
- fast Jellyfin movie detection through a lightweight identity index.
External providers can change pages, domains, availability, or protection
mechanisms at any time. This release does not guarantee uninterrupted access to
third-party sources.
Documentation:
What's Changed
- Telegram-Filmauswahl ergänzen by @TimeLance89 in #1
- Fix: schnelle und zuverlässige Jellyfin-Filmerkennung by @TimeLance89 in #17
- chore(release): prepare v1.0.0-rc.1 by @TimeLance89 in #18
- ci(release): gate manual tag creation on quality by @TimeLance89 in #19
New Contributors
- @TimeLance89 made their first contribution in #1
Full Changelog: https://github.com/TimeLance89/RoyalDownloader/commits/v1.0.0-rc.1