mp3やwmaファイルなどのタイトルやアーティスト名を保持しているID3タグを取得しよう!
ID3タグを取得するだけなら意外と簡単にできます。
ファイルを直接解析する必要ありません。
Windowsのファイルシステム(NTFS)にそういう機能があるようです。
そういうことなのでFAT32ではこの技は使えません。
詳しくは↓をどうぞ。
IDタグの取得の他にもTWindowsMediaPlayerの使い方とか有用な情報がたくさんあります。
えー、、すいません。もうこれで終わりです。
上のサイトを見てもらってそのコードでもう充分と思います。
私はそれでやってます。
取得だけでなく書き込みもしたい場合はTWindowsMediaPlayerを利用したID3タグの取得と書き込みをどうぞ。
こちらのやり方は時間はかかりますがより多くの情報を得ることができ、かついくつかのタグへ書き込むこともできます。
ウムラウトなどのUnicode文字を考慮する必要がなければmp3infp.dllを利用する手もあります。
と、これだけではなんなので、ヘッダタイトルや肝のShellオブジェクトの説明があるサイトをご紹介。
ヘッダタイトルの参考。
C#とVBのサンプルソース付。
ここに載ってる値とエクスプローラの「右クリック」→「プロパティ」→「概要」→「詳細設定」を開いて抜けているヘッダータイトルを補完しました。
ID3タグの取得で必要になるインデックスは、9,10, 16〜22, 26,27,28, 32,33,34 の15個になるかと思います。
もしかしたら15と23の「著作権」と「保護」も関係してるかもしれません。
Super Tag Editorで「アーティスト名」に入力すると、16の「アーティスト」ではなく9の「作成者」に入るようです。
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 |
ここ見ると、2000, XP, Vistaでそれぞれ内容がまったく違っているようです。
ということは、ターゲットOSごとに処理を振り分けなければならないということで、、
鬱…
上記サイトのデータを表にしてみた。
ID3タグとは関係ありませんが。
31の「日時」は(私が勝手につけたタイトルなんですが、、)エクスプローラの「詳細表示の設定」にも載っていないのですが写真を撮影した日時や文書ファイルを作成した日時のようで、デジカメの写真やエクセルファイルなどに記録されていました。ただ25の「写真の撮影日」とは違い秒数まで入っています。ただしこれを記録しないカメラもあります(auのカメラ付携帯の一部で確認)また4の「作成日時」はファイルを作成した日時でこれとも違います。ネットからダウンロードした時は4の「作成日時」はダウンロードした日時になりますが31の「日時」の値はそうではなく(恐らく)元の日時のままになっています。
Shellオブジェクト理解のために。
VB、、というよりかWSHのコードなのかな、でサンプルが書かれてます。