Scrunch
About
Squish audiobooks with force.
Scrunch is a tool to convert audiobooks into tiny, HE-AAC v2-encoded files. These files are high-quality with small file sizes and designed for things like audiobooks. Importantly, they are totally supported on iOS, so you can carry enough books on your phone to last a lifetime or two. That’s how you win at the game of life.
Table of Contents
- About
- Requirements
- Installation
- Usage
- Notes
- Roadmap
- Change Log
Requirements
You need a few things to scrunch.
- A computer running macOS. 10.13 High Sierra to 10.11 El Capitan are supported for sure. Previous versions probably work fine too, but I don’t have computers to test for sure. macOS is needed for the
afcovert
tool that is made by Apple, and only present on macOS. Sorry. - AtomicParsley. This is best installed via Homebrew. Install Homebrew via its instructions then run
brew install atomicparsley
in your terminal. It’s available on MacPorts and Nix too. - (Optional) Ruby. macOS ships with a totally useable version of Ruby, but it requires a password to install gems. So maybe
brew install ruby
? I’m using Ruby 2.5.0, but it should run on any reasonably modern version of Ruby.
Installation
Scrunch is a ruby gem. Install it via gem install scrunch
and get scrunching. Also then listen to the audiobook. Why would you make an audiobook totally awesome and not listen to it after? That’s crazy.
Usage
That’s the easy part. Get an audiobook that you want to scrunch, then run scrunch path/to/audiobook.m4b
in the terminal. Scrunch currently only supports m4a/m4b files, and it won’t currently concatenate audiobooks that are broken up into multiple files.
Notes
Scrunch is currently under development. It will be better in the future.
Roadmap
Make New Audiobooks
Currently, Scrunch can make audiobooks smaller, but it really can’t make new audiobooks. That would involve concatinating files together, then compressing the single-file result. Currently scrunch /path/to/file.m4a
compresses a single file, and I like that. The new option would be scrunch /path/to/dir/
to concat and compress all the compatible files in the directory. There could be a --dry-run
option to show which files would be processed and in what order, but I don’t think that’s super needed. The metadata could be grabbed from the first file concatinated, then applied to the final file. That seems reasonable.
Support More File Types
I think that afconvert
actually supports .mp3
files. If I could support those as well, I could support every single (important) file type that an audiobook is likely to come in. Should be simple enough, I hope.
Remove Dependency on AtomicParsely
Forcing people to install AtomicParsley
is not particularly user-friendly. Sorry about that. I only use it because I know how to use it. There’s a gem called mp4info that claims to be a possible replacement. If I could switch to using it, running gem install scrunch
would be all you needed to do. That would be cool.
Allow Setting Metadata
Some audiobooks don’t come with the metadata that they need. I could use AtomicParsley
to set it (currently that’s exactly what I do), but if I’m removing it as a dependency, then it would be nice to have a simple way to set the necessary info while I’m making books anyway. Also, then I could use names like “author” instead of “artist” and “cover” instead of “artwork.” Sometimes it’s the little things.
Change Log
v0.1.1
- (Hopefully) fix dependencies so that bundler is installed if needed.
v0.1.0
- Initial release.