Question

Pour mon serveur multimédia, je cherche des moyens de transférer des balises de mes fichiers FLAC à MP3.

Dans un script bash, je peux extraire des balises en utilisant métaflac À VARS locaux, mais lorsque je tague mp3 avec ID3V2, je semble perdre des caractères nationaux (je suppose que ce doit être Unicode?)

J'ai également besoin de pouvoir définir des étiquettes de gain de relecture et de l'art de l'album (tous présents dans les FLAC).

Je recherche une solution scriptée pour s'exécuter sans surveillance.

Était-ce utile?

La solution

Essayez cet outil Eyed3. Il prend en charge l'intégration d'art d'album, le codage de texte en Latin1, UTF8, UTF16-BE et UTF16-LE. Cependant, le gain de relecture n'est pas pris en charge. Pour autant que je comprends, il n'est pas largement pris en charge.

Autres conseils

Si vous êtes intéressé par une solution Python, la bibliothèque Mutagen a l'air vraiment bien.

Cela pourrait être aussi simple que:

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()

J'ai trouvé cette solution pour copier les balises MP3 ID3 dans des fichiers FLAC.

La solution de Victor m'a montré le chemin. Cela peut échouer, cependant, si la copie des balises dans un fichier que vous venez de convertir, par exemple, de FLAC à MP3. Autrement dit, il échouera si le fichier sur lequel vous copiez des balises n'a pas déjà de balises.

Vous devrez donc d'abord amorcer le fichier de destination, ce qui lui donne les moyens d'avoir des balises.

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
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top