COMインターフェイスを使ったiTunes操作方法とtrackIDの特定に関する質問

このQ&Aのポイント
  • VBAを使用して、COMインターフェイスを介してiTunesを操作しています。ExcelのVBAを通じて、プレイリストとWalkmanのフォルダを同期させるために、曲リストを作成しています。しかし、時間がたつとtrackIDが変更されてしまい、特定の曲を更新することができません。
  • 現在、タイトル、アーティスト、歌詞、ファイル名を変更し、Excelシートで更新しています。更新結果と元のリストを比較して、一致するtrackIDを特定し、更新しています。
  • 一意に曲を特定するためのtrackIDを見つける方法について、ご助力をお願いします。
回答を見る
  • ベストアンサー

comインターフェイスを使ってiTunes操作

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"は曲に対して不変)みたいに指定できると嬉しい。 どなたか,ご助力お願いいたします。

質問者が選んだベストアンサー

  • ベストアンサー
  • unokwave
  • ベストアンサー率58% (966/1654)
回答No.1

なければ作れば良いんです。 IDの生成で一番簡単なのはHash関数を使う方法です。 ただVBAでHash関数は何かと問題があるのでHash関数そのものは外部アプリを使うと良いです。 お薦めとしてはsha256.exeまたはsha256sum.exeというフリーソフトを探して下さい。 Hash関数を使うと、内容を読み取って内容に基づいた固定長の値(16進数文字列)を吐き出します。 この値は内容が同じであれば必ず同じ値が吐き出されます。 1バイトでも違っていると大きく異なる値が吐き出されます。 sha256を使うと、乱暴な言い方をすると2の256乗個ぶんのファイルを区別できます。 但し(詳しい説明は省きますが)実際にはこれよりは大きく減りますが、それでも数千万くらいは全く問題なく区別付けられると思います。 それでももし万が一異なる曲なのに同じ値が得られてしまったら、sha256と一緒に別のHash関数による値を組合せる事で区別出来ます。 例えばべつのHash関数としてsha1というものを使った場合 sha256による値@sha1による値 といった形で連結した文字列をIDとして使うと良いと思います。 あとはExeclのテーブルで曲ごとに上記IDも併せて記憶しておき、実際の音楽ファイルとのマッチングは曲のプロパティのコメントにでも埋め込むなどして比較すると良いと思います。

a_pa558523
質問者

お礼

ご回答ありがとうございます。 hash はアイデアとしては考えました。scriptdictionary を使おうかと思っていました。 ただ、やりたいのは、track を"直接指定"する事なので、結局「比較する必要がある」点では、現状とあまり変わりません。 ※trakid の振り直し対策には有効と思います。 もう少し検討してみます。

関連するQ&A

  • ipodもしくはiTunesの操作方法を教えてください

    プレイリスト内の曲を再生回数の少ない順に再生する方法がありましたら教えてください。 プレイリスト内の前回聞いた曲の続きから曲を聞きたいという事になります。他のプレイリストを途中で聞いてしまったりしている場合です。 iTunesのプレイリストの作成段階でできればと思い質問しました。 iTunesは7.3です よろしくお願いします。

  • Sonicstageの使い勝手

    Sonicstageの使い勝手 今日SonyのWALKMANを買ったのですが、Sonic stageの使い勝手がいまいちわからず、調べてみても出てこないので質問させていただきます。当方iTunesの操作は経験済みです。 1.sonic stageでは、iTunesのようにいったん全曲をWALKMAN本体に転送して、そのあと本体のプレイリストを編集したり曲順を変更する、ということはできないのでしょうか? プレイリストを作って転送したのですが、そのあと追加・曲順の変更をしようとしてもできず、いちいち本体の曲を消してから新しいプレイリストを転送しています… 2.『iPod野郎』のようにWALKMAN本体からPCに曲を復元することができるソフトはあるのでしょうか? いままでプレイリストで主に曲を選んでいたので、戸惑っています(汗 解答お願いします。

  • itunes9について(教えてください)

    先日、itunes9を入れたのですが、自分の作ったプレイリストの自動更新ができません。 どうしても、ライブラリに入っている曲が全部ipodnanoへ更新されてしまいます。 設定方法を教えてくだささい。

  • iTunesからUSBに曲をコピーできない

    iTunes for Windows(Ver.12.12.3.5)において、USBメモリにプレイリストの全曲をコピーすることできません。 具体的には、車で聞くために、iTunesからUSBメモリへ曲をコピーしようとするのですが、プレイリストに表示されている曲をiTunesの編集で「全て選択」「コピー」とし、USBのフォルダで右クリック「貼り付け」の操作をすると、全体の一部しかコピーされません。 これを「全て選択」の状態からドラッグ&ドロップだと全曲コピーされます。 スマートプレイリストの機能を使って、リンク切れのチェックをしてもリンク切れは一曲もないようです。 原因はなんだと思いますか。ちなみに、曲数が多いので(2000曲オーバー)コピーされない曲は特定できていませんし、操作の都度、コピーされる曲数が変わります。

  • iTunesでリピート再生ができません

    iTunesで音楽をリピート再生できません。ちゃんと プレイリストをリピート という設定になっているのですが何の前触れもなくリピートできなくなってしまいました。 普段なら音楽を聴いていて聴いている音楽が終了すると次のトラックの音楽が流れるのですが一曲終わった時点で終了してしまいます。なので一曲終わったら次のトラックをクリックして聴く。の繰り返しです。 設定はちゃんと プレイリストをリピート になっています。 わかるかた回答お願いします。

  • iTunes iTunes Musicフォルダの移動

    iTunes iTunes Musicフォルダの移動をし変更したらプレイリスト、再生回数、登録していたポッドキャストリスト、曲の購入リストが全部消えてしまいました。 iPod側はまだ同期してないので大丈夫なのですが、購入した曲プレイリストまで消えてしまったのでどうにかなりませんか?どれを購入したか見分けがつきにくいので。一番理想はまだ同期してないiPodの状態に戻すことなんですが。

  • iTunesで曲名に!がついて「見つからない」と出ます

    iPodの曲を外付けHDに保存しています。 iTunesで曲名の前に、○に!がついたマークが付き、「見つからない」と出てしまいます。 でもiPod本体には曲やプレイリストはコピーされているようで、本体で曲は聴けますが、iTunes上で曲を聴くことはできません。 iTunes上で曲は聴けないし、更新する度に「見つかりません」とエラーが出るので困っています。 どうすればよろしいでしょうか? どなたかご教授ください。 よろしくお願いいたします。

  • itunesの音楽にパスワードをかけるには!

    itunesのライブラリにある音楽をプレイリストに移動する際にパスワードを かける方法はありませんか? もしあれば教えてください それと特定の曲にだけパスワードをかけれるなんて事もできればなお嬉しいです

  • iTunesについて

    imacのiTunesで、音楽を読み込む時に、どうすればスムーズにできるかが分かりません。 私のやり方・・・ 1・まず、「ライブラリ」に読みこませる。 2・「新規プレイリスト」にドラッグする。 3・CD作成をする。 これであっているのでしょうか? それと、「ライブラリ」に入っている曲を消すと、「新規プレイリスト」の、同じ曲まで消えてしまいます。「ライブラリ」だけ消す方法は無いでしょうか? CDに焼かずに「プレイリスト」に残しておきたいのですが・・・ 初心者にも分かりやすくお願いします ペコリ(o_ _)o))

    • ベストアンサー
    • Mac
  • 私のiTunesで、とんでもない現象が起きています

    また、iTunesのことでご指導をお願いできませんでしょうか・・・? 私のiTunesにおいて、とんでもない現象が起きます。 私のiTunesには30個程のプレイリストを作って登録しています。 説明を簡単にするために、今、私のiTunesには プレイリストA プレイリストB の2つのプレイリストが作られているとします。 プレイリストBは今回新しく作ったプレイリストだとします。 これをCDに焼こうとしました。正式な表現ではないかも知れませんがご勘弁下さい。要するにCDに記憶させることです。 この場合、通常次の手順を踏みます。 1.プレイリストBを画面上に展開。 2.空のCDをCDドライブにセット。 3.画面左上隅の「ファイル」をクリック。 4.「プレリストからディスクを作成」をクリック。 5.曲と曲の間の時間(秒)と焼き付けスピードを適当に指定。   (私は、たいてい前者は2~4秒、後者は8倍に指定します) 6.「ディスクの作成」をクリック。 以上で、焼き付け作業が始まりますが、プレイリストBが焼き付けされず、全然関係のないプレイリストAが焼き付けされます!!! 出来上がったCDをCDプレイヤーで再生してみますと、確かにプレイリストAが焼き付けされています。この作業はかれこれ5年程やっていますが、こんなことは初めてです。 念のため、一旦iTunesを終了し、再度起動させて、プレイリストBを呼び出し、新たな空のCDで同じ作業をやってみましたが、やはりプレイリストAの焼き付けが始まります。 一体、私のiTunesでは何が起こっているのでしょうか・・・? どなたか、この問題の原因と解決策をご存じでしたら、ご教授をお願いできませんでしょうか・・・? どうぞ宜しくお願い申し上げます。