PerlでID3タグ編集
大量のMP3ファイル(1万ファイル程度)があって、一括でタグを付けたい。が、WindowsではGUIのツールしかないので、すごくめんどくさい。
CUIで処理するには色々方法がありそうですが・・・MP3::Tagというpure perlで実装されたID3タグ編集モジュールがあるらしい。pure perlって。
- 洗練されたPerl: MP3とPerlで遊ぶ、第1回
- MP3::Tag - Module for reading tags of MP3 audio files - metacpan.org
- MP3::Tag::ID3v2 - Read / Write ID3v2.x.y tags from mp3 audio files - metacpan.org
- MP3::Tag::ID3v1 - Module for reading / writing ID3v1 tags of MP3 audio files - metacpan.org
念のため既存のタグ情報は全部消して、アルバム名とアーティスト名を振り直す。podにはID3v1/v2へのlow level acccessはオススメしない(discouraged)と書いてあるけど、まーいいでしょ。high level APIに同等の機能はなさそうだし・・・。
use strict; use warnings; use MP3::Tag; use Smart::Comments; while(my $filename = shift @ARGV){ ### Editting [===| ] % done my $mp3 = MP3::Tag->new($filename) || die; $mp3->{ID3v1}->remove_tag() if exists $mp3->{ID3v1}; $mp3->{ID3v2}->remove_tag() if exists $mp3->{ID3v2}; $mp3->update_tags({ artist => 'RococoWorks', album => 'airyFairy', }); }
$ find stream_mp3 -type f -name '*.mp3' -print0 | xargs -0 perl tag.pl
余談ですが、個人で買ったものを個人使用の範囲で使うのはfair useだと思ってます。声高に主張する気はないけど。要は多めに見てね、ってことで・・・。
なんでこんなめんどくさいことをしてるかというと!ipodに入れて聞くですよ!憂鬱な通勤時間もこれではぴはぴはっぴーですよ!