Skip to content

0.1.8.0

Choose a tag to compare

@github-actions github-actions released this 12 Oct 21:27
· 54 commits to main since this release

Warning

Rexarr is in beta. Settings, file layout and the API can still change between releases. Keep backups
(System → Backup) and report what breaks.

Downloads

Platform File
Windows 10 / 11 win-x64-installer.exe · portable win-x64.zip · 32-bit win-x86-installer.exe / win-x86.zip
macOS 11+ Apple silicon osx-arm64-app.zip · Intel osx-x64-app.zip · terminal osx-arm64.tar.gz / osx-x64.tar.gz
Linux linux-x64.tar.gz · linux-arm64.tar.gz · linux-arm.tar.gz · Alpine linux-musl-x64.tar.gz / linux-musl-arm64.tar.gz
FreeBSD freebsd-x64.tar.gz (needs pkg install node22)
Docker docker pull ghcr.io/moonlightlaboratory/rexarr:0.1.8.0 · docker pull moonlightlaboratory/rexarr:0.1.8.0

Packages include Node.js; Rexarr runs on http://localhost:3939. See the
install guide.
The macOS app is not notarised: the first time, right-click Rexarr.app → Open.

New

  • Smart profiles: a profile that settles part of itself from the file. A smart profile is a profile — it has
    its own settings and encodes with them. What makes it smart is that some of those settings are decided when
    there is a file to look at, which is the only time the questions worth asking can be answered: whether a disc's
    lossless track is stereo or 7.1, whether its audio carries Atmos or DTS:X, whether what you are encoding is
    animation. It can be chosen anywhere a profile can, so an automatic rip decides per disc and a series per
    episode.

    Every encode starts from the profile's own settings; each branch that fits then changes them, and a later one
    wins where two touch the same thing. There is no fallback branch to write — the settings you start from are
    the fallback. And when nothing would be re-encoded (video copied, audio copied, same container) Rexarr queues
    no encode at all, which is what keeping a TrueHD track actually looks like.

    Two ship as examples. Lossless audio, the right way round copies everything except a lossless stereo
    track, which becomes FLAC — the same samples in less space — leaving surround and object audio alone.
    x265, and animation knows itself is HEVC CRF 20, with animation (by genre, or a series Sonarr calls anime)
    taking the animation tune and CRF 18, and UHD HDR adding 10-bit.

    A branch can ask about 27 things and change 28. Audio: channels, codec, object audio, losslessness,
    languages carried, commentary, track count, bitrate. Video: height, width, codec, HDR, Dolby Vision, bit
    depth, frame rate, interlacing. Subtitles: count, languages, forced, text or bitmap. The source's running
    time, size, bitrate and container. And what Radarr or Sonarr say the title is — kind, genres and year, only
    looked up when a branch actually asks, so one that never mentions them costs no request. What it can change
    covers the whole profile: every video, audio, subtitle and output setting, extra ffmpeg arguments included.
    A branch wants all of its conditions by default or any of them if you say so, can be named, and can be
    switched off without being unwired.
    Object audio is read from the stream profile FFmpeg reports (Dolby TrueHD + Dolby Atmos, DTS-HD MA + DTS:X and the other two); nothing else in a file says so, and an FFmpeg too old to name it never reports
    it, so the condition is then never true. Every decision writes what it saw and what each branch changed into
    the job log.

    It is edited as a graph — the whole window beside the sidebar — starting at Start from, through branches
    whose Then goes to a Set node and whose Carry on continues down, to an If nothing matches node
    showing what a file that fits no branch is encoded with. Nodes drag anywhere and remember where they were
    put; the background pans and the wheel zooms; and holding shift while dragging draws a box that selects
    every node it touches, which then move together.

  • CDDB, for the discs MusicBrainz has never heard of. The track listings CD players have used since the
    nineties, under Settings → Metadata → CDDB / freedb, on by default. Rexarr works out the disc's CDDB id and
    asks for its entry — but only when MusicBrainz has nothing for that disc id, so nothing changes for a CD that
    was already recognised. A CDDB entry appears in the release list labelled CDDB and carries artist, album,
    year, genre and the track titles; it has no cover art, and no MusicBrainz ids are written from it, though the
    GENRE and the DISCID rippers have always written are. The server is a setting, and it takes either a plain
    endpoint or the whole URL gnudb.org publishes, handshake and all — paste theirs as it
    stands and the hello in it is used, since gnudb answers only application names it already knows.

  • Settings → Experiments, and the first one in it: barcode scanning. Scan the barcode on a disc case with
    your phone — the page shows a QR code that opens Rexarr's scanning page on the phone — and Rexarr works out what
    the disc is, adds it to Radarr / Sonarr if it is not there yet, and keeps it on a list of discs it expects.
    Numbers are looked up at TheDiscDB first – a community catalogue of physical releases, so a hit names the film
    or series outright with its TMDb id – then MusicBrainz and UPCitemdb. None of them needs an account, and
    TheDiscDB has its own switch under Settings → Metadata. Experiments are off by
    default, can change between releases, and each one says where to report it when it misbehaves. A camera needs
    HTTPS, so over plain http the page asks for the number instead.

  • A ripping to-do list, the second experiment: the Discs page can show what Radarr and Sonarr would still
    like a better copy of — their cutoff-unmet lists — as Insert disc for…, with what is on disk now and which
    kind of disc would improve it. A 1080p remux is not improved by a Blu-ray, so those appear only when a UHD disc
    would help, and 2160p remuxes are left out. Discs whose barcode you scanned are marked and sorted first.

  • Audio only, for files you already have. Audio only beside Transcode on a movie or series page — and a
    tickbox in the transcode dialog everywhere else — copies the video exactly as it is and sends only the audio
    through the encoder, whatever the profile says about video. Turning a TrueHD track into FLAC on a film you
    already own takes minutes instead of hours, and the picture is bit-identical because it is never touched. The
    command preview shows the real command, with -c:v copy in it, and the size estimate is of that command: the
    video part is the stream being carried over, measured rather than predicted, so the figure comes out exact.

Fixes

  • Audio CD rips were tagged twice, and the stale half usually won. fre:ac tags a rip from its own lookup
    before Rexarr writes what MusicBrainz said, and FFmpeg keeps TRACKNUMBER, DISCNUMBER and ALBUMARTIST
    under names of its own — so Rexarr's tags landed beside fre:ac's rather than replacing them, and a player
    reading the first of the two showed the wrong track and disc number. The rip now starts from no tags at all.
    While there: ORIGINALDATE / ORIGINALYEAR so a remaster keeps the album's own year (which the folder is now
    named after too, as Lidarr files it), MEDIA from what the disc actually is instead of always CD,
    COMPILATION on a Various Artists disc, sort names, catalogue number, DISCSUBTITLE, and
    MUSICBRAINZ_RELEASETRACKID beside the recording id — Picard's field names throughout.

  • A CD could be identified as an album it has nothing to do with. Asking MusicBrainz about a disc id also
    asks it for releases of a similar length, and it answers with those even when it has never seen the disc —
    so a 15-track disc of Daniel O'Donnell's The Last Waltz came up as Kabát's Banditi di Praga, cover art and
    all, ready to rip under that name. Rexarr now tells the two answers apart: a release found by disc id is the
    disc, a release of similar length is a suggestion. Suggestions are listed and labelled similar length only,
    unconfirmed
    , they are never applied on their own, auto-rip will not start on one, and the disc sits on
    Generic track names until you choose. That disc, with CDDB asked as it now is, comes up as Daniel
    O'Donnell – The Last Waltz
    with its real track titles.

  • A disc from a box set is tagged as that disc. Picking a release by hand from the title search always used
    disc 1's track list, so disc 2 of The Wall came out as "In the Flesh?" and DISCNUMBER=1. The inserted
    disc's id now decides which medium of the release is used, wherever the release came from. The same search
    list also claimed every result had 0 tracks: MusicBrainz does not send a track list with search results,
    only a count, which is what the list reads now.

  • "EACCES: permission denied, mkdir …" now says what is actually wrong. The folder in that message is
    rarely the one that could not be made, and the cause is usually a share that is not mounted — on macOS that
    shows up as a permission error because only root may create folders directly in /Volumes. Rexarr now walks
    up to the deepest folder that does exist, says whether it can write there, and names the first missing part:
    Cannot create the rip folder "/Volumes/Media/Rips/…": /Volumes/Media is not mounted. Read-only filesystems
    and a full disk get their own answers. A disc rip checks the rip folder when it starts, rather than at the end
    of an hour of ripping.

  • A scan that finds nothing now says why. "No titles found on this disc (all shorter than the minimum
    length?)" was a guess. Rexarr reads the disc again with no minimum before answering, so it can tell you which it
    is: found 14 titles but none reached the 600s minimum, the longest is 2 min — or found no titles at all,
    which points at the MakeMKV key, a drive whose firmware cannot decrypt Blu-ray, or, in Docker, the drive's
    /dev/sg node not being passed through. Where MakeMKV said something itself — "Scsi error - ILLEGAL
    REQUEST:READ OF SCRAMBLED SECTOR WITHOUT AUTHENTICATION"
    — that is quoted instead of guessed at. The exact
    makemkvcon source and minimum are written to the disc log either way.

  • Most full-disc torrents were not recognised as discs. A release only counted as a full disc when
    COMPLETE and BLURAY were next to each other, optionally with UHD between them — but a scene group puts
    the resolution there too, and COMPLETE.2160p.UHD.BLURAY is the common shape. Those releases were quietly
    treated as ordinary files: hidden by the default search filter, and grabbed as a normal encode that Radarr
    could never import rather than as a disc to rip. Anything a disc release puts between the two words now counts
    — resolution, UHD, 4K, remastered, repack and the like — while Complete 1-96 S01 1080p BluRay stays an
    episode pack. On one search of a real indexer the count went from 14 full discs to 34 out of 144 results, with
    nothing newly mis-flagged.

  • The chevron on a season row sat wherever the two sides left room. It was centred in the space between the
    season's badges and its buttons, so it landed somewhere different on every season of a show. It is centred on
    the row now, which is where the eye looks for it.

  • A request that fails now says which way it failed. "Failed to fetch" is the browser's wording for a
    request that never got an answer, and it says nothing about what to do; it now names the likely reasons. And
    because Rexarr serves the client bundle by looking files up per request, rebuilding the client goes live under
    a server still running older code – a page asking for a route that server has never heard of used to get a
    bare "not found". It now says the page is newer than the server, and that restarting Rexarr is the fix.

Full changelog: v0.1.7.2...v0.1.8.0

Full Changelog: v0.1.7.2...v0.1.8.0