読者です 読者をやめる 読者になる 読者になる

bonar note

京都のエンジニア bonar の技術的なことや技術的でない日常のブログです。

Business::ISRC 0.01

perl coderepos music

Business::ISRC というモジュールをcodereposにあげました。

changeset:
http://coderepos.org/share/changeset/16900

本体:
http://coderepos.org/share/browser/lang/perl/Business-ISRC/trunk/lib/Business/ISRC.pm?rev=16900

SYNOPSYS

  use Business::ISRC;

  # create object (validate string)
  my $isrc = Business::ISRC->new("usl4q0702458");
  if (!defined $isrc) {
      die "invalid isrc format";
  }

  $isrc->country_code;    # US
  $isrc->country_name;    # Unites States
  $isrc->registrant_code; # L4Q
  $isrc->year; # 07
  $isrc->designation_code; # 02458

  # get normalized string
  print $isrc; # US-L4Q-07-02458

  # or this is the same as above
  print $isrc->as_string();

これはISRCをparseして文字列表現を正規化するためのモジュールです。やっていることは単に正規表現で与えられた文字列分割して名前で引けるようにしているだけです。Locale::Country で国コードのチェックをしているので、その副産物として国名の英語表記が取れるようになります。

恥ずかしながら Test::Perl::Critic を初めて使ったのですが、すごく簡単でいいですね。

ISRC とは

ISRC とは主に海外よく使われている(国内でも使われている)楽曲の(厳密には「録音の」)ユニークなコードです。市場に流通しているCD等の音源にこのISRCというコードが振られていて、裏側の楽曲管理に利用されています。例えば僕の「Saitama Life」という楽曲の場合以下のようなISRCが割り振られています。

US-L4Q-07-02458

本当は ISRC-US-L4Q-07-02458 のように ISRC- というprefixが付くのですが、省略されることが多いようです。上記のISRCは以下のような成分に分解出来ます。

US    : アメリカの楽曲
L4Q   : 事業者コードが L4Q (これは CDBaby のコードかな?)
07    : 2007年の楽曲
02458 : 年内と押し番号が02458

非常にシンプルですね。ISRC の組成や使用方法については以下のサイトが詳しいです。

RESOURCES - ISRC - Handbook (incorporating the ISRC Practical Guide)
http://www.ifpi.org/content/section_resources/isrc_handbook.html

この事業者コードや通し番号(実際は通しじゃないかもですが)の部分を誰が発行しているかというと、それぞれの国のしかるべき団体がコードを発行しているようです。日本の場合だとレコード協会になります。

日本レコード協会-ISRC
http://isrcdb.jmd.ne.jp/index.html

Busines::UPC

また、ISRCとは別に UPC というコードがあり、アルバム(シングル/アルバムの区分ではなく、楽曲のコンテナ/製品パッケージとしての単位)のユニークなコードとして広く使われてします。上記の「Saitama Life」は「Saitama Life - EP」というアルバムに収録されていて、そのUPCは 634479662768 になります。UPCに関しては既にそれを扱うモジュールがCPANに上がっているようです。
#あまりメンテナンスされてないようですが。。

Business::UPC
http://search.cpan.org/~robf/Business-UPC-0.04/UPC.pm

今回のISRCのモジュールも一応上記とそろえて Business::ISRC としてみました。

まとめ

プロ/アマ問わず世界中の楽曲がこのISRCUPCで管理されていれば色々すっきりすることも多いと思うのですが、ISRCUPCの取得に管理団体への申請手続きがあったり、AMG等の他のidも使われていたりして現実にはなかなか統一はされていないようです。

また、楽曲のアーティストを識別するコードが(僕の知る限り)無いようなんですよね。あったらすごく便利だと思うのですが、実際やるとなるとレコードレーベルを跨いだコード運用が必要になったりとか、その辺が難しいのかもしれません。憶測ですが。

この辺りの歴史的な背景とかコード体系の勢力図とかは結構面白そうだなと思いました。