tagrenamer
Mass music collection renamer.
Tagrenamer completely cleans up your music folder for you, all you need to do is to make sure all music files have the right tags.
Imagine this is inside your music folder:
Music/
├── MUTTER (2001) - Adios.mp3
├── MUTTER (2001) - Feuer Frei.mp3
├── MUTTER (2001) - Ich Will.mp3
├── MUTTER (2001) - Links 2 3 4.mp3
├── MUTTER (2001) - Mein Herz Brennt.mp3
├── MUTTER (2001) - Mutter.mp3
├── MUTTER (2001) - Nebel.mp3
├── MUTTER (2001) - Rein Raus.mp3
├── MUTTER (2001) - Sonne.mp3
├── MUTTER (2001) - Spieluhr.mp3
└── MUTTER (2001) - Zwitter.mp3
What a mess, let’s clean it up:
$ tagrenamer --format '{artist}/{album}/{artist}-{title}.{ext}' Music/
- Tagrenamer version 0.0.3.
- Leftovers directory '__LEFTOVERS/' created.
- Stage directory '__STAGE/' created.
- Traverse the collection and extract music tags.
- Validating tag input and sanitizing variables.
- Moving non music files to '__LEFTOVERS/'.
- Moving music to new tree in stage directory '__STAGE/'.
- Remove empty directories (except stage/leftover directories).
- Move everything from stage into the final location.
- Deleting the temporary stage directory '__STAGE/'.
- Deleting the empty leftovers directory '__LEFTOVERS/'.
- DONE! Processed 11 files.
Music/
└── rammstein
└── mutter
├── rammstein-adios.mp3
├── rammstein-feuer frei.mp3
├── rammstein-ich will.mp3
├── rammstein-links 2 3 4.mp3
├── rammstein-mein herz brennt.mp3
├── rammstein-mutter.mp3
├── rammstein-nebel.mp3
├── rammstein-rein raus.mp3
├── rammstein-sonne.mp3
├── rammstein-spieluhr.mp3
└── rammstein-zwitter.mp3
Features
Python
Pure Python command-line application that is cross-platform and strives to meet all modern quality criteria such as PEP8-compliance and test coverage.
Formats
Supports .mp3, .ogg and .flac files and more are easy to add.
Only deals with music
Files that are not music, are moved into a folder named __LEFTOVERS/ which contains the original structure they were originally in. Letting you decide what to do with them.
Fail-safe
Tagrenamer leverages an internal staging process in which it detects failures before it touched a single file. The paranoid can combine --dry-run and -vvvv to see what is going on under the hood or even run with --shell to generate Shell commands for you to inspect without renaming anything.
Scalability
Renames a few music albums as well as a 2Tb music collection.
Installation
Install Tagrenamer directly from PyPI using pip:
$ pip3 install tagrenamer
Changelog
Unreleased
0.0.3 (2024-03-29)
Updated dependencies.
Added tagrenamer.toml to move away from setup.py.
Replaced setup.py-based instructions.
Updated development installation instructions to suggest pipx.
0.0.2 (2021-11-26)
Development procedures refined and release tested.
Integrated readthedocs: https://tagrenamer.readthedocs.io/
Updated changelog to reflect 0.0.1 release.
0.0.1 (2021-11-26)
Ported the code from 2013 to Python 3.
Reorganized the project to become a first-class Python package.
Updated majority of PEP8 violations but not all.
Added documentation.
Metadata
Release files for tagrenamer 0.0.3
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| tagrenamer-0.0.3.tar.gz | 27.1 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| tagrenamer-0.0.3-py2.py3-none-any.whl | Python 3, Python 2 | none | any | Details |
Total release size: 56.1 kB
Release files / tagrenamer-0.0.3.tar.gz
| Download URL | tagrenamer-0.0.3.tar.gz |
|---|---|
| Size | 27.1 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
65a7a7c7504cb3260e2a1290d028823908f035007323f25926da0f23961c92d7
|
|
BLAKE2b-256 checksum How to use checksums |
f44803199f00aa7bb13b45967a31093a05b72a171b8bd04e479b6e54cb05ebcf
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/5.0.0 CPython/3.11.8
|
Release files / tagrenamer-0.0.3-py2.py3-none-any.whl
| Download URL | tagrenamer-0.0.3-py2.py3-none-any.whl |
|---|---|
| Size | 29.0 kB |
| Tags | Python 2 Python 3 |
|
SHA-256 checksum How to use checksums |
58e89f4775a55ce135f93ee8375d3139b9af21f8d2c2bce656bb978f12e147b5
|
|
BLAKE2b-256 checksum How to use checksums |
9a6c840ed4e5180c8471991c3c4b67a60ddaa27cc4dc43b5675aab9d3155f337
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/5.0.0 CPython/3.11.8
|