Fazendo backup de tags de mp3

2

Eu tenho uma extensa coleção de músicas e quero fazer o backup de apenas tags dela (então, mais tarde, se eu perdê-la, posso encontrá-la novamente). Consiste em arquivos .m4a e .mp3. Como posso fazer isso?

    
por evgeniuz 28.04.2011 / 07:05

2 respostas

1

Aqui está o meu script simples, que resolve esse problema para mim. Obrigado por sugestões.

# coding=utf-8
"""Backs up tags from all m4a and mp3 files in a directory, recursively
and stores them as JSON file."""
import os
import json
import logging
from mutagen.easyid3 import EasyID3
from mutagen.easymp4 import EasyMP4


def backup_tags(directory, outfile):
    """Back up tags from all m4a & mp3 files from 'directory' into 'outfile'"""
    logging.info('Saving started.')
    filenames = []
    for root, _, files in os.walk(directory):
        filenames.extend([os.path.join(root, x) for x in files])

    def tags_dict(filename):
        """Return tags from file 'filename' as python dictionary"""
        _, extension = os.path.splitext(filename)
        if extension == '.mp3':
            return dict(EasyID3(filename))
        elif extension == '.m4a':
            return dict(EasyMP4(filename))
        else:
            raise Exception('Not supported file type: %s' % filename)

    with open(outfile, 'w') as out:
        json.dump([tags_dict(x) for x in filenames], out, indent=1)

    logging.info('Tags from %d file(s) saved.', len(filenames))

if __name__ == '__main__':
    logging.basicConfig(level=logging.INFO)
    backup_tags(u'F:\Music', 'backup.json')
    
por 01.05.2011 / 14:04
2

Isso realmente depende do sistema que você está usando, para uma solução portátil - veja, por exemplo, o link

    
por 28.04.2011 / 08:16

Tags