Ctrl K
ComunidadGuías…

RELEASE_NOTES_3.9.0.md

Rama main · réplica de lectura del repositorio original.

Archivo original ↗Preguntar a KiBot
# Ripster 3.9.0

Two months of work in one build. This page collects everything new since 3.6.5 —
including 3.7.0, 3.7.1 and 3.8.0 — because most of it reached people through
self-update and never had one place to be read.

The theme is the same throughout: where Ripster used to stop with a bare error, it
now finds a way, or tells you exactly why there isn't one.

## When a store says no

- **A refusal no longer ends a download.** If your own accounts can't serve a
  release — regional rights, a key server having a bad hour — Ripster takes the
  same recording from another service you have access to, and the history entry
  names both: "Deezer refused → downloaded from Qobuz".
- **A swap is only allowed if it is the same recording.** The backup search
  matches on ISRC/UPC, so a karaoke cover or an alternate remaster can't land in
  your folder in place of what you asked for. A release with no ISRC/UPC is
  reported as "nothing to match on, not searching blind".
- **A ladder of availability replaced "not available anywhere".** Your own
  storefronts, then the public pool, then another service — each rung is tried in
  order, and the console line says which one delivered.
- **A quality downgrade is now loud.** If only a lower tier could be served, the
  task says "downloaded in reduced quality: X instead of Y" instead of quietly
  handing you the smaller file.

## Apple Music

- **One account, one device fingerprint.** New accounts get their own device-info
  instead of sharing a single one; a key refusal retries a different storefront,
  and an account now lives independently of the container it was added to.
- **Keys are asked for in the release's own storefront**, not the one your link
  happened to point at — releases that used to answer "no keys" now come back.
- **"This account doesn't buy in its own country" is told apart from "no keys".**
  Two different problems, two different messages.
- **Public-wrapper modes.** Six modes decide *when* the shared public wrapper is
  consulted (off / only after mine failed / only for region-locked releases / …),
  with a per-task checkbox in the download dialog and a Settings panel that shows
  the real daily quota, the storefronts on offer and the 24-hour cooldown after
  repeated rate-limit hits. Default: **off**, until you switch it on.

## Pre-orders and releases that are not out yet

- **A pre-order is no longer a failure.** Ripster reads the store's own release
  timestamps, waits, and unlocks the download at midnight in *your account's
  country* plus a small margin — you queue it once and come back to finished
  files.
- **The upcoming radar covers Bandcamp and Beatport pre-orders**, not just the
  streaming services.
- **A partial arrival is stated as partial.** When only part of a release exists
  yet, you get "2 of 5 available so far", not a retry storm against the store.

## Files and folders

- **One folder = one release.** The edition suffix (Deluxe, 2019 Remaster, Live)
  is resolved *before* the download, so two editions of an album stop sharing a
  folder.
- **Multi-disc releases keep their discs straight** on Qobuz, Deezer and Tidal as
  well as Apple.
- **Cleanup only ever touches Ripster's own files** — your own artwork or cue
  sheet in that folder stays.

## Radio, BBC and taste

- **A live recording is checked, not trusted.** Captures are staged, decoded and
  verified before they count as finished; a show that died mid-broadcast is
  recovered from what is on disk, and the recording schedule is restored after an
  app restart.
- **Stations only play the genre they claim**, and umbrella genres are populated
  again (subgenres now count as their parent — Metal and friends work). A dead
  source explains itself instead of returning a silent zero.
- **Stations learn from how you listen** — skips, finished tracks, likes,
  downloads. All of it is computed and stored on your machine, and guests
  listening through your instance never shape it.
- **Same-named artists are told apart**, and what shows up as yours is anchored in
  what you actually downloaded, liked or listened to.

## Player, window, lyrics

- **The player can leave the app**: an external player window, openable from any
  tab, with the launch guarded by a one-time pass instead of failing silently.
- **The window degrades gracefully**: a 1060×600 floor, the quality pill no
  longer overlaps the transport controls, and title/artist keep a readable width.
- **Synced lyrics pick the best source available** and now reach a paired phone.
- **Queue cards start folded** — expand a tracklist only when you want it, so a
  batch of tasks is no longer one endless page.
- **Windows notifications**: one toast per release, rate-limited, and every one of
  them logged.

## Per-service fixes

- **Beatport** — a regional refusal falls over honestly instead of reporting an
  empty catalogue, with the same quality-downgrade guard.
- **Tidal** — an expired session mints a fresh token from your refresh token in
  the downloader, stations and search; one-click device login (link.tidal.com)
  works out of the box.
- **Deezer** — releases listed as "Artist - Album" now resolve, and only the files
  your task asked for are taken.
- **Qobuz** — long albums stop arriving short: the tracklist is fetched with a
  proper page limit.

## Security and privacy

- **Apple account labels and tokens are masked** in every API answer.
- **Sharing your accounts with a phone is an explicit opt-in**, per phone, off by
  default.
- Nothing changed about where your data lives: no Ripster account, no cloud, your
  files and credentials stay on your machine.

## Language

- Errors, history rows and settings panels that used to answer only in Russian now
  follow the interface language — the untranslated backlog on Watchlist and
  History went from roughly 1100 spots to 9.