Skip to main content

A simple CLI audio tagger

Project description

audiotag

Tests CodeQL PyPI

Audiotag is a command line audio tagger written in python3. It uses TagLib to write the metadata. It features a very simple to use interactive mode which lets you tag a single album as fast as possible.

Installation

You can install audiotag directly from PyPI.

pip install audiotag

If you are running Arch Linux you can install it from the AUR. The package is called audiotag.

Usage

Audiotag offers different subcommands:

Usage:
  audiotag print FILE...
  audiotag interactive FILE...
  audiotag set [--artist=ARTIST|--noartist] [--title=TITLE|--notitle]
               [--album=ALBUM|--noalbum] [--date=DATE|--nodate]
               [--genre=GENRE|--nogenre] [--tracknumber=TRACKNUMBER|--notracknumber]
               [--tracktotal=TRACKTOTAL|--notracktotal] [--discnumber=DISCNUMBER|--nodiscnumber]
               [--disctotal=DISCTOTAL|--nodisctotal] FILE...
  audiotag clean FILE...
  audiotag rename [--pattern=PATTERN] [-f] FILE...
  audiotag copy SOURCEFOLDER DESTFOLDER
  audiotag -h | --help
  audiotag -v | --version

Print

The print subcommand prints all tags. Multiple values per tag will be printed as a list.

$ audiotag print *.flac
Filename: /path/to/files/1 - At Giza.flac
ALBUM: 'Conference of the Birds'
ARTIST: 'Om'
DATE: '2006'
DISCNUMBER: '1'
DISCTOTAL: '1'
ENCODER: 'Lavf58.12.100'
GENRE: 'Doom Metal'
TITLE: 'At Giza'
TRACKNUMBER: '1'
TRACKTOTAL: '2'

Filename: /path/to/files/2 - Flight of the Eagle.flac
ALBUM: 'Conference of the Birds'
ARTIST: 'Om'
DATE: '2006'
DISCNUMBER: '1'
DISCTOTAL: '1'
ENCODER: 'Lavf58.12.100'
GENRE: 'Doom Metal'
TITLE: 'Flight of the Eagle'
TRACKNUMBER: '2'
TRACKTOTAL: '2'

Interactive

The interactive subcommand interprets all given files as a single album and asks for all the necessary information. If the the files are in different directories, audiotag assumes that each directory is a disk of a multi-disc release. The TRACKTOTAL and DISCTOTAL tags are set automatically.

$ audiotag interactive *.flac
Artist: Om
Albumtitle: Conference of the Birds
Genre: Doom Metal
Year: 2006
1 - At Giza.flac
Title 1: At Giza
2 - Flight of the Eagle.flac
Title 2: Flight of the Eagle

Set

If you want to set the tags in a non-interactive way you can use the set command. You can choose from these options:

  • --artist="Example"
  • --title="Example"
  • --album="Example"
  • --date=2000
  • --genre="Example"
  • --tracknumber=1
  • --discnumber=2
  • --tracktotal=10
  • --disctotal=2

If you want to remove tags you can choose these options:

  • --noartist
  • --notitle
  • --noalbum
  • --nodate
  • --nogenre
  • --notracknumber
  • --nodiscnumber
  • --notracktotal
  • --nodisctotal

You can combine these options as you like. Here is an example:

$ audiotag set --artist=Om --album="Conference of the Birds" --nodiscnumber 01-at_giza.flac

Clean

The clean subcommand removes all tags from the file except the ENCODER tag.

Rename

The rename subcommand lets you rename files based on the audio tags. You have to provide a pattern for renaming. The pattern may contain a combination of these placeholders:

  • {A}: Artist
  • {T}: Title
  • {L}: Album
  • {Y}: Date
  • {G}: Genre
  • {N}: Tracknumber
  • {D}: Discnumber
  • {NT}: Tracktotal
  • {DT}: Disctotal

If you don't specify a pattern, audiotag will use {N} - {T} if the Disctotal tag is set to 1 or {D}-{N} - {T} if the Disctotal tag is set to something else or missing. You do not have to add the extension to the pattern. Audiotag adds the extension to the output file name for you.

$ ls
01-at_giza.flac  02-flight_of_the_eagle.flac

$ audiotag rename *.flac

$ ls
'1 - At Giza.flac'  '2 - Flight of the Eagle.flac'

If the new filename already exists Audiotag will ask if you want to overwrite the existing file. This check can be disabled with the -f or --force option.

Copy

The copy subcommand copies the tags from all the files in the sourcefolder to corresponding files in the destination folder. The filenames are sorted alphabetically before they are matched. Note that the ENCODER tag ist not copied.

Dependencies

The following dependencies are needed to run audiotag:

  • pytaglib: Python wrapper for accessing TagLib

Optional dependencies are:

  • gnureadline: For better user input (Readline should already be installed on any Linux system)

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

audiotag-0.4.3.tar.gz (11.9 kB view details)

Uploaded Source

Built Distribution

audiotag-0.4.3-py3-none-any.whl (11.0 kB view details)

Uploaded Python 3

File details

Details for the file audiotag-0.4.3.tar.gz.

File metadata

  • Download URL: audiotag-0.4.3.tar.gz
  • Upload date:
  • Size: 11.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.7.0 importlib_metadata/4.8.2 pkginfo/1.8.2 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.9.9

File hashes

Hashes for audiotag-0.4.3.tar.gz
Algorithm Hash digest
SHA256 c8ece2d2ac54f446f095e148dcd983555bd1f1437fb136056117e6b3b3886aa2
MD5 a63c2295607b1249bb64751fcfa51595
BLAKE2b-256 bfd1f9b9723d3ce89763788c75db268ed591be23e98f263b1aa89d95fb73755b

See more details on using hashes here.

File details

Details for the file audiotag-0.4.3-py3-none-any.whl.

File metadata

  • Download URL: audiotag-0.4.3-py3-none-any.whl
  • Upload date:
  • Size: 11.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.7.0 importlib_metadata/4.8.2 pkginfo/1.8.2 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.9.9

File hashes

Hashes for audiotag-0.4.3-py3-none-any.whl
Algorithm Hash digest
SHA256 2408ed6bb3f9257a96ed8c542dc1abd594eabb6b1fc9b7feef81c7c27f07bf3f
MD5 a03bf88a69a3f99bc7e5976c86fc2225
BLAKE2b-256 864f3e1b0969b298cb2e7609a4490c36ef1b4aa846725d677d2bf5d4ead590c6

See more details on using hashes here.

Supported by

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