> 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 разобраться.
Потом - имена.
Затем уже перекодировки форматов.

Ответить