個人的なメモを記していくためのページです。
某mp3プレーヤーがタグのフィールドネームが小文字だと見てくれないので大文字にいじるperlスクリプト。vorbis-toolsに含まれる vorbiscomment が必要。windowsで動作確認。
カレントフォルダ以下の'ogg'ファイルを探して修正する。タイムスタンプはオリジナルよりちょっと先に進める。
keywords: iaudio m3 ogg oggenc tag 表示されない
関連 oggenc によるタグ付け、iFP-599T
#! /usr/local/bin/perl use File::Find; find({wanted => \&comment_to_upper, no_chdir=>1}, "." ); sub comment_to_upper { my( $path ) = $File::Find::name; return unless( $path =~ /\.ogg$/i ); print STDERR "$path"; $mtime = (stat($path))[9]; open(FH, "vorbiscomment -l \"$path\" |") || die ; $key_modified = 0; while(<FH>){ ($k,$v) = /([^=]+)=(.*)/; $ok = $k; $k =~ y/a-z/A-Z/; push @field_name, $k; push @field_value, $v; $key_modified = 1 if( $k ne $ok ); } close( FH ); if( $key_modified ){ print STDERR " comment modified"; open(FH, ">comment.tmp" ) || die; while( @field_name ){ printf FH "%s=%s\n", shift @field_name, shift @field_value; } close( FH ); `vorbiscomment -w -c comment.tmp \"$path\"`; utime( $mtime+30, $mtime+30, $path ); unlink( "comment.tmp" ); } print STDERR "\n"; }