From: Oleg Broytman Date: Sat, 7 Dec 2019 21:06:56 +0000 (+0300) Subject: Feat(audio/mp3): Add script `tag2name_format` X-Git-Url: https://git.phdru.name/?p=audio-cdr-video.git;a=commitdiff_plain;h=448c9cdd19b58ed14d82b2dfbb74961805e1e752 Feat(audio/mp3): Add script `tag2name_format` --- diff --git a/audio/mp3/tag2name_format.py b/audio/mp3/tag2name_format.py new file mode 100755 index 0000000..66373e4 --- /dev/null +++ b/audio/mp3/tag2name_format.py @@ -0,0 +1,27 @@ +#! /usr/bin/env python + +import sys, os +import eyed3 +from eyed3.id3.frames import TITLE_FID, id3EncodingToString +from m_lib.defenc import default_encoding + +def id3tag_recode(value): + try: + return value.encode(default_encoding) + except UnicodeEncodeError: + return value.encode('latin1') + +format_str = sys.argv[1] # Example: '{track:d} - {title}.mp3' +files = sys.argv[2:] +for filename in files: + id3tag = eyed3.id3.tag.Tag() + id3tag.parse(filename) + album = id3tag_recode(id3tag.album) + artist = id3tag_recode(id3tag.artist) + title = id3tag_recode(id3tag.title) + os.rename(filename, format_str.format( + album=album, + artist=artist, + title=title, + track=id3tag.track_num[0], + ))