S-court Music で カスメのボーカルコレクション (注: R-18 ゲームの挿入歌) を買って意気揚々と MusicBrainz Picard に入れたところ、文字化けする。
これをモンキーパッチで直した、という話。
TL;DR: https://gist.github.com/rinsuki/d3526c637ee6a1ac0bc10b55a0ef426b
MusicBrainz Picard が WAV RIFF のメタデータを読んでいるのはここ。
中身を読むと:
となっている。
というわけで、とりあえず Shift-JIS を読みたいのだったらここを Windows-1252 から Shift-JIS とかにしてやれば良い *1。
で、Python なんだから MusicBrainz Picard.app
の中身を見たら .py が置いてあるんじゃね?と思うかもしれないが、Mach-O にバンドルされているのか何なのか、中のどこにあるかよくわからなかったので、代わりとして MusicBrainz Picard のプラグイン機構を使うことにした。.app の中身を書き換えるのも微妙だし……。
……で、プラグインの置き場所がわからなくてしばし彷徨った。最終的にはここに書いてあった。
あと手間取った……というか忘れていてハマったのは、Python は __
(アンダーバーふたつ) から始まるメンバーを定義すると _ClassName__
のように置換されるという仕様がある。
ので、先程の例だと置き換え対象は RiffListInfo.__decode_data
ではなく RiffListInfo._RiffListInfo__decode_data
のようにする必要がある。
で、できあがったプラグインがこれ。適当に刺して使ってください。終わったらたぶん消しておいたほうが良い。