Bagaimana cara mengambil metadata mp3 dengan Python?
Saya menggunakan eyeD3 beberapa hari yang lalu dengan banyak kesuksesan. Saya menemukan bahwa itu bisa menambahkan karya seni ke tag ID3 yang modul lain yang saya lihat tidak bisa. Anda harus menginstal menggunakan pip atau mengunduh tar dan mengeksekusi python setup.py install
dari folder sumber.
Contoh yang relevan dari situs web ada di bawah ini.
Membaca konten file mp3 yang berisi info tag v1 atau v2:
import eyeD3
tag = eyeD3.Tag()
tag.link("/some/file.mp3")
print tag.getArtist()
print tag.getAlbum()
print tag.getTitle()
Baca file mp3 (panjang trek, kecepatan bit, dll.) Dan akses tagnya:
if eyeD3.isMp3File(f):
audioFile = eyeD3.Mp3AudioFile(f)
tag = audioFile.getTag()
Versi tag tertentu dapat dipilih:
tag.link("/some/file.mp3", eyeD3.ID3_V2)
tag.link("/some/file.mp3", eyeD3.ID3_V1)
tag.link("/some/file.mp3", eyeD3.ID3_ANY_VERSION) # The default.
Atau Anda dapat melakukan iterasi pada frame mentah:
tag = eyeD3.Tag()
tag.link("/some/file.mp3")
for frame in tag.frames:
print frame
Setelah tag ditautkan ke file, tag dapat dimodifikasi dan disimpan:
tag.setArtist(u"Cro-Mags")
tag.setAlbum(u"Age of Quarrel")
tag.update()
Jika tag yang ditautkan adalah v2 dan Anda ingin menyimpannya sebagai v1:
tag.update(eyeD3.ID3_V1_1)
Baca di tag dan hapus dari file:
tag.link("/some/file.mp3")
tag.remove()
tag.update()
Tambahkan tag baru:
tag = eyeD3.Tag()
tag.link('/some/file.mp3') # no tag in this file, link returned False
tag.header.setVersion(eyeD3.ID3_V2_3)
tag.setArtist('Fugazi')
tag.update()
import eyed3
(huruf kecil d).Saya telah menggunakan mutagen untuk mengedit tag di file media sebelumnya. Hal yang baik tentang mutagen adalah dapat menangani format lain, seperti mp4, FLAC dll. Saya telah menulis beberapa skrip dengan banyak keberhasilan menggunakan API ini.
sumber
TIT2
untuk mp3,title
untuk ogg,\xa9nam
untuk mp4,Title
untuk WMA dll - itu menyebalkan.Masalahnya
eyed3
adalah ia akan membuangNotImplementedError("Unable to write ID3 v2.2")
file MP3 umum.Menurut pengalaman saya,
mutagen
kelasEasyID3
bekerja dengan lebih andal. Contoh:Semua tag lainnya dapat diakses dengan cara ini dan disimpan, yang akan melayani sebagian besar tujuan. Informasi lebih lanjut dapat ditemukan di Tutorial Mutagen .
sumber
Apa yang Anda kejar adalah modul ID3 . Ini sangat sederhana dan akan memberikan apa yang Anda butuhkan. Cukup salin file ID3.py ke direktori paket situs Anda dan Anda akan dapat melakukan sesuatu seperti berikut:
sumber
lihat yang ini:
https://github.com/Ciantic/songdetails
Contoh penggunaan:
Menyimpan perubahan:
sumber
Sekadar informasi tambahan untuk kalian:
lihat bagian "MP3 dan editor Metadata" di halaman PythonInMusic .
sumber
Contoh sederhana dari buku Dive Into Python berfungsi baik bagi saya, ini adalah tautan unduhan, contohnya fileinfo.py. Tidak tahu apakah itu yang terbaik, tetapi dapat melakukan pekerjaan dasar.
Seluruh buku tersedia online di sini .
sumber
Saya melihat jawaban di atas dan menemukan bahwa itu tidak baik untuk proyek saya karena masalah lisensi dengan GPL.
Dan saya menemukan ini: PyID3Lib , sementara tanggal rilis pengikatan python tertentu itu sudah tua, ia menggunakan ID3Lib , yang dengan sendirinya sudah diperbarui.
Yang perlu diperhatikan adalah keduanya LGPL , dan bagus untuk digunakan.
sumber
metode termudah adalah detail lagu ..
untuk membaca data
demikian pula untuk edit
Jangan lupa untuk menambahkan u sebelum nama sampai Anda tahu bahasa cina.
u dapat membaca dan mengedit secara massal menggunakan modul python glob
ex.
sumber
Setelah mencoba
pip install
rute sederhana untuk modul eyeD3, pytaglib, dan ID3 yang direkomendasikan di sini, saya menemukan opsi keempat ini adalah satu-satunya yang berfungsi. Sisanya memiliki kesalahan impor dengan dependensi yang hilang di C ++ atau sesuatu yang ajaib atau pustaka lain yangpip
tidak terjawab. Jadi gunakan yang ini untuk membaca dasar tag ID3 (semua versi):https://pypi.python.org/pypi/tinytag/0.18.0
Daftar atribut yang mungkin Anda dapatkan dengan TinyTag:
Itu kecil dan mandiri, seperti yang diiklankan.
sumber
Jawaban pertama yang menggunakan eyed3 sudah usang, jadi berikut adalah versi terbarunya.
Membaca tag dari file mp3:
Contoh dari situs web untuk mengubah tag:
Masalah yang saya temui saat mencoba menggunakan eyed3 untuk pertama kalinya berkaitan dengan kesalahan impor libmagic meskipun telah diinstal. Untuk mengatasinya, instal magic-bin whl dari sini
sumber
Saya akan menyarankan mp3-tagger . Hal terbaik tentang ini adalah didistribusikan di bawah Lisensi MIT dan mendukung semua atribut yang diperlukan.
Contoh:
Ini mendukung set, dapatkan, perbarui dan hapus atribut file mp3.
sumber
Ini dapat bergantung pada apa yang ingin Anda lakukan selain membaca metadata. Jika hanya bitrate / nama dll yang Anda butuhkan, dan tidak ada yang lain, sesuatu yang ringan mungkin yang terbaik.
Jika Anda memanipulasi mp3 sebelumnya, PyMedia mungkin cocok.
Ada cukup banyak, apapun yang Anda dapatkan, pastikan dan ujilah di banyak contoh media. Ada beberapa versi khusus dari tag ID3, jadi pastikan itu tidak terlalu ketinggalan zaman.
Secara pribadi saya telah menggunakan kelas MP3Info kecil ini dengan keberuntungan. Ini sudah cukup tua.
http://www.omniscia.org/~vivake/python/MP3Info.py
sumber
Setelah beberapa penelitian awal, saya pikir detail lagu mungkin sesuai dengan kasus penggunaan saya, tetapi tidak menangani file .m4b. Mutagen melakukannya. Perhatikan bahwa sementara beberapa (cukup) mengambil masalah dengan kemunculan Mutagen dari kunci format-asli, yang bervariasi dari format ke format (TIT2 untuk mp3, judul untuk ogg, \ xa9nam untuk mp4, Judul untuk WMA dll.), Mutagen.File ( ) memiliki parameter (baru?) easy = True yang menyediakan tag EasyMP3 / EasyID3, yang memiliki sekumpulan kunci yang konsisten, meskipun terbatas. Sejauh ini saya hanya melakukan pengujian terbatas, tetapi kunci umum, seperti album, artis, albumartist, genre, tracknumber, discnumber, dll. Semuanya ada dan identik untuk file .mb4 dan .mp3 saat menggunakan easy = True, membuatnya sangat nyaman untuk tujuan saya.
sumber
menggunakan https://github.com/nicfit/eyeD3
sumber
Saya menggunakan tinytag 1.3.1 karena
sumber