Переименовываем кучу mp3 файлов в по шаблону artist - title.

bash, perl, python и прочие интерпретируемые скрипты

Модератор: Gen1us2k

Ответить
Аватара пользователя
Gen1us2k
Модератор
Модератор
Сообщения: 771
Зарегистрирован: 02 мар 2010, 16:13

Переименовываем кучу mp3 файлов в по шаблону artist - title.

Сообщение Gen1us2k » 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шек
Изображение
Home: Windows Heaven
Home: Debian 6
For Servers: Debian || RHEL Based || Gentoo || FreeBSD
Аватара пользователя
Infernal Flame
Злой Модер
Сообщения: 1796
Зарегистрирован: 03 мар 2010, 11:25
ОС: Centos 7
Контактная информация:

Re: Переименовываем кучу mp3 файлов в по шаблону artist - ti

Сообщение Infernal Flame » 22 фев 2012, 16:08

Gen1us2k
а с рекурсией возможно?

чтобы типа каталог /home/my/Mysic в котором дофига всякого с вложениями отпарсить и по-пацански переименовать?
Изображение
Изображение
Work: Centos 7 х 'all Servers'
Аватара пользователя
Raven
Бородатый сис
Бородатый сис
Сообщения: 2800
Зарегистрирован: 03 мар 2010, 15:12
ОС: RHEL 8
Откуда: Из серверной

Re: Переименовываем кучу mp3 файлов в по шаблону artist - ti

Сообщение Raven » 23 фев 2012, 20:06

Infernal Flame
Gen1us2k писал(а):mp3_renamer -d /путь/до/папки/с/кучей/mp3шек
Думаю it's by default
Я не злопамятный, я просто часто ковыряю логи
Аватара пользователя
Gen1us2k
Модератор
Модератор
Сообщения: 771
Зарегистрирован: 02 мар 2010, 16:13

Re: Переименовываем кучу mp3 файлов в по шаблону artist - ti

Сообщение Gen1us2k » 24 фев 2012, 10:41

Infernal Flame
Надо будет попробовать. проблема в том, чтобы были id3 теги.
Изображение
Home: Windows Heaven
Home: Debian 6
For Servers: Debian || RHEL Based || Gentoo || FreeBSD
Аватара пользователя
Infernal Flame
Злой Модер
Сообщения: 1796
Зарегистрирован: 03 мар 2010, 11:25
ОС: Centos 7
Контактная информация:

Re: Переименовываем кучу mp3 файлов в по шаблону artist - ti

Сообщение Infernal Flame » 24 фев 2012, 12:21

Gen1us2k
ну теги - моя забота уже %)

просто таким образом мог бы свою коллекцию привести к стандартному виду
Изображение
Изображение
Work: Centos 7 х 'all Servers'
Ответить

Вернуться в «Скрипты»