¿Cómo puedo recuperar metadatos mp3 en Python?
Utilicé eyeD3 el otro día con mucho éxito. Descubrí que podía agregar ilustraciones a la etiqueta ID3 que los otros módulos que miré no podían. Tendrás que instalar usando pip o descargar el tar y ejecutar python setup.py install
desde la carpeta de origen.
A continuación se muestran ejemplos relevantes del sitio web.
Lectura del contenido de un archivo mp3 que contiene información de etiqueta v1 o v2:
import eyeD3
tag = eyeD3.Tag()
tag.link("/some/file.mp3")
print tag.getArtist()
print tag.getAlbum()
print tag.getTitle()
Lea un archivo mp3 (longitud de la pista, velocidad de bits, etc.) y acceda a su etiqueta:
if eyeD3.isMp3File(f):
audioFile = eyeD3.Mp3AudioFile(f)
tag = audioFile.getTag()
Se pueden seleccionar versiones específicas de etiquetas:
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.
O puede iterar sobre los cuadros sin formato:
tag = eyeD3.Tag()
tag.link("/some/file.mp3")
for frame in tag.frames:
print frame
Una vez que una etiqueta está vinculada a un archivo, se puede modificar y guardar:
tag.setArtist(u"Cro-Mags")
tag.setAlbum(u"Age of Quarrel")
tag.update()
Si la etiqueta vinculada era v2 y desea guardarla como v1:
tag.update(eyeD3.ID3_V1_1)
Lea una etiqueta y elimínela del archivo:
tag.link("/some/file.mp3")
tag.remove()
tag.update()
Añadir una nueva etiqueta:
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
(d minúscula).He usado mutagen para editar etiquetas en archivos multimedia antes. Lo bueno de mutagen es que puede manejar otros formatos, como mp4, FLAC, etc. He escrito varios scripts con mucho éxito utilizando esta API.
fuente
TIT2
para mp3,title
para ogg,\xa9nam
para mp4,Title
para WMA, etc., eso apesta.Un problema con
eyed3
es que arrojaráNotImplementedError("Unable to write ID3 v2.2")
archivos MP3 comunes.En mi experiencia, la
mutagen
claseEasyID3
funciona de manera más confiable. Ejemplo:Se puede acceder a todas las otras etiquetas de esta manera y guardarlas, lo que servirá para la mayoría de los propósitos. Se puede encontrar más información en el Tutorial de Mutagen .
fuente
Lo que buscas es el módulo ID3 . Es muy simple y le dará exactamente lo que necesita. Simplemente copie el archivo ID3.py en el directorio de paquetes de su sitio y podrá hacer algo como lo siguiente:
fuente
mira este:
https://github.com/Ciantic/songdetails
Ejemplo de uso:
Guardando cambios:
fuente
Solo información adicional para ustedes:
eche un vistazo a la sección "Cosas MP3 y editores de metadatos" en la página de PythonInMusic .
fuente
Un ejemplo simple del libro Dive Into Python funciona bien para mí, esto es el enlace de descarga, el ejemplo es fileinfo.py. No sé si es lo mejor, pero puede hacer el trabajo básico.
El libro completo está disponible en línea aquí .
fuente
Miré las respuestas anteriores y descubrí que no son buenas para mi proyecto debido a problemas de licencia con GPL.
Y descubrí esto: PyID3Lib , aunque esa fecha de lanzamiento de enlace de Python en particular es antigua, usa ID3Lib , que está actualizada.
Cabe mencionar que ambos son LGPL y están listos para comenzar.
fuente
El método más fácil es detalles de canciones .
para leer datos
de manera similar para editar
No olvides agregarte antes del nombre hasta que conozca el lenguaje chino.
Puedes leer y editar en masa usando el módulo Python Glob
ex.
fuente
Después de probar la
pip install
ruta simple para los módulos eyeD3, pytaglib e ID3 recomendados aquí, encontré que esta cuarta opción era la única que funcionaba. El resto tenía errores de importación con dependencias faltantes en C ++ o algo mágico o alguna otra biblioteca quepip
faltaba. Así que vaya con este para la lectura básica de las etiquetas ID3 (todas las versiones):https://pypi.python.org/pypi/tinytag/0.18.0
Lista de posibles atributos que puede obtener con TinyTag:
Era pequeño y autónomo, como se anunciaba.
fuente
La primera respuesta que usa eyed3 está desactualizada, así que aquí hay una versión actualizada de la misma.
Lectura de etiquetas de un archivo mp3:
Un ejemplo del sitio web para modificar etiquetas:
Un problema que encontré al intentar usar eyed3 por primera vez tuvo que ver con un error de importación de libmagic a pesar de que estaba instalado. Para solucionar esto, instale el magic-bin whl desde aquí
fuente
Sugeriría mp3-tagger . Lo mejor de esto es que se distribuye bajo licencia MIT y admite todos los atributos requeridos.
Ejemplo:
Es compatible con establecer, obtener, actualizar y eliminar atributos de archivos mp3.
fuente
Puede depender exactamente de lo que desea hacer además de leer los metadatos. Si lo que necesita es simplemente la tasa de bits / nombre, etc., y nada más, probablemente lo mejor sea algo liviano.
Si está manipulando el pasado mp3, PyMedia puede ser adecuado.
Hay bastantes, lo que sea que consigas, asegúrate y pruébalo en muchos medios de muestra. Hay algunas versiones diferentes de etiquetas ID3 en particular, así que asegúrese de que no esté demasiado desactualizado.
Personalmente, he usado esta pequeña clase de MP3Info con suerte. Sin embargo, es bastante viejo.
http://www.omniscia.org/~vivake/python/MP3Info.py
fuente
Después de una investigación inicial, pensé que los detalles de las canciones podrían ajustarse a mi caso de uso, pero no maneja archivos .m4b. Mutagen lo hace. Tenga en cuenta que, si bien algunos (razonablemente) han tenido problemas con la aparición de Mutagen de claves nativas de formato, que varían de formato a formato (TIT2 para mp3, título para ogg, \ xa9nam para mp4, Título para WMA, etc.), mutagen.File ( ) tiene un parámetro (¿nuevo?) easy = True que proporciona etiquetas EasyMP3 / EasyID3, que tienen un conjunto de claves coherente, aunque limitado. Hasta ahora solo he realizado pruebas limitadas, pero las claves comunes, como álbum, artista, albumartista, género, número de pista, número de disco, etc., están presentes e son idénticas para los archivos .mb4 y .mp3 cuando se usa easy = True, lo que lo hace Muy conveniente para mis propósitos.
fuente
usando https://github.com/nicfit/eyeD3
fuente
Solía Tinytag 1.3.1 porque
fuente