OATS

A tool for the transcoding of audio from lossless sources


License
Unlicense
Install
pip install OATS==0.2.5

Documentation

OATS

OATS is Another Transcoding Script

OATS is a commandline tool that makes transcoding easy on Windows, Linux, or Mac. The only prerequisites for OATS are FFmpeg and Python3. It can also make torrents.

A quick intro

OATS has one main script, called oats. Once installed you can make a quick config file to get started:

oats mkconfig

This will make a file in the current working directory named oats.conf. The options accessible there are the same as in the interface, so you can configure the defaults for your use. Any options specified at the command line take priority over the config file. All options not supplied to the command line will use their values set in the config file.

To see the options for oats, access the help:

oats -h

Here's a sample command for transcoding two albums to MP3 at constant bitrate of 320 and MP3 of variable bitrate, quality 2, resulting files will be put into a directory named transcodes:

oats --output-dir transcodes --formats "MP3 CBR 320,MP3 VBR 2" Album1 Album2

What formats can I use?

The best way to see what audio formats you can use is to enter

oats -F

which will print a list of all available formats on your system. Formats may allow parsed arguments which will be described per {name;units:restrictions}. For instance "MP3 CBR {bitrate;kbps:8-320}" indicates that MP3 constant bitrate accepts values in kbps between 8 and 320.

Torrent creation options

The following options pertain to torrent creation: --torrent=<bool>, --announce-url=<url>, --torrent-dir=<dir>, and --source=<str>. A full example of these options is given here.

oats --torrent true --torrent-dir torrent_output --announce-url https://blah.com MyAlbum

Tool Extensibility in OATS

OATS is a frontend to a variety of audio codec tools. In its first iteration it was just a frontend to FFmpeg, but now is able to modularly use different tools and dynamically detect what is available. For instance, if you install LAME on your system, and "lame" can be found on the path, OATS will attempt to encode your MP3s with it instead of FFmpeg (currently, FFmpeg's Xing header is considered deficient). Similarly, Opus Tools' opusenc and opusdec, and Vorbis Tools' oggenc and oggdec will be employed over FFmpeg.

FFmpeg provides a good baseline of support for most formats, and you may never need anything else. I hope to also add Sound eXchange (SoX) in the future as a general tool.

TODO - Things I want to do that are not yet done

  • ALAC support
  • AAC support
  • SoX Codecs
  • Channel Ops?
  • Possibly provide workaround for Windows Powershell tab-completion bug
  • magnet link support