--- /dev/null
+#! /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],
+ ))