LINUX.ORG.RU

id3tag - как присвоить тэги на основе имён файлов?

 ,


0

1

Имеем файлы:

ls ".../Data/Music/Original Sound Tracks/Silent Hill The Movie (2006)"
'Silent Hill The Movie - Alyssa.mp3'
'Silent Hill The Movie - Cafe.mp3'
'Silent Hill The Movie - Die (Bonus Track - Used in Teaser Trailers).mp3'
'Silent Hill The Movie - End Credits Part 1.mp3'
'Silent Hill The Movie - End Credits Part 2.mp3'
'Silent Hill The Movie - End Credits Part 3.mp3'
'Silent Hill The Movie - Johnny Cash - The Ring of Fire.mp3'
'Silent Hill The Movie - Journey to the School.mp3'
'Silent Hill The Movie - Main Theme.mp3'
'Silent Hill The Movie - The Cliffside.mp3'
'Silent Hill The Movie - The Ghost and the Car.mp3'
'Silent Hill The Movie - This is my daughter... Sharon.mp3'
'Silent Hill The Movie - Under the Tree.mp3'
'Silent Hill The Movie - Welcome to Silent Hill.mp3'

Можно отдельно по файлу назначить тэги, но это скучно:

id3tag --song "$(find *Die*| cut -d ' ' -f6-20 |sed 's/.mp3 //g')"  *Die*

Пробую что-то вроде:

find . -iname "*.mp3" -exec id3tag --song "$(echo {} | cut -d ' ' -f6-20 |sed 's/.mp3//g')"  {} \;

но получается хрень. Как это лучше оформить? find находит файлы, передаёт их id3tag, тот получает полное имя файла и название тэга, взятое из имени: $(echo {} | cut -d ' ' -f6-20 |sed 's/.mp3//g').

В идеале брать бы название альбома из названия папки, в которой лежат файлы. А названия трэков какой более вменяемой конструкцией, чем я придумал выше.

Ответ на: комментарий от Avial

Спасибо, я попробую. Но моя цель была пользуясь прикладной задачей попрактиковаться с консольным софтом вроде id3tag средствами конвеера find. Я слабоват в баше. И я провалил задачу, даром убил время.

hikikomori ★★★
() автор топика
Ответ на: комментарий от Avial

upd. попробовал этот beet. не оценил. Во-первых я не могу скопом позволять какой-либо софтине изменять мои mp3 файлы. Я на раздачах сижу, и она мне их испортит. Во-вторых, толком не понятно что это и что может. Попробовал на текущих файлах, ни смагла. Интерфейс последовательно-упоротый. Я так вручную быстрее накопипащу, чем постоянно ей подсказки жать, в надежде что она смагет. Полезла в сеть за тэгами как я понял и не смогла. Короче очередной надмозг.

hikikomori ★★★
() автор топика
Ответ на: комментарий от hikikomori

но получается хрень. Как это лучше оформить?

Если не нравятся готовые решения, берешь свой любимый скриптовый язык — перл, питон, руби, да всё, что угодно, и говнякаешь свой надмозг. Можешь насиловать баш/финд/сед/…, если, конечно, осилишь. Затруднения твои непонятны.

Во-первых я не могу скопом позволять какой-либо софтине изменять мои mp3 файлы.

А как ты собрался теги вешать, не изменяя файлов? id3v2 теги внутрь файла записываются. id3tag тоже внутрь файла пишет, как и все остальные.

И, кстати, в id3tag баги есть. Уже не помню какие, возможно, с кодировками чудит. Из комманд-лайновых утилит, которые я опробовал, самая беспроблемная — mid3v2.

Для переноса инфы из имён в теги (или наоборот) я easytag использую. Для моих потребностей её хватает.

P. S. Варнинг: За easytag грешок известен — она OGG Vorbis файлы портит. В ломании mp3 замечена не была.

debugger ★★★★★
()
Последнее исправление: debugger (всего исправлений: 4)
Ответ на: комментарий от debugger

Затруднения твои непонятны.

Если вам непонятны мои затруднения, то значит вам самому всё понятно. А если так, то поделитесь пожалуйста вашим пониманием bash и find. Про питон не надо писать, если бы хотел на нём - топик бы не создавал.

А как ты собрался теги вешать

Изменения касаются строго одной папки, которая не раздаётся. А та приблуда - для управления библиотеками и нафиг она мне такая красивая нужна - даже мою папку не смогла.

mid3v2.

Вот это ценно, спасибо.

easytag

Тоже пользовался, дано уже. Но как там имена тэгов из имени файла брать? Плюс, таки хочу решение с find.

hikikomori ★★★
() автор топика

Когда понадобилось массово и по разным правилам менять тэги в имена файлов и имена файлов в тэги с разными кодировками, то ничего лучше, чем старый добрый TagScanner запущенный под Wine, я не нашел. Вот несколько дней ковырял разные софтины, и ничего лучше. Хотя, у меня и задача была довольно объемная, всю коллекцию, накопленную по разным помойкам за 15 лет, привести в порядок.

Loki13 ★★★★★
()
Последнее исправление: Loki13 (всего исправлений: 1)

pwd/find, разбил по слешам — вот тебе и название альбома. Я не совсем понимаю проблему.

Или сделай на Питоне, там с путями сильно проще работать.

urxvt ★★★★★
()
Последнее исправление: urxvt (всего исправлений: 1)
Ответ на: комментарий от hikikomori

Но как там имена тэгов из имени файла брать?

Не имена, а значения. View → Show Scanner → Fill Tag.

Плюс, таки хочу решение с find.

У каждого свои недостатки.

debugger ★★★★★
()
Последнее исправление: debugger (всего исправлений: 1)