Mydia v0.11.1
A patch release on top of v0.11.0. It brings the iOS player to TestFlight and carries over everything from v0.11.0 below.
📱 What's new in v0.11.1
- The Mydia iOS player is now in open beta on TestFlight. Join with the link in the README or the Remote Access docs.
- Release builds now distribute to the public TestFlight Beta group automatically.
Full Changelog: v0.11.0...v0.11.1
Mydia v0.11.0
v0.11.0 lands two new ways to download, a rebuilt media-analysis pipeline, an in-app feedback channel, and a pile of reliability fixes across downloads and auth. If you've been on :beta, most of this has already been running in your install.
🎬 What's new
Debrid download clients
Mydia now speaks debrid. Real-Debrid, AllDebrid, Premiumize, and TorBox are first-class download clients, with a dedicated admin UI, connection testing, and a per-download fetcher that pulls completed files into your library staging directory.
- New
:debridclient type with its own provider behaviour, rate limiter, and per-download fetcher GenServer. - Real-Debrid runs natively; AllDebrid, Premiumize, and TorBox run through Bypass.
- Downloads surface a proper
:queuedlifecycle on the Downloads page instead of looking stuck. - Hardened against real-world edge cases: RFC1918 ranges no longer block Real-Debrid CDN traffic, error codes map to sensible states, and
test_connectionworks on both fresh and saved forms.
rqbit torrent client
A native adapter for rqbit, the lightweight Rust BitTorrent client. It plugs into the same adapter registry as qBittorrent and Transmission, including untracked-torrent matching.
Rebuilt media analysis
ffprobe no longer runs inline on the import hot path. Analysis now goes through a dedicated pipeline:
- Port-based ffprobe with a hard timeout and SIGKILL, so a wedged probe can't stall imports.
- A recurring
FileAnalysisworker that backfills and refreshes analysis state out of band. - New analysis-state columns on
media_filesand a sharedapply_analysis/2write helper. - Self-healing for cropped 1080p media and stuck partial-state analyses, with cross-database queries that work on both SQLite and Postgres.
In-app feedback
There's now a feedback form built into the app, so you can send a report without leaving Mydia. It routes through the metadata relay's feedback inbox for triage.
Jellyfin NFO on library scan
NFO files now get written when items are imported through a library scan, not just on metadata refresh, so Jellyfin-side metadata stays in sync however media enters your library.
🛠 Reliability & fixes
- OIDC / Authelia: disabled pushed authorization requests (PAR) and the OIDC request parameter natively, fixing JAR rejection against Authelia and similar providers.
- Release validation at grab time: the
ReleaseValidatornow runs when a release is grabbed, not just at search, so bad releases are rejected earlier. - Malware retry loop: unimportable malware downloads stop retrying forever instead of hammering the import path.
- Download adapter resolution is consolidated onto the Registry; an unresolved adapter degrades to an error instead of crashing the queue.
- Search: episode counts fall back to the database when metadata reports zero, fixing season-pack threshold logic.
- Player: consistent FadeForwards page transition across platforms, and the iOS build links
SystemConfigurationcorrectly. - CI/build: p2p NIF crates are vendored via
importCargoLockto dodge crates.io 403s during Nix builds.
Upgrading
Pull the v0.11.0 image (or :latest). No manual migration steps. Existing download clients and libraries are unaffected; debrid and rqbit are opt-in from the download-client admin.