main
Treat a file at a numbered variant of its target as already in place, so tracks that render to the same path are not moved between the numbered names on every run. Skip candidate paths another track holds in the database, refuse to overwrite an existing file when moving or copying, and move the file back if the DB update fails.
shanty-org
Music file organization and renaming for Shanty.
Organizes music files into a clean directory structure based on metadata, using configurable format templates. Works standalone (reading embedded tags) or from the Shanty database.
Usage
# Organize from a directory (standalone, reads tags from files)
shanty-org --source /music/messy --target /music/organized
# Organize all tracks in the database
shanty-org --from-db --target /music/organized
# Custom format template
shanty-org --source /music --target /music --format "{album_artist}/{album}/{disc_number}-{track_number} {title}.{ext}"
# Dry run (preview only)
shanty-org --source /music/messy --target /music/organized --dry-run -vv
# Copy instead of move
shanty-org --source /music/messy --target /music/organized --copy
Default Format
{artist}/{album}/{track_number} - {title}.{ext}
Example: Pink Floyd/The Dark Side of the Moon/03 - Time.flac
Languages
Rust
100%