※ ChatGPTを利用し、要約された質問です(原文:comインターフェイスを使ってiTunes操作)
COMインターフェイスを使ったiTunes操作方法とtrackIDの特定に関する質問
このQ&Aのポイント
VBAを使用して、COMインターフェイスを介してiTunesを操作しています。ExcelのVBAを通じて、プレイリストとWalkmanのフォルダを同期させるために、曲リストを作成しています。しかし、時間がたつとtrackIDが変更されてしまい、特定の曲を更新することができません。
現在、タイトル、アーティスト、歌詞、ファイル名を変更し、Excelシートで更新しています。更新結果と元のリストを比較して、一致するtrackIDを特定し、更新しています。
一意に曲を特定するためのtrackIDを見つける方法について、ご助力をお願いします。
VBAによるiTunes操作で曲を特定したい
(プログラミング カテで回答が得られませんでしたので,カテ変更して再質問です)
Walkmanの曲管理にiTunesを使っています。
ExcelのVBAでCOMインターフェイスを通し,iTunesのプレイリストとWalkmanのフォルダを同期させています。
Excel上でタグ情報を任意に更新できるように,いったんシート上に曲リストを作成して,iTunesに書き戻すということを行っているのですが,この際に曲を特定する拠り所として「trackID」を使っています。
ところが,iTunesの仕様(だと思います)では,このtrackID自体は都度都度のアクセスで変更が発生するらしく,いったん作成したリストでも,時間がたって(たとえば「翌日」)そのまま利用すると異なる曲を更新してしまうというトラブルに見舞われます。
再度リストを作り直すことで,最新のtrackIDにし直せば問題は回避できるのですが,本質的な解決にはなっていません。
iTunesの曲(track)を一意に特定するIDを,どなたかご存知ありませんか?
今までの試行で得た現状の認識は以下のとおり。
1.trackIDは選択するプレイリストごとに発番されるため,曲(ファイル)の特定にはならない。
(同じファイルでも,プレイリストが異なるとそれぞれtrackIDは異なる)
2.ころころと再発番が行われている(らしい)
3.直接trackを指定する方法としては「tracks(n)」という方法もあるが,この場合のnは「インデックス」らしく,これも一意にできない(曲を削除したりすると,順番が変わるため使えない)
現在やっていること。
1.タイトル,アーティスト,歌詞および,ファイル名そのものを変更する。
2.EXCELシートに展開して更新。更新結果と,展開元のリストを突き合わせて,
trackIDが一致するものを”探して”,特定し更新する。(これが面倒)
理想は「Tracks(xxxxID)」("xxxxID"は曲に対して不変)みたいに指定できると嬉しい。
どなたか,ご助力お願いいたします。
お礼
ご回答ありがとうございます。 hash はアイデアとしては考えました。scriptdictionary を使おうかと思っていました。 ただ、やりたいのは、track を"直接指定"する事なので、結局「比較する必要がある」点では、現状とあまり変わりません。 ※trakid の振り直し対策には有効と思います。 もう少し検討してみます。