Skip to main content

tagrenamer

https://img.shields.io/github/languages/top/nielsvm/tagrenamer.svg https://img.shields.io/github/license/nielsvm/tagrenamer.svg https://img.shields.io/pypi/v/tagrenamer.svg https://img.shields.io/readthedocs/tagrenamer.svg

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

  1. 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.

  2. Formats

    Supports .mp3, .ogg and .flac files and more are easy to add.

  3. 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.

  4. 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.

  5. 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)

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)

Source distribution for tagrenamer 0.0.3
File Size Uploaded
tagrenamer-0.0.3.tar.gz 27.1 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for tagrenamer 0.0.3
File Interpreter ABI Platform
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

Release history Release notifications | RSS feed

This release

0.0.3 This release

2 release files

0.0.2

2 release files

0.0.1

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page