狐の王国


2002年12月03日(火) [過去の今日]

#1 xmms

いつからか知らないが、素のままでUTF-8のID3v2を表示できるようになってた。ということでjpパッチいらねーな。UTF-8のID3v2に書き換えるスクリプトを書こう。

(@722)

こんなネタで徹夜してしまう俺も俺だが:

どうやら幻だった模様。jpパッチを当てたxmmsでutf8で埋め込んだid3v2タグをv2禁止で読み込み、さらにShift_JIS to EUC-JP変換をかますとアーティスト名とアルバム名がくっついてしまうが、読み込める。アーティスト名はUnknownになり、本来のアーティスト名はアルバム名の頭に入る。アルバム名は文字数制限があるらしく、途中で切れる。

WindowsユーザやMacユーザに見てもらったときも、まったく同じ位置でアルバム名が切れていたことから、id3v1として読み込まれたのであろう。ということは、俺の埋め込んだid3v2タグ自体にも問題がありそうだ。しかしライブラリ任せなのでようわからん罠。

(@921)

ふと気付くと:

今までShift_JISで突っ込んでたID3も、 Windows Madia Player 7.1 ではまともに表示されない。やっぱUnicodeへの移行は必要なんかなー。

(@389)

この記事のURI

#2 xmmsとID3v2

一日の経験を元に、問題点をまとめてみた。

まず、ID3v2のUnicode文字は、単純にUnicode(UTF-16, UTF-16BE, UTF-8)でエンコードした文字列をいれればいいというわけではない。それぞれのコードに対応した文字コード指定子が必要だ。なのでxmms側できちんとUnicodeのID3v2に対応しないと読み込めるはずが無い。

現状のxmmsのjpパッチは、単純に一つ一つのタグの文字コードを変換するだけで、それ以上のことはしてくれない。

ついでに、ID3v2は2.2, 2.3, 2.4とそれぞれバラバラの規格であり、どれがデファクトスタンダードと言えるのか不明である。

ということで、ID3v2を使うならlatin-1でエンコードしなくてはならん。つまり基本的なASCII文字しか使えない。これは困る。非常に困る。どーすんべ。

現状での対応:

一応、Windowsの世界ではShift_JISなID3v2が出回ってるらしいし、ツールもShift_JISで書き込んでるようだ。そしてMacユーザの友人に確認してもらったところ、一応iTunesでもShift_JISのID3v2を読み込めたという。

ということで現状ではShift_JISのID3v2がもっともポータビリティの高いやり方ということになるので、そういう方向で行こうかと思ってたのだが、今まで俺が突っ込んできたShift_JISのID3v2は、他の環境でまともに読めなかった。しばらく悩んでたのだが、「理由も分からず」うまく行ったので、まあそれはそれでよしとする。

sub tag
{
    $mp3file = MP3::Tag->new($file);
    $id3v2 = $mp3file->newTag("ID3v2");
#    $id3v2->add_frame("TIT2", jcode($tag{title})->sjis);
#    $id3v2->add_frame("TPE1", jcode($tag{artist})->sjis);
#    $id3v2->add_frame("TALB", jcode($tag{album})->sjis);
    $id3v2_title = jcode($tag{title})->sjis;
    $id3v2_artist = jcode($tag{artist})->sjis;
    $id3v2_album = jcode($tag{album})->sjis;

    chomp $id3v2_title;
    chomp $id3v2_artist;
    chomp $id3v2_album;
    
    $id3v2->add_frame("TIT2", "$id3v2_title");
    $id3v2->add_frame("TPE1", "$id3v2_artist");
    $id3v2->add_frame("TALB", "$id3v2_album");
    $id3v2->add_frame("TRCK", $tag{track});
    $id3v2->write_tag();
}

上記は俺の使ってるID3を突っ込むスクリプトの一部だが、コメントされてる部分が以前のやり方だった。このように修正してからは、なぜかうまく他の環境でも読み込めるのだ。理由がさっぱりわからんが……。

(@729)

訂正:

上記の修正コードは意味無いようだ。これでも読めたり読めなかったりする。もうわけわからん……。

(@859)

この記事のURI

最近の記事

以上、1 日分

タイトル一覧


カテゴリ分類
Powered by hns-2.19.8, HyperNikkiSystem Project

過去にこの日記が置いてあったcgi.misao.gr.jpは廃止されました。それによって記事へのURIが変わってしまっています。cgi.misao.gr.jpをwww.misao.gr.jpと置き換えるだけで同じ記事にアクセスできるはずです。

Sugano "狐志庵" Yoshihisa(E) @ 美紗緒ネットワーク <koshian@misao.gr.jp>
日記管理ページ