Переименовываем кучу mp3 файлов в по шаблону artist - title.
Добавлено: 22 фев 2012, 11:59
Захотел я чуваку скинуть то, что я собрал в виде Артист - Название.
Сгенерил плейлист клементина, он в xml, думал, что распарсю, но не. не было всех треков в нем. Решил забирать по ID3. вывод получил, допилил функционал переименования файлов.
в общем-то так.
[python]#!/usr/bin/env python
# -*- coding: utf-8 -*-
import os, re
from optparse import OptionParser
def getMusic(path):
import os
musicFiles = []
for root, dirs, files in os.walk(path):
for file in files:
if file.endswith(".mp3"):
musicFiles.append(file)
musicFiles.sort()
return musicFiles
def main():
usage = "Usage: %prog -d SOURCE_DIR"
parser = OptionParser(usage=usage)
parser.add_option("-d", "--dir", dest="dir", help="dir, where mp3 files stored")
(options, args) = parser.parse_args()
if not options.dir:
parser.error("You must specify Source dir")
musicDir = options.dir
musicFiles = getMusic(musicDir)
os.chdir(musicDir)
for musicFile in musicFiles:
track = getID3Tag(musicFile)
filename = str(track) + ".mp3"
print filename
os.rename(musicFile, track + ".mp3")
def clean_name(name):
try:
match = re.search(ur"([a-zA-Z0-9\.\'\ \!\-])+", name)
return match.group()
except:
return ""
def getID3Tag(mp3):
fp = open(mp3)
fp.seek(-128,2)
fp.read(3)
title = clean_name(fp.read(30))
artist = clean_name(fp.read(30))
album = clean_name(fp.read(30))
anno = fp.read(4)
comment = fp.read(28)
return artist.strip() + ' - ' + title.strip()
if __name__=='__main__':
main()
[/python]
mp3_renamer -d /путь/до/папки/с/кучей/mp3шек