Saya telah mewarisi sekitar 2000 file MP3. Bagi sebagian besar dari mereka, tampilan tag ID3 mereka kacau di Amarok. Saya memerlukan perangkat lunak yang meningkatkan tag ID3 ke tipe v2.4 $03
(yaitu pengkodean UTF-8), menghapus semua tag v1, dan juga pintar mencari tahu pengodean asli berdasarkan kasus per kasus (kemungkinan besar salah satu dari Windows-1252, BOM-kurang UTF-16 atau GB18030).
Sebelum saya mulai memprogram ini sendiri di atas TagLib, apakah sudah ada solusi lengkap yang bisa saya gunakan?
Jangan rekomendasikan Musicbrainz - ini sangat bias terhadap musik yang diterbitkan Amerika Serikat dan hampir tidak berguna bagi saya. Jangan rekomendasikan perangkat lunak penandaan ID3 umum tanpa mengujinya terlebih dahulu terhadap persyaratan saya - kebanyakan dari mereka
- tidak mendukung v2.4
- terus terang mengatakan, ide terbelakang tenang tentang pengkodean karakter
- tidak memiliki fitur otomasi (saya tidak ingin menghabiskan waktu mengedit secara manual).
Saya juga belum (belum) tertarik pada pembersihan tag, penggantian nama massal atau perangkat lunak kategorisasi saja; Saya pertama kali harus melakukan langkah normalisasi yang disebutkan sebelumnya.
mid3v2
hanya setengah dari solusi. Setelah mencobanya, jelas tidak baik dengan penyandian yang salah identifikasi yang saya alami, yaitu tag ID3 yang ditingkatkan masih menampilkan kesalahan di Amarok. Mutagen gagal persyaratan saya tentang »pintar mencari tahu pengkodean asli«; itu dengan asyik mengasumsikanLatin1
/Windows-1252
, yang merupakan konforman standar, tetapi tidak berguna untuk dunia nyata yang berantakan. Saya cenderung tidak menerima jawaban ini sekarang; Saya akan memberikan beberapa hari lagi kesempatan untuk jawaban lain. Jika tidak ada yang baik datang, Anda diterima.mid3v2
tidak terlalu terang, dan itu tidak mengejutkan saya ... tapi saya pikir python memiliki beberapa modul pengkodean karakter (mungkiniconv
atau serupa) yang lebih pintar dan mungkin berguna untuk DIY- er.Saya tidak berpikir Anda akan menemukan aplikasi mandiri yang akan memperbaiki pilihan pengkodean pilihan Anda yang salah. Memiliki campuran cp1252, UTF-16 dan GB-18030 sangat tidak biasa dan saya tidak berpikir perangkat lunak yang ada akan dapat menyelesaikannya secara otomatis.
Jadi saya akan mengunduh Mutagen dan menulis skrip Python khusus untuk mengotomatisasi keputusan Anda sendiri tentang cara memperbaiki penyandian yang tidak dikenal. Sebagai contoh:
Script di atas membuat beberapa asumsi:
Hanya tag yang ditandai sebagai dalam pengkodean 0 yang salah. (Pengkodean 0 adalah ISO-8859-1, tetapi dalam praktiknya sering merupakan halaman kode default Windows.)
Jika sebuah tag ditandai sebagai dalam pengkodean UTF-8 atau UTF-16 itu dianggap benar, dan hanya dikonversi ke UTF-8 jika belum. Secara pribadi saya belum pernah melihat ID3 ditandai sebagai UTF (penyandian 1-3) dalam kesalahan sebelumnya. Untungnya, pengkodean 0 mudah untuk dipulihkan ke dalam byte aslinya karena ISO-8859-1 adalah pemetaan langsung 1-ke-1 dari nilai byte ordinal.
Ketika tag pengkodean 0 terpenuhi, skrip mencoba untuk menyusunnya kembali sebagai GB18030 terlebih dahulu, kemudian jika tidak valid kembali ke kode halaman 1252. Pengodean byte tunggal seperti cp1252 akan cenderung cocok dengan urutan byte paling banyak, jadi yang terbaik adalah menempatkannya di akhir daftar penyandian untuk dicoba.
Jika Anda memiliki penyandian lain seperti cp1251 Cyrillic, atau banyak nama file cp1252 dengan beberapa karakter beraksen berturut-turut, yang keliru dengan GB18030, Anda akan memerlukan semacam algoritma tebakan yang lebih pintar. Mungkin melihat nama file untuk menebak karakter seperti apa yang mungkin ada?
sumber
Bagaimana dengan Mp3Tag dengan Wine ?
Fitur (antara lain):
sumber
Foobar memiliki dukungan penandaan yang cukup lengkap . Itu berjalan di bawah anggur.
sumber
ada juga EasyTag
Anda juga mungkin ingin tahu bahwa id3v2.3 biasanya format yang lebih disukai, karena windows media player tidak mendukung 2.4
sumber