Skip to content

Latest commit

 

History

History
384 lines (243 loc) · 17 KB

File metadata and controls

384 lines (243 loc) · 17 KB

Antra Features

← Back to README  ·  Download  ·  Support Development



Multi-Source Audio Engine

Antra resolves links from Spotify, Apple Music, Amazon Music, Tidal, Qobuz, and Deezer. In lossless mode it queries all active lossless-capable sources in parallel and picks the result with the highest bit depth and sample rate — not just the first match found. Lossy formats (AAC, MP3) use dedicated lossy sources first; lossless adapters are only tried as a last resort.

Source chain (per track):

  Antra mirror servers  →  Tidal · Qobuz · Amazon Music · Deezer · Apple Music
  Built-in fallbacks    →  lossy and source-specific fallback adapters
  Soulseek P2P          →  anything the community has, including rare and out-of-print releases

Antra also remembers which sources have been reliable across app restarts (a persistent provider-reliability store) and reorders same-priority sources accordingly — without ever letting a lower-quality source jump ahead of a higher-quality one.

Free tier works out of the box with rate-limited downloads. Support on Patreon to receive a 30-day supporter key with unlimited downloads and 2-3 concurrent downloads.


Download Source Selector

Constrain downloads to the services you choose instead of letting the resolver use everything. Auto (default) runs the full resolver chain; or select any combination of Tidal, Qobuz, Apple Music, Amazon Music, and Deezer to limit resolution to only those services — unselected services are excluded entirely. Pick a single service to force it, or several (e.g. Tidal + Qobuz) to allow fallback only between your chosen sources.

Accessible from the pill-style selector on the main screen — no need to open Settings.


ISRC-Based Exact Matching

Most tools match by title and artist and often grab the wrong version: a remaster, a radio edit, a regional pressing. Antra uses ISRC codes (the unique identifier of every recording) to guarantee you get the exact track from the exact release you requested.

When ISRCs are available, Antra uses them to match against source APIs directly. When they are not, it falls back to a scored similarity search with title-artist weighting.


Explicit Version Preference

If the track you requested is the explicit (unedited) version, Antra will prefer it. Radio edits and censored versions are penalised in the match scoring and skipped when a clean result is the only option, keeping the rest of the queue searching until an explicit source is found.

Configurable in Settings: Prefer explicit versions (on by default).


Strict Matching Mode

Opt-in safety mode for niche music. When enabled, Antra requires stronger confidence for non-ISRC matches and applies tighter post-download duration validation, preferring a clean failure over a risky wrong-audio save. Default is off so current behaviour is unchanged unless you opt in.


Hi-Res Awareness

Tidal and Qobuz expose per-track bit depth and sample rate in their search results. When a track has a hi-res master available (e.g. 24-bit/96kHz from Tidal, up to 24-bit/192kHz from Qobuz), Antra keeps searching all lossless-capable sources and selects the highest-resolution result — ranked by bit depth first, then sample rate. CD quality (16-bit/44.1kHz) is only used if no hi-res source can be located.

Qobuz URLs also support a strict 24-bit mode: if no Qobuz account can produce a genuine 24-bit stream, the request fails cleanly instead of silently saving 16-bit audio under a 24-bit request.


Auto-Tagging

Every downloaded file is tagged automatically. No manual editing, no missing artwork, no "Track 01".

Tag Source
Title, Artist, Album, Track # Spotify / Apple Music / Amazon metadata
Album artwork Full-resolution cover from the streaming catalog
Release date Full ISO date where available; year as fallback
Genre Deezer album-level genre via ISRC, with MusicBrainz fallback
Composer Sourced from Qobuz, Tidal, or Deezer metadata
Disc number Correct disc tagging for multi-disc albums
Lyrics LRCLIB synced lyrics, Genius / Musixmatch fallback
ISRC Embedded for future matching

Tags are written in the correct format for every container: ID3v2 for MP3, Vorbis comments for FLAC, MP4 atoms for M4A — fully readable by Windows Media Player, VLC, foobar2000, and all major media servers.


Smart Library Organisation

Output is structured the way every media server expects:

~/Music/
  Artist Name/
    Album Name (Year)/
      101 - Track Title.flac
      102 - Track Title.flac
      cover.jpg

Downloads land directly inside the library root — no intermediate Albums/ or Playlists/ subfolders. All tracks use disc-prefixed numbering (101, 102, ..., 201, 202, ...) so Plex, Navidrome, and Jellyfin always know which disc a track belongs to.

Template-Based Filenames and Folders

Set your own naming scheme using tokens. Three template fields in Folder Settings:

Template Default Example output
Single track filename {artist} - {title} The Beatles - Come Together.flac
Album track filename {track} - {title} 07 - Come Together.flac
Folder structure {album_artist}/{year} - {album} The Beatles/1969 - Abbey Road/

Available tokens: {title} {artist} {album_artist} {album} {year} {track} {disc} {genre} {composer} {isrc} {codec} {bitrate} {quality}

Each template field shows a live preview as you type. Click any token chip to insert it at the cursor position.

Multi-Disc Handling

Mode Example
Disc prefix (default) 2-05 - Track.flac
Offset 101/201 205 - Track.flac
Track only 05 - Track.flac

Smart Deduplication

Antra builds an identity index of your library using ISRCs, track IDs, and normalised title+artist keys. Before downloading, it checks if a track already exists, even if it was saved under a different artist folder name or album edition.

Library Mode Options

Mode Behaviour
Smart Dedup (default) Skip a track if the same ISRC exists anywhere in your library. Saves storage.
Full Albums Skip only if the file already exists in the same destination folder. Lets you own the same track across multiple album contexts.

Themes

11 built-in themes accessible from the full-screen theme picker (🎨 button in the header).

Antra Originals: Antra (default deep teal), Ember (warm amber), Ocean (deep navy), Graphite (monochrome), Sunset (magenta and gold), Linen (light mode)

Service-Inspired: Spotify, TIDAL, Qobuz, Deezer, Apple Music, Amazon Music

Each card shows three colour swatches, a name, and a description. Selecting a theme applies it instantly and saves it to config so it restores on next launch.


Album Availability Studio

Paste a Spotify or Deezer album link to see country-by-country availability on a live world map. Shows full-access markets, partial access, region locks, label, UPC, and confirmed track counts. Useful for checking if a release is available in a specific territory before downloading.

Accessible from the 🌍 button in the header.


My Library

Connect your Spotify and Apple Music accounts to browse and download your own library directly inside Antra — no copy-pasting URLs.

One-click connect. The "Connect Spotify Account" button opens your system browser, you log in, and Antra captures the session automatically (no manual cookie extraction). A manual paste field is still available as a fallback.

Spotify library shows your Liked Songs, algorithmic mixes (Discover Weekly, Daily Mixes, Release Radar, On Repeat…), all personal playlists, saved albums, and followed artists. Each section is collapsible. Click any card to download it; click a followed artist to open their discography.

Apple Music library shows your Saved Songs and all library playlists via a Spotify | Apple Music switcher at the top of the tab.

My Library is the default tab on launch.


Auto-Sync / Scheduled Downloads

Keep playlists mirrored to your library automatically. Toggle auto-sync on any playlist card (the ↺ button), then set a schedule in Settings (time + days of week). Antra checks your tracked playlists on schedule, diffs against what it downloaded last time, and pulls only the new tracks. A "Sync Now" button runs it on demand.


YouTube Music URLs

Paste a music.youtube.com link — single track, playlist, or album — and Antra resolves it through the same lossless source chain as a Spotify or Apple Music link. yt-dlp extracts the metadata (and ISRC where available); the actual audio comes from Tidal / Qobuz / Amazon / Deezer, so every quality tier (FLAC, ALAC, AAC, MP3) is supported.


Artist Discography Download

Search for any artist by Spotify or Apple Music URL. Antra fetches their full discography and presents it grouped by release type.

  • Browse Albums, Singles, EPs and Compilations separately
  • Bulk-select or deselect entire groups with one click
  • Queue individual albums or the full catalogue in one batch

Parallel Download Engine

Antra downloads 2 tracks concurrently by default. Playlists and albums that would take minutes sequentially complete in a fraction of the time.

Sequential:   track 1 → track 2 → track 3 → ...
Parallel:     track 1 ↘
              track 2 → done
              track 3 ↗

Rich Tracklist UI

When a URL is pasted, the full tracklist appears immediately before any download starts. For playlists with 1000+ tracks, rows appear progressively as pages load — you are not waiting for the full fetch to complete.

Each row shows the track title, artist, duration, and a real-time progress bar as the file downloads. The playlist header displays the cover art, type (ALBUM / PLAYLIST / SINGLE), artist, track count, total duration, and release date in the same layout as a streaming app.

When multiple URLs are queued in one session, a divider with the album cover and title separates each batch so you always know which tracks belong where.

A dedicated log panel (accessible via the 📋 button) shows verbose download output without disrupting the tracklist view.


Failed Downloads Viewer

When a playlist or album finishes, any tracks that failed are collected into a dedicated Failed (N) panel below the tracklist — no scrolling to hunt for red rows. Retry a single track, Retry All (runs them one by one with live progress), or dismiss entries you don't care about. The panel collapses and auto-hides once everything is retried or dismissed.


Synced Lyrics in the Player

The built-in player for downloaded tracks reads embedded LRC lyrics and shows a scrolling panel that auto-highlights the current line in sync with playback. Toggle it with the ♪ button; it appears automatically when a track has synced lyrics. Plain (unsynced) lyrics are shown too.


Source Health Check

Chips below the URL bar show the live status of each source from a public status endpoint. Green means online and active; darker red means currently unavailable. Antra checks the status on startup and continues working normally if the endpoint is unreachable.


Library History

Every completed download session is saved to history with its cover art thumbnail, album/playlist title, URL, track count, and timestamp, so you can quickly identify what you have downloaded without opening the folder.


Built-in Audio Analyzer

Not sure if a file is genuinely lossless or an MP3 in a FLAC wrapper? Drop any audio file into the Analyzer.

Spectrogram: Full frequency spectrum view. A real FLAC recorded from lossless masters looks unmistakably different from a transcoded lossy file.

Stats panel:

Metric What it tells you
Peak dBFS Loudest sample in the file
RMS dBFS Average loudness
True Peak dBTP Inter-sample peak (important for streaming delivery)
Integrated Loudness LUFS over the full file
Loudness Range LRA — dynamic range
Frequency Cutoff Highest frequency with meaningful content

Quality badges are assigned automatically: FLAC/ALAC files with a cutoff below 14 kHz are flagged as "Fake Lossless"; below 17 kHz as "Likely Transcode"; below 19.5 kHz as "Suspect Quality".

Supports batch analysis with gallery view, per-item removal, and a Clear All button.


Soulseek / P2P Integration

For tracks not available through any streaming-adjacent source (rare albums, limited pressings, out-of-print releases), Antra integrates with the Soulseek P2P network.

Zero setup. Antra downloads, configures, and manages the backend automatically. Just provide your Soulseek credentials once on first run.

The Soulseek network runs on sharing. If you use it, please share back and leave the client running when you can.


Spotify Podcast Downloads

Antra can download any Spotify podcast episode or entire show directly using your own Spotify account cookie — no external server, no third-party proxy.

Account requirement

A free Spotify account is sufficient. Podcast audio is not gated behind Spotify Premium. The 320 kbps OGG Vorbis format is available to all logged-in users.

The only exception is subscriber-only episodes — episodes paywalled by the podcast creator (separate from Spotify Premium). Those will fail with "no audio files available."

Supported URLs

URL type Example
Single episode https://open.spotify.com/episode/4rOoJ6Egrf8K2IrywzwOMk
Full show (all episodes) https://open.spotify.com/show/0ofXAdFIQQRsCYj9754UFx

Setup: getting your sp_dc cookie

  1. Open open.spotify.com in any browser while logged in
  2. Open DevTools (F12 on Chrome/Edge, Cmd+Option+I on macOS)
  3. Go to Application tab → Cookieshttps://open.spotify.com
  4. Find the cookie named sp_dc and copy its value (starts with AQ...)
  5. In Antra, open Settings → Spotify Account and paste it into the sp_dc cookie field

Easiest path: use the Connect Spotify Account button in Settings instead — it opens your browser, you log in, and Antra captures the cookie automatically. The manual steps above are only needed if you prefer pasting it yourself.

The cookie is valid for approximately one year. The same connection also powers the My Library tab.

Output and tagging

Episodes are saved inside your configured Music folder:

~/Music/
  Podcasts/
    Show Name/
      2024-03-15 - Episode Title.ogg
      2024-03-22 - Another Episode.ogg

Rate limiting

To protect your Spotify account from being flagged, Antra applies automatic rate limiting: a 3-7 second random delay between each episode and a 50 episodes/hour hard cap.


Audio Format Options

Mode Output
FLAC 24-bit Highest available lossless source, prioritising hi-res where available.
FLAC 16-bit CD-quality lossless, with 16-bit sources preferred over 24-bit where possible.
ALAC Apple-compatible lossless output.
AAC Native AAC sources first, lossless only as fallback when needed.
MP3 Native MP3/lossy sources first, lossless only as fallback when needed.
Auto Best available source with lossless preferred.

Platform Support

All builds ship as single self-contained binaries with no Python, no runtime, and no dependencies to install.

Platform Minimum File
Windows 10+ Antra.exe
macOS 12+ (Apple Silicon) Antra-macOS.dmg
macOS 12+ (Intel) Antra-macOS-Intel.dmg
Linux Any Antra-Linux.AppImage

Tech Stack

Desktop shell   →  Go 1.23 · Wails v2
Frontend UI     →  Svelte · TypeScript · Vite
Download engine →  Python 3.11
IPC             →  newline-delimited JSON over stdout
Packaging       →  PyInstaller · wails build · AppImage · create-dmg
CI/CD           →  GitHub Actions, 4-platform matrix build on tag push


Antra is free to use, maintained by one person in their spare time.
If it saves you money on streaming, consider keeping it alive.

   

← Back to README