96 pull requests since v0.17.0, across four betas. Mydia can now be translated, in the web UI and in the player, and ships Brazilian Portuguese. Private trackers get first-class support with a seeding guard, manual search is redesigned, titles move between libraries, cast members open people pages, and the player can play straight from a folder, a WebDAV share or an SMB share.
There are 7 new migrations, all additive or data repairs. Read the upgrade notes before pulling.
Translation
- The web UI is translatable. Each user picks a language on their profile or leaves it on Automatic to follow the browser, admins can set an instance default with
DEFAULT_UI_LANGUAGE, and translators contribute through Weblate (#1255, #1256, #1258, #1260, #1266, #1269). - Brazilian Portuguese for the web UI (#1259).
Private trackers
- Every search result carries the tracker's terms (private, minimum ratio and seed time, freeleech and upload factors), overridable per tracker from the Indexers page, YAML or
TRACKER_RULE_<N>_*(#1323). - Seeding guard: a download is kept until it meets its ratio or seed time, and qBittorrent and Transmission receive the limits at grab (#1324).
- Quality profiles can prefer freeleech, manual search shows freeleech and private badges, per-tracker daily grab and query limits apply, and passkeys never reach the browser or logs (#1325, #1327).
- Private-tracker logins work end to end on both Cardigann engines, including UNIT3D API keys and expiring captcha or 2FA sessions (#1322).
Search and downloads
- Manual search is redesigned: an indexer filter, quality, source and codec chips, full release names, a layout that fits phones, and releases that failed before are marked with an explanation when a grab would be refused (#1271, #1303, #1305, #1330, #1343).
- Search results and imports read quality through one parser, so labels match everywhere (#1273, #1275).
- The built-in Cardigann engine agrees with Prowlarr on every recorded definition, checked by a parity oracle (#1296, #1299, #1308).
- The Downloads Issues tab is one filtered list with a one-tap fix per row, row clicks are no longer lost during refresh, and path-mapping suggestions are computed once when an import fails instead of freezing the page (#1253, #1261, #1333).
- The media page says which episodes are downloading, and Movies and TV Shows can be filtered by Downloading (#1307, #1331).
- qBittorrent reuses its WebUI session, so qBittorrent 5.3 no longer signs you out of your browser (#1362).
- URL-backed import lists can be updated and synced again without resubmitting the URL (#1265).
Library
- Move movies and shows, with their files, to another library, with a preview of what will be hardlinked or copied. New movies default to the library holding most of their franchise (#1292, #1298, #1371).
- Files renamed or moved outside Mydia are relinked instead of duplicated, and vanished files stay out of Trash (#1285).
- Unaired episodes and unreleased movies read as Upcoming instead of Missing (#1249).
- A-Z jump bar, title sort that ignores a leading article, and sort and filters remembered per user (#1277, #1302).
- Library exports list every item's files, with a new Files (CSV) format (#1286).
Web UI
- People pages: cast members open a popup with their bio and filmography, best-known titles first, with add and request buttons. Discover has a People tab and media pages show their cast (#1348, #1354, #1358, #1369).
- Drag to reorder Home sections, Zinc Light and Zinc Dark themes, and lifted tabs on the admin hub pages (#1250, #1254, #1294, #1295).
- Link an SSO identity to an existing local account, with optional email auto-linking via
OIDC_LINK_BY_EMAIL=true(#1279). - Region-locked trailers fall back to another trailer, and Picked for you no longer resolves titles to obscure namesakes (#1290, #1291, #1297).
- Every phone layout defect found by a full-site sweep is fixed, plus media page, sidebar, requests, toolbar and menu fixes from user feedback (#1281, #1287, #1289, #1306, #1310, #1313, #1320, #1332).
- Indexer search stats are compact daisyUI stats (#1318, #1328).
Player
- The player is translatable and ships Brazilian Portuguese. Pick a language under Settings > Appearance, and the web player opens in the launching user's language (#1264, #1270, #1272, #1274, #1276, #1278, #1280, #1282, #1283).
- Files libraries (very experimental): use a folder on the device, a WebDAV share or an SMB share as a library. The player scans it, matches files against TMDB, and tracks watch state like any other server (#1363, #1367, #1368, #1370, #1372).
- Home has Trending movies and shows from your library (#1347).
- Android TV and Google TV: focus is remembered per row and lands on the grid and Play, focused buttons are easier to see, and the cast button is gone (#1349, #1351, #1353).
- A System theme on Linux follows the desktop's greys and accent, the iOS menu opens as a full page, and a sideloaded Android install updates in one press (#1352, #1355, #1365).
- Subtitles survive a fallback to transcoding, slow embedded subtitle fetches no longer stall startup, iOS devices without HEVC decoding are detected, and a hidden Playing on banner comes back (#1344, #1356).
- Launches on the server's network no longer stall for about 9 seconds when the connection goes direct (#1361).
Under the hood
- Docker builds the Rustler NIFs in their own cached stage, and CI stops cache churn (#1312, #1314).
- An opt-in trace file for the server's p2p transport (#1359).
- metadata-relay installs Tailwind with Req and counts every rejected ingest request (#1248, #1357).
- Specs and plans live under
design/, Cardigann docs open with a comparison table, mydia.dev is redesigned, infrastructure manifests are synced, and flaky tests are fixed (#1304, #1316, #1319, #1321, #1326, #1329, #1340, #1364).
Upgrade notes
- Quality profiles that preferred
BDRiporBRRipnow preferBluRay, and those names are dropped from excluded sources. A migration rewrites stored profiles (#1273). - Users who never picked a language are reset to Automatic, so they follow their browser instead of English (#1255).
- Torrents on private trackers, or with known ratio or seed-time terms, stay in the download client until the seeding goal is met. rqbit torrents, previously removed right after import, now wait too (#1324).
- New tables
tracker_rule_configsandtracker_sightings, and stored path-mapping suggestions ondownloads, which a one-shot job fills in for earlier failures (#1323, #1327, #1333). - Library export JSON is version 2. All version 1 keys are unchanged (#1286).
- Title sort order changes for titles starting with an article (#1302).