Чи є хороший інструмент ID3 командного рядка для OS X?


45

Хтось знає про командний рядок * інструмент ID3 з підтримкою ID3v2 , що ви можете працювати з Mac OS X з розумними зусиллями? Він повинен підтримувати як читання, так і запис тегів.

( * Я хочу мати можливість викликати його, наприклад, з деяких сценаріїв Python, тому інструмент GUI не буде робити.)

У іншому випадку утиліта id3tool хороша, але не підтримує ID3v2 (і, отже, не так добре грає з iTunes). Мені довелося компілювати його з джерела, але це було досить просто на Mac з інструментами Xcode & developer (включаючи, зокрема, компілятор C). У будь-якому разі, я особливо хотів би щось із подібними параметрами командного рядка, як id3tool. Ось приклад тегування одного файлу:

id3tool -t "Song Title" -r Artist -a "Album Name" -c 2 track-02.mp3

Я працював над написанням чогось подібного ... Є деякі бібліотеки, доступні в python, і є інструмент під назвою буряк, який використовує їх, тому я досліджував, як це написано.
Robert S Ciaccio

2
до того ж ... MusicBrainz Picard написаний на Python і є відкритим кодом, тому, мабуть, багато чого слід отримати і від його коду та використання бібліотеки.
Robert S Ciaccio

Я згоден, Пікард просто геніальний
Рохан Монга

Відповіді:


48

Якщо у вас встановлений Homebrew (настійно рекомендується), ви можете просто зробити:

brew install id3lib

Це встановлює кілька інструментів id3 командного рядка, в тому числі id3tag, id3convert, id3cpі id3info. Немає необхідності в написанні пітона або perl; просто використовуйте звичайні команди оболонки.

Usage: id3tag [OPTIONS]... [FILES]...
   -h         --help            Print help and exit
   -V         --version         Print version and exit
   -1         --v1tag           Render only the id3v1 tag (default=off)
   -2         --v2tag           Render only the id3v2 tag (default=off)
   -aSTRING   --artist=STRING   Set the artist information
   -ASTRING   --album=STRING    Set the album title information
   -sSTRING   --song=STRING     Set the title information
   -cSTRING   --comment=STRING  Set the comment information
   -CSTRING   --desc=STRING     Set the comment description
   -ySTRING   --year=STRING     Set the year
   -tSTRING   --track=STRING    Set the track number
   -TSTRING   --total=STRING    Set the total number of tracks
   -gSHORT    --genre=SHORT     Set the genre
   -w         --warning         Turn on warnings (for debugging) (default=off)
   -n         --notice          Turn on notices (for debugging) (default=off)

Чи підтримує він ID3v2?
Jonik

id3lib також працює в інших дистрибутивах, таких як macports. Якщо говорити про те, чи є сенс переходити з портів на домашню мову? У мене так багато болю переходило з фінка ...
HiQ CJ

"Помилка: недоступна формула для mid3v2". Хтось зацікавлений у формулюванні формули?
ManuelSchneid3r

3
@Jonik id3lib може писати та маніпулювати як ID3v1, так і ID3v2
jchook

1
Він також поставляється з id3v2, що є командою "робити все". Це дозволить вам написати будь-який довільний тег у файл.
Едвард Фолк

14

Тут на GitHub доступна сумісна з OS X версія бібліотеки id3lib . Він стверджує, що підтримує і ID3v1, і ID3v2.


1
Дякую! Це повністю відповідає на моє запитання. Була тільки вихідний пакет доступний, але установка від (на Mac з допомогою інструментів розробника) був досить гладкий: стандартний Unix тарифу configure, makeі make install. id3lib складається з 4 окремих двійкових файлів: id3info (для читання тегів), id3tag (для написання тегів), id3convert та id3cp. Все працює добре (iTunes шанує v2 теги, написані id3tag).
Jonik

@Jonik, що ти використовував для обгортання бібліотеки? Якогось пітона ви написали?
Robert S Ciaccio

@calavera: Так, у мене є прості сценарії, які намагаються визначити номер або назву доріжки з імені файлу (наприклад, "Виконавець - 03 - Track.mp3"), і якщо його знайдено, напишіть його і в тег ID3.
Джонік

@Jonk: Ви б готові поділитися? У мене немає великого досвіду роботи з python, тому щось подібне було б чудово пограти і продовжити ...
Robert S Ciaccio

@calavera: Ось ти . Використання: add-track-names.py *mp3або add-track-numbers.py *mp3. Загальні речі (більшість кодів) знаходяться в окремому файлі .py. Я насправді не кодер Python, тому код, мабуть, далеко не "пітонічний". :) Але я (повторно) багато чого навчився, коли писав це, і це, мабуть, легко продовжити, якщо ваші потреби в тегуванні щось подібні моїм.
Джонік

5

Модуль python Mutagen поставляється за допомогою інструмента ID3 командного рядка, який називається mid3v2 заміною для id3lib.
З документації щодо використання:

Ви можете встановити значення для будь-якого кадру ID3v2, використовуючи "-", а потім ідентифікатор кадру.
Наприклад:
mid3v2 --TIT3 "Мавпа!" file.mp3 встановив би для кадру "Subtitle / Description" "Monkey!".


Мутаген можна встановити sudo pip install mutagenпісля встановлення pip з sudo easy_install pip.
Лрі

ви можете безпосередньо працювати sudo easy_install mutagenзанадто
user1259710

4

Ви можете спробувати id3v2 . Він заснований на id3lib, про який згадував Huyz, але, здається, є кращим інструментом командного рядка, ніж ті, що мають id3lib. Він легко скидає теги ID3V2 з MP3-файлів, що виробляються з iTunes, але не з iTunes-файлів M4A (як у програмі Apple Lossless).

Якщо вам потрібні файли M4A, інший варіант - ffmpeg . Інструмент командного рядка ffprobe друкує метадані у файлах, і я вважаю, що ви можете записувати метадані через ffmpeg. Він працює як з MP3, так і з файлами M4A, створеними iTunes. ffprobe може не показувати всі метадані; mp4v2 - ще один хороший варіант.

Усі три програми легко встановлюються через Homebrew. Зараз (січень 2012) ffmpeg вимагає gcc для компіляції, тож brew install --use-gcc ffmpeg.


дякую, що запропонували mp4v2 для m4a! працює як шарм, тоді як id3v2 не зробив :(
Іліас Карим

mp4v2 - єдиний, хто редагував теги таким чином, що був сумісний з iTunes (macOS 10.13, iTunes 12.7).
void-pointer

2

Ця стара тема в Mac OS X Підказки виглядає так, що це може бути гарним місцем для початку. Це з 2003 року, тому я не впевнений, чи все ще розробляється інструмент, про який вони говорять. Можливо, вам також доведеться скласти його самостійно.


2

Завжди є AppleScript. Я не є великим прихильником цього, але iTunes - це сценарій, і ви можете маніпулювати всіма mp3-тегами звідти. Ви можете викликати Applescript з командного рядка, використовуючи osascript.


2

На цьому веб-сайті: http://dougscripts.com/itunes/ є багато хороших скриптів командного рядка та інструментів, які знаходяться на вершині itunes, щоб робити речі з вашою музичною бібліотекою. Деякі з них можуть робити те, що ви хочете. Деякі інструменти безкоштовні, а деякі - ліцензовані.


2

так як вам комфортно з cli та Python, я можу порекомендувати кілька модулів Perl на CPAN. MP3 :: Тег, (а також MP3 :: Тег :: ID3v1 та :: ID3v2 та :: Утиліти), MP3 :: Інформація, MP3 :: ID3Lib доступні для читання та обробки тегів ID3.

Якщо ви перейдете на search.cpan.org і шукаєте "MP3", ви знайдете світ * варіантів!

(* Де "світ" - це невеликий, обмежений набір варіантів ...)


1
CLI і Python так, але модулі Perl на CPAN ... не так вже й багато :-) (Якщо ви також можете використовувати ці в Python, я про це не знав. Або ви мали на увазі написання Perl замість цього?) Особисто я це отримав вирішено вже, але, можливо, це корисно для інших.
Джонік

2

У мене виникли різні проблеми типу "перервати пастку" з id3v2, я виявив eyeD3 , який є модулем python, який також існує як інструмент командного рядка. Здається, це було нещодавно оновлене, ніж деякі інші програми, згадані вище.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.