質問

私のメディアサーバーでは、FLACファイルからMP3にタグを転送する方法を探しています。

bashスクリプトでは、タグを使用して抽出できます メタフラック ローカルのvarに、しかしid3v2でmp3にタグを付けると、私は国民のキャラクターを失うようです(ユニコードでなければならないと思いますか?)

また、リプレイゲインタグとアルバムアート(すべてFLACに存在する)を設定できる必要があります。

私は無人で実行するためのスクリプト化されたソリューションを探しています。

役に立ちましたか?

解決

このツールを試してください eyed3. 。アルバムアートの埋め込み、LATIN1、UTF8、UTF16-BE、UTF16-LEでのテキストエンコードをサポートしています。ただし、リプレイゲインはサポートされていません。私が理解する限り、それは広くサポートされていません。

他のヒント

Pythonソリューションに興味がある場合、Mutagen Libraryは本当によく見えます。

それは次のように簡単かもしれません:

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

MP3 ID3タグをFLACファイルにコピーするためのこのソリューションを見つけました。

ビクターの解決策は私に道を見せてくれました。ただし、たとえばFLACからMP3に変換したばかりのファイルにタグをコピーすると、それが失敗する可能性があります。つまり、タグをコピーしているファイルにタグがまだない場合、失敗します。

したがって、最初に宛先ファイルをプライミングして、タグを持つ手段を付与する必要がある場合があります。

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
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top