私は、.CUEファイルを使用してモノリシック音楽ファイルを個々のトラックに分割し、MP3でそれらをエンコードするスクリプトを作成していますCUEの正しいタグですべて正常に機能していますが、残念ながらユニコード文字(日本語の音楽のために常にそうである)が含まれていると、タグは(lame
のコマンドライン引数を使って単純に適用すると)確実にiTunesでぎこちない表示になります。Python 3.1のバイトオブジェクトからシェルコマンドを実行する(またはPython 3.1でUTF-8 mp3タグを書く)
thisスクリプトで実行して修正できますが、それは実行する別のスクリプトであり、タグに引用符が付いていることがあります(修正できないバグ)。除去する。
これは、実行前にlame
コマンド+引数文字列をUTF-8でエンコードすることですが、Python 3.1では文字列ではなくバイトからコマンドを実行するサポートがないようです。単に文字列を渡すだけで、間違ってエンコードされます。
また、タグ付けライブラリを使用してエンコードが完了した後にタグを挿入するだけではうれしいですが、そのようなソリューションは遅くてエレガントではありません。しかし、どんな提案も歓迎です!
ありがとうございます。
編集:私は(長い行のため申し訳ありませんが)このようlame
を呼び出す:
args = "lame --tt \"{0}\" --tn {1:02d} --ta \"{2}\" --tl \"{3}\" \"{4}\" \"{5}.mp3\"".format(item.title, item.tracknumber, item.artist, albumObject.title, item.wavFile, "{0:02d} ".format(item.tracknumber) + item.title)
#args = bytearray(args, "utf-8")
retcode = subprocess.check_call(args)
をも、あなたが上でどのようなシステムです –
あなたのスクリプトでラメ呼び出す方法を確認するために役立つだろう、次のように、あなたは、UTF-8でエンコードされたタグを設定することができますか? Windowsの場合、「デフォルトシステムコードページ」は日本語に設定されていますか? –
私はOSXです。私が実行している端末はデフォルトでUTF-8です。 – Ripdog