perlでmp3情報を扱ってみよう。MP3::Info

perlをちょいちょい使ってます。


perlはテキスト処理には向いていますが、
音楽
動画
画像
などのメディア向けの操作はあまり適してないですね。
情報も少ないです。


まぁ、そもそも、そっち系扱いたいなら、別の言語使え、って話なんでしょうが・・・。

使ってみました、MP3::Info
#!/usr/bin/perl

use strict;
use warnings;
use MP3::Info;
use Data::Dumper;

main();

sub main {
    my $file = $ARGV[0];
    my $tag = get_mp3tag($file);
    my $info = get_mp3info($file);
    print Dumper($tag, $info);
}

とりあえずこんな感じ。

perl mp3-info.pl test.mp3

こんなのを叩いてみると、

$VAR1 = {
          'YEAR' => '',
          'ARTIST' => 'Green Day',
          'COMMENT' => '',
          'TITLE' => 'American idiots',
          'ALBUM' => '',
          'GENRE' => 'Other',
          'TAGVERSION' => 'ID3v1 / ID3v2.3.0',
          'TRACKNUM' => ''
        };
$VAR2 = {
          'SIZE' => 4272430,
          'OFFSET' => 1462,
          'MS' => '17.9166666666504',
          'STEREO' => 1,
          'SECS' => '178.017916666667',
          'PADDING' => 0,
          'LAME' => {
                      'end_padding' => 1728,
                      'start_delay' => 576,
                      'encoder_version' => 'LAME3.92 '
                    },
          'MM' => 2,
          'COPYRIGHT' => 0,
          'SS' => 58,
          'LAYER' => 3,
          'MODE' => 0,
          'FREQUENCY' => '44.1',
          'VBR' => 0,
          'TIME' => '02:58',
          'FRAMES' => 6814,
          'BITRATE' => 192,
          'VERSION' => 1,
          'FRAME_LENGTH' => 627
        };

こんな結果になります。



ちなみに、test.mp3 の中身はこんなファイル



曲名や歌手名はもちろん、ビットレートやサンプルレートも取れるみたい。


これが分かれば、編集や加工もできそうだな。


うむ。