]> git.phdru.name Git - audio-cdr-video.git/blob - audio/mp3/tag2name_format.py
Feat(audio/mp3): Add script `tag2name_format`
[audio-cdr-video.git] / audio / mp3 / tag2name_format.py
1 #! /usr/bin/env python
2
3 import sys, os
4 import eyed3
5 from eyed3.id3.frames import TITLE_FID, id3EncodingToString
6 from m_lib.defenc import default_encoding
7
8 def id3tag_recode(value):
9     try:
10         return value.encode(default_encoding)
11     except UnicodeEncodeError:
12         return value.encode('latin1')
13
14 format_str = sys.argv[1]  # Example: '{track:d} - {title}.mp3'
15 files = sys.argv[2:]
16 for filename in files:
17     id3tag = eyed3.id3.tag.Tag()
18     id3tag.parse(filename)
19     album = id3tag_recode(id3tag.album)
20     artist = id3tag_recode(id3tag.artist)
21     title = id3tag_recode(id3tag.title)
22     os.rename(filename, format_str.format(
23         album=album,
24         artist=artist,
25         title=title,
26         track=id3tag.track_num[0],
27     ))