旧 #temanote

Linux大好き。だけど進捗ありません。

Linux環境でFLACファイルに複数アーティストのメタデータ付けをしたい

音源管理は若干凝ってて、自作スクリプトを使ってCD一枚分のflac+cueシートで管理しています。

最近同居してる友人がGooglePlayMusicから手元管理したいとのことで、オマケに自分の音源管理のスクリプト類をgithubに上げました。

github.com

=== 前置き_END ===

flacのメタ情報はvorbis comment形式です。

Ogg Vorbis Documentation

Field names are not required to be unique (occur once) within a comment header.
    ARTIST=Dizzy Gillespie 
    ARTIST=Sonny Rollins 
    ARTIST=Sonny Stitt 

とある通り、同名ヘッダータグが複数ある場合も許されます。
しかし、Linux環境でメタデータを埋め込む場合に利用されるcuetag.shでは、複数の同名ヘッダーを考慮されていません。
cuetools自体がサポートしていないようなのでcuetag.shの中で自力パースするかなぁなどとも考えています。

cuetoolsを直す手もあるんですが、とりあえず応急処置的な方法

[temama@ohagi Documents]$ metaflac --show-tag=PERFORMER test.flac 
PERFORMER=島村卯月(大橋彩香) 渋谷凛(福原綾香) 本田未央(原紗友里)  

[temama@ohagi Documents]$ metaflac --export-tags-to=befor.tag test.flac 

[temama@ohagi Documents]$ diff befor.tag after.tag 
5,6c5,10
< ARTIST=島村卯月(大橋彩香) 渋谷凛(福原綾香) 本田未央(原紗友里)
< PERFORMER=島村卯月(大橋彩香) 渋谷凛(福原綾香) 本田未央(原紗友里)  
---
> ARTIST=島村卯月(大橋彩香)
> ARTIST=渋谷凛(福原綾香)
> ARTIST=本田未央(原紗友里)
> PERFORMER=島村卯月(大橋彩香)  
> PERFORMER=渋谷凛(福原綾香)    
> PERFORMER=本田未央(原紗友里)  

[temama@ohagi Documents]$ cat after.tag 
TITLE=Stage Bye Stage
ALBUM=THE IDOLM@STER CINDERELLA GIRLS CG STAR LIVE Stage Bye Stage
TRACKNUMBER=01
TRACKTOTAL=06
ARTIST=島村卯月(大橋彩香)
ARTIST=渋谷凛(福原綾香)
ARTIST=本田未央(原紗友里)
PERFORMER=島村卯月(大橋彩香)  
PERFORMER=渋谷凛(福原綾香)    
PERFORMER=本田未央(原紗友里)  
ISRC=JPCO0181734

[temama@ohagi Documents]$ metaflac --remove-all-tags test.flac 

[temama@ohagi Documents]$ metaflac --import-tags-from=after.tag test.flac 

[temama@ohagi Documents]$ metaflac --show-tag=PERFORMER test.flac 
PERFORMER=島村卯月(大橋彩香)  
PERFORMER=渋谷凛(福原綾香)    
PERFORMER=本田未央(原紗友里)

metaflacで一度メタデータをテキストファイルに出力して、同名ヘッダーで列挙して再度タグ付け。これで対応プレイヤーはしっかり表示されます

ポータブルプレイヤー等ではサポートされているか怪しい場合が多いです、手元のFiiO X1では先頭の一人分のみ表示されました。

手元の大量のアイマス楽曲のためにcuetag.shを改良するかcuetoolsをフォークして仕様通りに動くようにしようかと思います