理系学生日記

おまえはいつまで学生気分なのか

.m4a ファイルへのタグ付け

Audio::M4P::QuickTime を使えば m4a ファイルに対してタグを付けることができ、もちろん iTunes 上でも、設定したタグを確認することができます。

sub set_metainfo {
  my ($file, $title, $artist) = @_;

  my $qt = Audio::M4P::QuickTime->new( file => $file );
  $qt->SetMetaInfo( TITLE  => $title  );
  $qt->SetMetaInfo( ARTIST => $artist );
  $qt->WriteFile($file);
}

上記の例では、もちろん $title, $artist は decode 済であることが前提で、そうでなければ派手に文字化けしたタグが設定される。

ちなみに、同モジュールは MP3::Tag と互換性を持ったメソッドも用意されていて、例えば上記の例は以下のようにも書き直すことができます。個人的にはこっちの方が好きです。

sub set_metainfo {
  my ($file, $title, $artist) = @_;

  my $qt = Audio::M4P::QuickTime->new( file => $file );
  $qt->title($title);
  $qt->artist($artist);
  $qt->WriteFile($file);
}