A simple utility which creates an encoded music folder out of your library and keeps it updated using as least ffmpeg runs as possible.
(Original Mix) in every single name, customizable-vn when encoding to OGG otherwise the files will be unplayableconfig.json can contain comments, so you can just copy-paste the example.
jsonc
{
// Input and output directory
// The output directory needs to exist
"inputDirectory": "FLAC",
"outputDirectory": "Encoded",
// An array of all extensions that will be encoded
// All that are not present here (such as mp3 in this case) will be just copied to the output directory
"extensionsToEncode": [
"flac"
],
// A string containing the extension for encoded files
"encodedExtension": "ogg",
// A string containing the ffmpeg params
// ffmpeg command looks like:
// ffmpeg -i <INPUT> <PARAMS> <OUTPUT>
"ffmpegParams": "-c:a libopus -b:a 128K -vn",
// Whether to remove brackets, the options don't need to be present,
// in which case it will behave the same way as if they were set to false
// When set to true it will remove everything in between the brackets as well as one leading/trailing space
// Example with the below config:
// [LABEL] Author - Title (Original Mix) [YEAR].mp3
// Would be renamed to:
// Author - Title (Original Mix).mp3
"removeRoundBrackets": false, // ()
"removeSquareBrackets": true, // []
"removeCurlyBrackets": false, // {}
"removeAngleBrackets": false, // <>
}
-c, --config - Specify the config file (default: config.json)--color - Force colors to be enabled--dry-run - Do a trial run with no actual changes-e, --encoded - Specify the file storing info which songs are already encoded (default: encoded.json)-h, --help - Print help information-q, --quiet - Suppress ffmpeg output-V, --version - Print version information-y, --yes - Always assume "yes" as the answer to all prompts and run non-interactivelyLicensed under either of
at your option.
Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.