Резервное копирование mp3 теги

Я имею обширную музыкальную коллекцию и хочу создать резервную копию только тегов от нее (поэтому позже, если я теряю ее, я могу найти его снова). Это состоит из .m4a и .mp3 файлов. Как я могу сделать это?

2
задан 28.04.2011, 08:05

2 ответа

Вот мой простой сценарий, который разрешает эту проблему для меня. Спасибо за подсказки.

# 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')
2
ответ дан 08.12.2019, 06:28

Это действительно зависит от системы, которую Вы используете, для портативного решения - см., например, http://nedbatchelder.com/code/modules/id3reader.html

2
ответ дан 08.12.2019, 06:28

Теги

Похожие вопросы