iTunes,オーディオブック(`m4b`)の,曲名とかアートワーク,一括自動化処理のために 〜 `mp4v2` の `mp4tags` と `mp4art` 使って
先日,mp4
のファイルを m4b
にする,となエントリしましたが,その中で,やっぱりタイトルやアートワーク等の設定も自動化してしまいたいと思うようになりました.
これがやっぱ,何となく...
嫌っ.
shellscript です.
道具は mp4v2
と言うユーティリティ(?) があって,その mp4tags
と mp4art
というのを使います.
以前に mp3
へのエントリを書きましたが,今回は m4b
ですので.
「mp4v2」,入れる
ぽいっ.
brew install mp4v2
有り難い.
スクリプト 1 - 各名前やジャンル等のテキスト情報は mp4tags
入れたい情報は,アーティスト名,アルバム,曲名,ジャンルとしました.;
mp4tags \ -artist "${artist}" \ -album "${album}" \ -song "${songTitle}" \ -genre "Radio"\ "${file}"
${file}
がターゲットの m4b
データです.
各情報とオプションの関係.
タグ | オプション |
---|---|
アーティスト名 | -artist |
アルバム | -album |
曲名 | -song |
ジャンル | -genre |
オプションは,ショートオプションも用意されています.
-artist
なら -a
,-album
は -A
,以下同様に -s
,-g
としても同じ.
ここでは後々の分かり易さ,見易さを優先して,ロングオプションのフルで書くようにしています.
編集できるタグの情報は他にも沢山あるようで,詳細は mp4tags -h
.
スクリプト 2 - アートワークは mp4art
そして問題のアートワーク.
こちらは,mp4art
タグを使う事にしました.;
mp4art \ --add "${artwork}" "${file}"
こちらも,${file}
がターゲットの m4b
ファイルで,${artwork}
が埋め込むアートワークの画像ファイル,となっています.
mp4tags
でもできるのに,何故?
mp4tags
でも -picture
(-P
) というオプションが用意されてまして,これでもアートワークを挿し込めます.
当初はこの mp4tags
の -picture
を使うつもりでした.
こんな感じ.;
mp4tags \ -artist "${artist}" \ -album "${album}" \ -song "${songTitle}" \ -genre "Radio" \ -picture "${artwork}" \ "${file}"
ですが.
アートワーク画像,ちゃんと書き込むには書き込んでくれるのですが,
どういうことか,iTunes の [情報] で言えば [アルバムアーティスト] へ,アートワーク画像のファイルのパスを書き込んくる.
mp4tags
のオプションで言うと -albumartist
(-R
) のアイテムになるのでしょうか.
help には 《Set the picture as a .png》ってあって,今回使っているのは jpg だから?とか?
明快さのために mp4tags
だけで実現したかったのですが,かとて,拘る気分も気力も無いので(笑,特に深追いすることなく mp4art
を使う事にした,というのが経緯です.
あ.-albumartist
に値をセットしておいてやれば OK なのかな,と思ってやってみましたけど,なぜかエラー吐かれてダメでした.
参考
- mp4tags で,動画のアーティスト情報を書換えて,iTunesのミュージックビデオの仕分けをちゃんとする - それマグで!
→mp4tags
を使おうと決めたエントリ.
こちらでは,アートワークをmp4tags
で書き換えている.
またfind
でループして一括で編集処理を行っているコードも参考にした. - シェルで動画や音楽ファイルのメタ情報を読み取る
→mp4v2
から触れている.
情報を参照するにはmp4info
.
ffmpeg
では,やはりだめ?
ffmpeg
でもアートワークを書き込める,というソースを幾つか目にしたのですが,本当に出来ますか?
こちらではできませんでした...
使い方が悪いのかもしれませんが.
- ffmpeg - Set MP4 thumbnail - Super User
→ ffmpeg でもアートワーク挿せる! って話.
なのですが,この回答に対し,出来なかったよ,ってコメントが. - php - Converting audio files and preserving album artwork with ffmpeg - Stack Overflow
→ 同上.
その他に
同様のことを実現するには,他の道具もあるようです.
例えば,こちら.
- aac - FFmpeg, how to embed cover art (image) to .m4a - Stack Overflow
→tageditor
と言うツールがあるらしいです.(未検証)
そしてこちらのやりとりも,「ffmpeg
でアートワーク,セットできないんだけど」と言う話がトリガ. - command line - Embedding album art in m4a files? - Ask Ubuntu
→ [Atomicparsley
].(未検証)
出典元は Ubuntu ですが,Homebrew
に formula あるようで.
最後に蛇足ですが,iBooks の仕様らしいのですが,
オーディオブック m4b
のリストでは,曲名とアルバムで使っている文字列に重複がある部分は省略されて出力されるみたいです.
例えば,アルバム名が「JUNK 伊集院光の深夜の馬鹿力」で,曲名は「JUNK 伊集院光の深夜の馬鹿力 2018年06月11日」という場合,リストで表示されるのは曲名フルではなく,日にちの部分 "2018年06月11日" のみが出力される,という.
領域は限られているので,何気,良い仕様だと思った次第.
はいおしまい.