Добро пожаловать на форум, Гость!
Войдите или зарегистрируйтесь!
Имя пользователя:   Пароль:  
Запомнить меня 




Начать новую тему Ответить на тему   [ Сообщений: 5 ] 
Автор Сообщение
СообщениеДобавлено: 22 фев 2012, 11:59 
Модератор
Аватар пользователя
Статус: Не в сети

GeoIP: Kyrgyzstan

Сообщений: 803

Зарегистрирован: 02 мар 2010, 16:13
Благодарил (а): 6 раз.
Поблагодарили: 12 раз.
Дело было так. Я собрал кучу песенок в папочку. Наименования были разные, потому что были вырваны из разных мест.
Захотел я чуваку скинуть то, что я собрал в виде Артист - Название.
Сгенерил плейлист клементина, он в 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()
 
Обработано за 0.013 секунд, используется GeSHi 1.0.8.4


mp3_renamer -d /путь/до/папки/с/кучей/mp3шек


Изображение

Home: Windows Heaven
Home: Debian 6
For Servers: Debian || RHEL Based || Gentoo || FreeBSD


Вернуться наверх
 Профиль  
 
СообщениеДобавлено: 22 фев 2012, 16:08 
Аватар пользователя
Статус: Не в сети

GeoIP: Kyrgyzstan

Сообщений: 1887

Зарегистрирован: 03 мар 2010, 11:25
Благодарил (а): 4 раз.
Поблагодарили: 39 раз.
ОС: Slackware-current
Gen1us2k
а с рекурсией возможно?

чтобы типа каталог /home/my/Mysic в котором дофига всякого с вложениями отпарсить и по-пацански переименовать?


Изображение

Изображение

Work: Slackware Linux 14.0 х 'all Servers'
Laptop: Slackware64-current / Xfce 4.10 / Linux 3.10.5


Вернуться наверх
 Профиль  
 
СообщениеДобавлено: 23 фев 2012, 20:06 
Бородатый сис
Аватар пользователя
Статус: Не в сети

GeoIP: Kyrgyzstan

Сообщений: 2902
Откуда: Из серверной
Зарегистрирован: 03 мар 2010, 15:12
Благодарил (а): 19 раз.
Поблагодарили: 122 раз.
ОС: RHEL 6.7
Infernal Flame
Gen1us2k писал(а):
mp3_renamer -d /путь/до/папки/с/кучей/mp3шек

Думаю it's by default


Я не злопамятный, я просто часто ковыряю логи
Изображение


Вернуться наверх
 Профиль  
 
СообщениеДобавлено: 24 фев 2012, 10:41 
Модератор
Аватар пользователя
Статус: Не в сети

GeoIP: Kyrgyzstan

Сообщений: 803

Зарегистрирован: 02 мар 2010, 16:13
Благодарил (а): 6 раз.
Поблагодарили: 12 раз.
Infernal Flame
Надо будет попробовать. проблема в том, чтобы были id3 теги.


Изображение

Home: Windows Heaven
Home: Debian 6
For Servers: Debian || RHEL Based || Gentoo || FreeBSD


Вернуться наверх
 Профиль  
 
СообщениеДобавлено: 24 фев 2012, 12:21 
Аватар пользователя
Статус: Не в сети

GeoIP: Kyrgyzstan

Сообщений: 1887

Зарегистрирован: 03 мар 2010, 11:25
Благодарил (а): 4 раз.
Поблагодарили: 39 раз.
ОС: Slackware-current
Gen1us2k
ну теги - моя забота уже %)

просто таким образом мог бы свою коллекцию привести к стандартному виду


Изображение

Изображение

Work: Slackware Linux 14.0 х 'all Servers'
Laptop: Slackware64-current / Xfce 4.10 / Linux 3.10.5


Вернуться наверх
 Профиль  
 
Показать сообщения за:  Сортировать по:  
Начать новую тему Ответить на тему  [ Сообщений: 5 ] 
   Похожие темы   Автор   Ответов   Просмотров   Последнее сообщение 
Перенесенная ^_^

в форуме Linux

root

3

38

02 мар 2010, 16:15

Gen1us2k Перейти к последнему сообщению

Нет новых непрочитанных сообщений в этой теме Доступен клиент мгновенного обмена сообщениями Tkabber 1.0

в форуме Новости *nix

[Ботя]

0

449

25 янв 2014, 00:00

Гость Перейти к последнему сообщению

Нет новых непрочитанных сообщений в этой теме Выпуск проприетарного дистрибутива Альт Образование 8.1

в форуме Новости *nix

[Ботя]

0

223

09 ноя 2016, 21:30

Гость Перейти к последнему сообщению



Кто сейчас на форуме

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  

Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Собрано Raven. Русская поддержка phpBB
phpBB SEO