github getmydia/mydia v0.18.0

one hour ago

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 BDRip or BRRip now prefer BluRay, 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_configs and tracker_sightings, and stored path-mapping suggestions on downloads, 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).

Don't miss a new mydia release

NewReleases is sending notifications on new releases.