github getmydia/mydia v0.11.1
Mydia v0.11.1

2 hours ago

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 :debrid client 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 :queued lifecycle 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_connection works 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 FileAnalysis worker that backfills and refreshes analysis state out of band.
  • New analysis-state columns on media_files and a shared apply_analysis/2 write 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 ReleaseValidator now 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 SystemConfiguration correctly.
  • CI/build: p2p NIF crates are vendored via importCargoLock to 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.

Don't miss a new mydia release

NewReleases is sending notifications on new releases.