Re: Perl MP3::Info MP3::Tag

Perl MP3::Info MP3::Tag | Index of /.Phantom


いい書き方かどうかは不明だけど。
ここから取得したものは, shift_jis
エンコードされているので shift_jis決め打ちで。

#!perl
use strict;
use warnings;

use MP3::Info;
use MP3::Tag;

use Encode;

my $file = shift or die "Usage: $0 mp3_file";

my $tag  = get_mp3tag($file) or die "No Tag data";

for my $tag_key (qw/title artist album year genre comment/) {
    my $hash_key = uc $tag_key;
    my $tag_value = encode_utf8( decode('shift_jis', $tag->{$hash_key}) );
    printf "%-15s : %s\n", $tag_key, $tag_value;
}

my $info = get_mp3info($file) or die "No Info data";
for my $info_key (qw/size time stereo vbr bitrate frequency copyright
                     mode frames frame_length/) {
    my $hash_key = uc $info_key;
    printf "%-15s : %s\n", $info_key, $info->{$hash_key};
}

結果

title           : ロック 01
artist          : 奏サウンド
album           : 奏サウンド試聴サンプル
year            : 
genre           : Metal
comment         : Copyright (C) Sou-Sound Inc.
size            : 1120018
time            : 00:35
stereo          : 1
vbr             : 0
bitrate         : 256
frequency       : 44.1
copyright       : 0
mode            : 1
frames          : 1339
frame_length    : 836

古いモジュールということもあるけど、あまりおしゃれじゃない感じ。