Skip to content
jblochPublic

About

Concise Atmos Ripping Automation Tool - A GUI tool, command line tool, and Python library for ripping Dolby Atmos albums (digital and physical) into digital music libraries

Resources

Stars

4 stars

Watchers

1 watching

Forks

Latest commit

 

History

88 Commits

Folders and files

Repository files navigation

Carat Logo

Carat

Diamond-perfect Atmos extraction, processing, and library integration.


Carat is a lightweight, automated GUI utility designed to accept Dolby Atmos music releases in practically any format, locate the primary title in the release, retrieve metadata and cover art from the internet, and incorporate the release directly into your digital music library in a single click.

From the moment a new Blu-ray arrives in your mailbox, Carat handles the entire pipeline—extraction, processing, metadata acquisition, and cover art—with zero friction. If your source files are already on your SSD, Carat will process an entire release in a minute or two (depending on the speed of your computer). If you are starting from a physical disc, the time is limited by the read speed of your optical drive (expect five to ten minutes).

Carat screenshot: Frank Zappa remux in progress

The Universal Atmos Ingestion Tool

Carat is built to handle the chaotic, developing landscape of Atmos release formats. It natively accepts:

  • Physical Blu-ray discs
  • Blu-ray ISOs and BDMV backup folders
  • IAA-style folders (individual MKV or MP4 files per track)
  • Headphone Dust-style single MKV files

The Output: Regardless of what you feed it, Carat standardizes the output into one uniform, library-ready format: a single, chapterless .m4a or .mkv file alongside a .cue sheet and a cover.jpg. Why this format? It is currently the only format that reliably combines true gapless playback with accurate track indexing on media centers like Kodi. You can choose among three variants, depending on what hardware you're using to play your music:

  • M4A Lossless (TrueHD) – the ideal format if you're running your media player software (e.g., Kodi) on a FireStick MAX 4K, Fire TV cube, or similar device.
  • M4A Lossy (Dolby Digital+) – the correct format for Mac, Apple TV, soundbars, and car audio systems.
  • MKV Lossless (TrueHD) – the ideal format for PC playback or Nvidia Shield.

As the landscape evolves, we may extend Carat's capabilities to support more input and output formats, but it will remain laser-focused on one task: quickly incorporating Atmos albums into your digital music library. Well, OK, maybe not so laser-focused: All of this machinery is equally applicable to legacy surround formats, and Carat will happily rip them into flac files for you. It will do this automatically on releases that don't contain an Atmos stream, and you can manually choose this behavior for releases that contain Atmos and lossless 5.1, quad, or stereo.

Intelligent Metadata

You shouldn't have to manually tag your Atmos rips. Carat does the best it can to figure out the artist and/or album names from the source you enter. You can edit Carat's guess if need be. Then Carat reaches out to top-tier sources—including MusicBrainz, the Cover Art Archive (CAA), and Apple/iTunes—to automatically pull down high-quality cover art and pristine metadata. Carat’s network layer features automatic retries and backoffs, ensuring a momentary server timeout doesn't ruin your metadata ingestion. Carat applies smart heuristics to identify and correct imprecise artist or album names, ensuring your library remains perfectly organized.

Legacy Release Compatibility

While the focus of Carat remains Atmos, it seemed a shame that its single-click goodness couldn't be applied to legacy 5.1 channel and quad releases, so as of Beta 3, it can! Just select FLAC from the Format dropdown, and Carat will select the best legacy format on the release and rip individual flac files for each song, with tags for all metadata including cover art. If you select any other output format, but the release doesn't contain an Atmos stream, Carat will fall back to ripping the best non-Atmos audio stream.

Installation (The Near-Zero-Touch Launcher)

Carat uses a highly robust, idempotent launcher script that handles both installation and execution. It is designed to never make a mess of your system.

  1. Download the latest .zip release and extract it to a folder.
  2. Windows: Double-click carat.bat
  3. macOS: Double-click carat.command
  4. The launcher pretty much takes it from there. The first time you click it, it installs the program and runs it. Subsequently, it just runs it.

How it works: On its first run, the launcher automatically checks your system, downloads any missing dependencies via Winget (Windows) or Homebrew (Mac)—including automatically fetching MakeMKV and FFmpeg—builds an isolated Python virtual environment, and launches the GUI. Did something get interrupted? Just double-click it again! The script is strictly idempotent—you can run it as many times as necessary, and it will simply pick up where it left off without polluting your system. Subsequent runs will bypass the checks and launch instantly.

Feel free to move the entire Carat-Beta directory anywhere you like, or to rename it; it won't affect the operation of the program.

Usage & The Rip Plan

Carat is designed to be a one-click tool, but it hides a massive amount of flexibility just beneath the surface via the Rip Plan.

  1. Insert your disc or locate your source files.
  2. Launch Carat.
  3. Select your input (and library root, if this is the first time you've run Carat), and enter the artist and the album title.
  4. (Optional) Review the Rip Plan: Check the Review metadata before ripping box. Carat will pause before extraction, allowing you to intercept the Rip Plan. You can manually change the MusicBrainz ID, select a specific Musicbrainz medium (to use the track list from a particular CD in a box-set), or choose to rip an alternative title from the blue ray, or audio stream from the title instead of the default Atmos track. In other words, you can select whatever metadata or data suits you. If the data and the metadata don't match (e.g, wrong number of tracks or duration) Carat will let you know.
  5. Click Rip.
  6. Rip Additional Streams: When the rip finishes, the Rip button changes to Rip Complete — Rip Additional Stream. Click it to immediately extract a different mix from the exact same source without having to re-read the disc (unless you select an alternate title). Atmos streams are highlighted in blue (though you're free to rip other streams too). Carat will even ask you for a custom suffix (e.g., (Instrumental)) so you don't overwrite your first rip!
  7. Keep going. Carat is built for batch processing. You can leave the app open and rip multiple albums in a single session without ever needing to restart; the console will automatically reset for the next disc or download.
Carat screenshot: Frank Zappa remux in progress

Advanced Usage (CLI & Programmatic)

While Carat features a fully automated GUI, the core engine is completely decoupled. Power users can:

  • Run Headless: Execute Carat directly from the command line or import it programmatically into custom Python scripts for batch-processing.
  • Get Cover Art: The get_cover_art module can be used in isolation to scrape top-tier artwork from MusicBrainz/CAA and Apple/iTunes to upgrade your existing digital library.

Under the Hood

Carat acts as an elegant conductor for the community's best open-source media tools. The entire program consists of about 3,500 lines of Python (taking up just 1/2 the space of its 400x400 icon). The entire distribution, including the icon, would fit five times on a standard floppy disk. Carat is also aggressively hygienic: it goes to great lengths to clean up after itself. Even if it is forcefully closed mid-rip, it tracks its state to ensure that it never leaves orphaned background processes running, or abandons multi-gigabyte temporary files on your drive.

The underlying tools (which do all the heavy lifting) are:

Feedback & Bug Reports

  • Found a bug? That's not surprising, considering that this is a Beta release. Please open an issue on the GitHub Issues page. Including your console log or terminal output helps immensely!
  • Questions or feature ideas? Join the discussion over on the QQ Thread.

Created by Josh Bloch, because he was sick of doing all of this work manually

About

Concise Atmos Ripping Automation Tool - A GUI tool, command line tool, and Python library for ripping Dolby Atmos albums (digital and physical) into digital music libraries

Resources

Stars

4 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages