> On Tue, 13 Jun 2017 17:49:32 +0300 > artiom <artio...@yandex.ru> wrote: > >> Для тех, кому нравится решать квесты. >> >> Как отсортировать музыку? > > Методом последовательных итераций. Логично. А конкретнее? С условием, что вручную там копаться не надо будет.
> > >> >> Нашёл на хабре, как некто сделал сначала перекодировку тэгов из >> CP-1251, затем использовал easytag. > > Вообще говоря, easytag умеет работать с cp1251. Хотя у меня идея > gui-программы со встроенным обходом директорий вызвает впечатление > "рукалицо.жпг". > Там нет проблемы через любой рекодер замутить обход с find, там проблема в том, чтобы опознать кодировку и последовательность перекодировок, как это делает например: https://www.artlebedev.ru/decoder/ >> 3. Я не хочу заниматься сортировкой вручную. > > Разумным действием является "вытащить те файлы, которые удалось > опознать автоматом", потом применить другой способ опознавания, и так > далее, и тому подобное, пока не кончатся либо файлы, либо идеи как еще > можно опознать файлы автоматом. Если первыми кончатся идеи, оставшиеся > файлы, которых будет довольно немного, опознать вручную. > Это не совсем правильно, потому что, как я указал выше, часть файлов сгруппирована в иерархию. Т.е., я потеряю эту информацию, либо надо вытаскивать вместе с иерархией, но опять же, тогда встаёт проблема что копировать. Т.е., у части информацию возможно взять из тэгов, но надо понять, какие в тегах были применены кодировки, а в другой части файлов, наоборот, информацию, полученную из пути к файлу засунуть в тэги. >> 4. Требуется: >> - Опознать все файлы. >> - Привести названия файлов к единому формату. >> - Построить правильную иерархию каталогов. >> - Сделать id3 тэги соответствующими файлам, к которым они применены. >> - Привести содержимое id3 к единому формату. >> - Привести кодировки id3 в UTF-8. > > Вот эти три пункта делаются одним движением в easytag. Но там не три пункта. И разве есть опознание? > >> - Сократить число форматов: только ogg, mp3 для музыки, mp4 для >> видео. > > Дальше написано что там есть еще midi. midi переводить в ogg/mp3 не > советую. Потому что превращение midi в аудиофайл - это процесс > творческий, почти то же самое, что сыграть мелодию по нотам. > Почему? vlc играет. Значит и перевести возможно. > Получается что у нас есть > > 1. midi - оно так midi и останется Ok, midi там немного. > 2. loseless audio (например uncompressed wav) - его перегоняем в ogg Ok. > 3. mp3 auido (которое может быть либо в mp3, либо в wav, содержащий > внутри mp3. o.O А это как? > Его надо суметь отличить от uncompressed wav, и ежели такой > найдется, не пытаться жать oggenc, а отрезать RIFF-заголовок и получать > mp3. И как отличать? Я вообще первый аз про такое слышу. MP3 внутри wav? > 4. Видео - его пережимаем в mp3, наплевав на возможные потери качества > звука. > Не, видео там клипы, они тоже нужны. > >> 4. Кодировки тэгов разные и частично поломаны: >> >> ХХХ (11) Кукрыниксы >> Мастер-киллер Кукрыниксы >> >> Kukryniksy (19) ?????????? >> ?? ??? ?????? ?????????? > > > Вот тут интересный вопрос - это и правда там внутри файла лежат > ASCII-символы 3F? Если да, то это пушистый полярный зверь. Да, там может быть всё, что угодно. > Информация > из тэга утрачена безвозвратно и можно либо пытаться опознать на слух, > либо обратиться к imdb. Да. Я вообще предполагал, что где-то может быть сервис для опознания по хэшам. Такое бывает? > Но может быть все еще не так плохо, и это просто > артефакты отображения. Нет. > Т.е. берем какой-нибудь mp3info (или еще какую > консольную тулзу потупее) и проходим им все файлы. Вывод пропускаем > через автодетектор кодировок, напримет enca. > > Скорее всего на выходе получим файл в котором для большинства > музыкальных файлов будет что-нибудь > >> >> Герман Анна (3) бООБ >> зПТЙ, ЗПТЙ НПС ЪЧЕЪДБ бООБ > > Здесь все понятно - 8-битная русская кодировка но не та. (т.е. написано > в koi8/ прочитано в cp1251) > >> Murietta (22) >> Ария Смерти >> >> Неопознанные файлы (160) >> Äîðîæêà 8 Íåèçâåñòíûé èñïîëíèòåëü > > И здесь тоже ясно - это какая-то 8-битная русская кодировка > мисинтерпретированная как iso8859-1. > cp-1251, похоже. > Скорее всего enca со всеми этими случаями справится. > Отлично, проверю. > В результате получим большой текстовый файл который будет содержать для > каждого файла в более-менее удодобочитаемом виде информацию из тэгов. > (надо позаботиться чтобы имя файла при этом никуда не перекодировалось) > Вот этот файл придется поредактировать вручную, серией глобальных замен > приводя информацию из того вида, в каком она получилась, в тот, который > хочется иметь. В этом месте, кстати, можно средствами редактора > побороться с теми кодировками, с которыми не справилась enca. > > Потом превратить этот файл в шелловский скрипт, который переместит файл > из исходного положения в ожидаемое (возможно с преобразованием > формата), благо правильная команда перемещения/перекодирования > добавляется глобальной заменой даже легче, чем разнообразный вид > метаинформации приводится к стандартному (желаемому) пути. > > После запуска этого скрипта получаем иерархию каталогов, в которых > файлы называются так, как нам хочется. > > Теперь запускаем easytag и велим ему информацию из имен файлов > прописать в тэги. Ладно, сначала надо с тэгами mp3 разобраться. Потом - имена. Затем уже перекодировки форматов.