Pregunta

Para mi servidor de medios, estoy buscando formas de transferir etiquetas de mis archivos FLAC a MP3.

En un script bash, puedo extraer etiquetas usando metaflac A Vars locales, pero al etiquetar MP3 con ID3V2, parece que pierdo personajes nacionales (¿supongo que debe ser unicode?)

También necesito poder establecer etiquetas de ganancia de reproducción y la carátula del álbum (todas presentes en los FLAC).

Estoy buscando una solución con guión para ejecutar desatendidas.

¿Fue útil?

Solución

Prueba esta herramienta Eyed3. Admite la integración del álbum, la codificación de texto en Latin1, UTF8, UTF16-Be y UTF16-Le. Sin embargo, la ganancia de repetición no es compatible. Por lo que entiendo, no es ampliamente compatible.

Otros consejos

Si está interesado en una solución de Python, la Biblioteca Mutagen se ve realmente bien.

Podría ser tan fácil como:

from mutagen.flac import FLAC
from mutagen.easyid3 import EasyID3

flacfile = FLAC("flacfile.flac")
mp3file = EasyID3("mp3file.mp3")

for tag in flacfile:
    if tag in EasyID3.valid_keys.keys():
        mp3file[tag] = flacfile[tag]

mp3file.save()

Encontré esta solución para copiar etiquetas MP3 ID3 en archivos FLAC.

La solución de Victor me mostró el camino. Sin embargo, puede fallar si copia las etiquetas en un archivo que acaba de convertir, por ejemplo, de FLAC a MP3. Es decir, fallará si el archivo al que está copiando etiquetas ya no tiene etiquetas.

Por lo tanto, es posible que primero deba preparar el archivo de destino, dándole los medios para tener etiquetas.

from mutagen import File
from mutagen.flac import FLAC
from mutagen.easyid3 import EasyID3
from mutagen.id3 import ID3, ID3NoHeaderError

def convert_tags(f1,f2):
    # f1: full path to file copying tags from
    # f2: full path to file copying tags to
    # http://stackoverflow.com/questions/8873364/linux-script-to-transfer-id3-tags-from-flac-to-mp3
    # http://stackoverflow.com/a/18369606/2455413
    try:
        meta = EasyID3(f2)
    except ID3NoHeaderError:
        meta = File(f2, easy=True)
        meta.add_tags()
        meta.save()
    from_f = FLAC(f1)
    to_f = EasyID3(f2)
    for tag in from_f:
        if tag in EasyID3.valid_keys.keys(): to_f[tag] = from_f[tag]
    to_f.save()
    return
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top