Skip to main content

Mass music collection renamer.

Project description

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.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

tagrenamer-0.0.3.tar.gz (27.1 kB view details)

Uploaded Source

Built Distribution

tagrenamer-0.0.3-py2.py3-none-any.whl (29.0 kB view details)

Uploaded Python 2 Python 3

File details

Details for the file tagrenamer-0.0.3.tar.gz.

File metadata

  • Download URL: tagrenamer-0.0.3.tar.gz
  • Upload date:
  • Size: 27.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.0.0 CPython/3.11.8

File hashes

Hashes for tagrenamer-0.0.3.tar.gz
Algorithm Hash digest
SHA256 65a7a7c7504cb3260e2a1290d028823908f035007323f25926da0f23961c92d7
MD5 af527dc26185de631ebf5f62384bc0bf
BLAKE2b-256 f44803199f00aa7bb13b45967a31093a05b72a171b8bd04e479b6e54cb05ebcf

See more details on using hashes here.

File details

Details for the file tagrenamer-0.0.3-py2.py3-none-any.whl.

File metadata

  • Download URL: tagrenamer-0.0.3-py2.py3-none-any.whl
  • Upload date:
  • Size: 29.0 kB
  • Tags: Python 2, Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.0.0 CPython/3.11.8

File hashes

Hashes for tagrenamer-0.0.3-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 58e89f4775a55ce135f93ee8375d3139b9af21f8d2c2bce656bb978f12e147b5
MD5 226bdbfb2ae73890e5921e7c76543b4f
BLAKE2b-256 9a6c840ed4e5180c8471991c3c4b67a60ddaa27cc4dc43b5675aab9d3155f337

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page