FLACをMP3に変換→タグのコピー
http://d.hatena.ne.jp/progd/20091227/1261914093 の方法だとMP3のタグが無い状態になってしまう。
以下のPythonスクリプトでFLACファイルからタグを移植する。
#!/usr/bin/env python2.6 #coding: utf-8 import sys from mutagen.flac import FLAC from mutagen.easyid3 import EasyID3, EasyID3KeyError # コマンドライン引数を取得 argvs = sys.argv if len(argvs) != 2: print "usage: python %s flacfile" % argvs[0] quit() flac = FLAC(argvs[1]) mp3 = EasyID3(argvs[1] + ".mp3") for key, value in flac.iteritems(): try: mp3[key] = value except EasyID3KeyError: print "%s is passed" % key mp3.save() print argvs[1] + ".mp3 writed"
注意点
- easy_installでmutagenをインストールしておくこと
- 普通にLAMEでMP3を作るとタグが無い状態のファイルができる。mutagenではタグの無いMP3ファイルは読み込めないので、lameコマンドに--add-id3v2オプションを付加すること
- mutagen.easyid3では処理できるキーに制約がある。処理可能なキーの一覧はEasyID3.valid_keys.keys()で見られる。mutagen.id3ならば自由に編集できるようだが、ID3タグの仕様を理解していないと使えない
使い方
ubuntu:progd% cat flac2mp3.sh #!/bin/sh echo decoding: $1 flac --decode --stdout "$1" | lame --add-id3v2 - "$1".mp3 python tag.py "$1" ubuntu:progd% find . -name "*.flac" -exec ./flac2mp3.sh {} \; ubuntu:progd% find . -name "*.mp3" | perl -lne '$o=$_; s/\.flac//; rename $o,$_;'