ホーム >プログラム >Delphi 6 ローテクTips >ID3タグ取得(だけ)

mp3やwmaファイルなどのタイトルやアーティスト名を保持しているID3タグを取得しよう!


ID3タグを取得するだけなら意外と簡単にできます。
ファイルを直接解析する必要ありません。
Windowsのファイルシステム(NTFS)にそういう機能があるようです。
そういうことなのでFAT32ではこの技は使えません。

詳しくは↓をどうぞ。

えー、、すいません。もうこれで終わりです。
上のサイトを見てもらってそのコードでもう充分と思います。
私はそれでやってます。

取得だけでなく書き込みもしたい場合はTWindowsMediaPlayerを利用したID3タグの取得と書き込みをどうぞ。
こちらのやり方は時間はかかりますがより多くの情報を得ることができ、かついくつかのタグへ書き込むこともできます。

ウムラウトなどのUnicode文字を考慮する必要がなければmp3infp.dllを利用する手もあります。


と、これだけではなんなので、ヘッダタイトルや肝のShellオブジェクトの説明があるサイトをご紹介。

ここに載ってる値とエクスプローラの「右クリック」→「プロパティ」→「概要」→「詳細設定」を開いて抜けているヘッダータイトルを補完しました。

ID3タグの取得で必要になるインデックスは、9,10, 16〜22, 26,27,28, 32,33,34 の15個になるかと思います。
もしかしたら15と23の「著作権」と「保護」も関係してるかもしれません。
Super Tag Editorで「アーティスト名」に入力すると、16の「アーティスト」ではなく9の「作成者」に入るようです。

ファイルプロパティのヘッダータイトル(XPだけ有効版)
No.タイトル説明
-1ツールチップエクスプローラでしばらくマウスカーソルを置いてると出てくるポップアップヒント
0名前
Name
ファイル名
1サイズ
Size
ファイルサイズ49,757 KB
2種類
Type


3 更新日時
Date Modified


4 作成日時
Date Created
ローカルコンピュータにファイルが作られた日時?
5 アクセス日時
Date Accessed


6 属性
Attributes
ファイル属性 R=読み取り専用
H=隠しファイル
A=アーカイブ可能
7 状態
Status


8 所有者
Owner


9 作成者
Author
アーティスト名
他のプログラムでは16ではなくこちらへアーティスト名を書き込むようです。

10 タイトル
Title
曲のタイトル
11 表題
Subject


12 カテゴリ
Category


13 ページ数
Pages


14 コメント
Comments


15 著作権
Copyright


16 アーティスト
Artist
アーティスト名
17 アルバムのタイトル
Album Title
アルバム名
18
Year

1996
19 トラック番号
Track Number

7
20 ジャンル
Genre


21 長さ
Duration
時間 0:05:07
22 ビット レート
Bit Rate

3122kbps
23 保護
Protected


24 カメラのモデル
Camera Model


25 写真の撮影日
Date Picture Taken

2005/02/19 23:28
26 大きさ
Dimensions
ビデオのサイズ 640 x 360
27
Width

640 ピクセル
28 高さ
Height

360 ピクセル
29 この回のタイトル
Episode Name


30 プログラムの説明
Program Description


31 日時
2005:02:19 23:28:30
32 オーディオ サンプル サイズ
Audio Sample Size

16 ビット
33 オーディオ サンプル レート
Audio Sample Rate

44 KHz
34 チャンネル
Channels

2 (ステレオ)
35 会社名
Company


36 説明
Description


37 ファイル バージョン
File Version

0.6.10.49
38 製品名
Product Name


39 製品バージョン
Product Version

1.0.0.0
40 Keywords

ID3タグとは関係ありませんが。
31の「日時」は(私が勝手につけたタイトルなんですが、、)エクスプローラの「詳細表示の設定」にも載っていないのですが写真を撮影した日時や文書ファイルを作成した日時のようで、デジカメの写真やエクセルファイルなどに記録されていました。ただ25の「写真の撮影日」とは違い秒数まで入っています。ただしこれを記録しないカメラもあります(auのカメラ付携帯の一部で確認)また4の「作成日時」はファイルを作成した日時でこれとも違います。ネットからダウンロードした時は4の「作成日時」はダウンロードした日時になりますが31の「日時」の値はそうではなく(恐らく)元の日時のままになっています。



一応サンプルソースコード