mp3タグのバックアップ


2

豊富な音楽コレクションがあり、そこからタグのみをバックアップしたいので(後で、失くした場合、再び見つけることができます)。.m4aおよび.mp3ファイルで構成されます。これどうやってするの?

回答:



1

この問題を解決する簡単なスクリプトを次に示します。ヒントをありがとう。

# 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')
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.