From 448c9cdd19b58ed14d82b2dfbb74961805e1e752 Mon Sep 17 00:00:00 2001 From: Oleg Broytman Date: Sun, 8 Dec 2019 00:06:56 +0300 Subject: [PATCH] Feat(audio/mp3): Add script `tag2name_format` --- audio/mp3/tag2name_format.py | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) create mode 100755 audio/mp3/tag2name_format.py 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], + )) -- 2.39.2