Odziedziczyłem około 2000 plików MP3. Dla większości z nich ich tagi ID3 są zniekształcone w Amaroku. Potrzebuję oprogramowania, które uaktualnia tagi ID3 do typu v2.4 $03
(tj. Kodowanie UTF-8), usuwa wszelkie tagi v1, a także sprytnie zastanawia się nad oryginalnym kodowaniem w poszczególnych przypadkach (najprawdopodobniej jednym z Windows-1252, bez BOM UTF-16 lub GB18030).
Czy zanim rozpocznę samodzielne programowanie tego na TagLib, istnieje już tak kompletne rozwiązanie, którego mógłbym użyć?
Nie polecam Musicbrainz - jest to stronnicze w stosunku do opublikowanej w Stanach Zjednoczonych muzyki i prawie dla mnie bezużyteczne. Nie polecam ogólnego oprogramowania do tagowania ID3 bez uprzedniego przetestowania go pod kątem moich wymagań - większość z nich
- nie obsługują v2.4
- szczerze mówiąc, mam cicho opóźnione pomysły na temat kodowania znaków
- nie mają funkcji automatyzacji (nie chcę spędzać czasu na ręcznej edycji).
Nie jestem (jeszcze) zainteresowany wyłącznie oprogramowaniem do czyszczenia tagów, masowej zmiany nazw lub kategoryzacji; Najpierw zrobiłem wyżej wspomniany krok normalizacyjny.
mid3v2
to tylko połowa rozwiązania. Po wypróbowaniu zdecydowanie nie jest to dobre z błędnie zidentyfikowanymi kodowaniami, na które cierpię, tj. Ulepszony tag ID3 nadal wyświetla się nieprawidłowo w Amaroku. Mutagen nie spełnia moich wymagań dotyczących „mądrego zrozumienia oryginalnego kodowania”; beztrosko przyjmujeLatin1
/Windows-1252
, co jest zgodne ze standardem, ale bezużyteczne w nieuporządkowanym świecie rzeczywistym. Jestem skłonny nie zaakceptować tej odpowiedzi w tej chwili; Dam jeszcze kilka dni na inne odpowiedzi. Jeśli nic dobrego nie przyjdzie, zostaniesz zaakceptowany.mid3v2
nie jest zbyt jasny, i to mnie nie dziwi ... ale myślę, że python ma jakieś moduły kodowania znaków (być możeiconv
lub podobne), które są mądrzejsze i mogą być przydatne dla majsterkowiczów er.Nie sądzę, że znajdziesz samodzielną aplikację, która naprawi twój wybór nieprawidłowo oznakowanych kodowań. Posiadanie mieszaniny cp1252, UTF-16 i GB-18030 jest dość niezwykłe i nie sądzę, aby istniejące oprogramowanie mogło rozwiązać to automatycznie.
Pobrałbym więc Mutagen i napisałem niestandardowy skrypt w języku Python, aby zautomatyzować własne decyzje dotyczące naprawy nieznanych kodowań. Na przykład:
Powyższy skrypt zawiera kilka założeń:
Tylko tagi oznaczone jako będące w kodowaniu 0 są nieprawidłowe. (Pozornie kodowanie 0 to ISO-8859-1, ale w praktyce często jest to domyślna strona kodowa systemu Windows).
Jeśli znacznik jest oznaczony jako kodowany w UTF-8 lub UTF-16, zakłada się, że jest poprawny i po prostu przekonwertowany na UTF-8, jeśli jeszcze nie jest. Osobiście nie widziałem wcześniej ID3 oznaczonych jako UTF (kodowanie 1-3). Na szczęście kodowanie 0 jest łatwe do odzyskania w oryginalnych bajtach, ponieważ ISO-8859-1 to bezpośrednie mapowanie wartości bajtów porządkowych 1 do 1.
Po spełnieniu znacznika kodującego 0 skrypt próbuje najpierw przekształcić go w GB18030, a następnie, jeśli jest niepoprawny, wraca do strony kodowej 1252. Kodowania jednobajtowe, takie jak cp1252, będą zwykle pasować do większości sekwencji bajtów, więc najlepiej je umieścić na końcu listy kodowań do wypróbowania.
Jeśli masz inne kodowania, takie jak cp1251 Cyrylica lub wiele nazw plików cp1252 z wieloma znakami akcentowanymi z rzędu, które mylą się z GB18030, będziesz potrzebować jakiegoś sprytniejszego algorytmu zgadywania. Może spójrz na nazwę pliku, aby odgadnąć, jakie znaki mogą być obecne?
źródło
Co powiesz na Mp3Tag with Wine ?
Funkcje (między innymi):
źródło
Foobar ma całkiem kompletne wsparcie tagowania . Działa pod winem.
źródło
jest też EasyTag
możesz także chcieć wiedzieć, że id3v2.3 jest zwykle preferowanym formatem, ponieważ Windows Media Player nie obsługuje 2.4
źródło