2

目標は、iCloud にのみ存在するファイルのオーディオ メタデータを iTunes ストアで更新することです。ファイルがローカルに再ダウンロードされた場合にタスクを実行する便利な Ruby スクリプトを見つけましたhttp://cl.ly/C3kK

スクリプトは iTunes ストア API について教えてくれましたが、iTunes ストアの trackId が必要です。ローカル/内部の trackId または persistId と混同しないでください。上記のスクリプトは、物理オーディオ ファイルの最初の MB を読み取り、マジック ナンバーを探し、その後の整数を格納します。itunes music library.xml を調べてみましたが、うまくいきませんでした。Itunes は、この情報をどこかに保存していると思います。または、少なくとも別の ID を使用して、iCloud からメタデータを取得できます。最後に、iTunes ストア API からの結果で iTunes Music library.xml を更新するだけです。

iCloud iTunes api 呼び出しがあることはわかっていますが、その話題を掘り下げる前に、専門家に質問を投稿したいと思います。

この件に関するどんな助けも素晴らしいでしょう。

4

2 に答える 2

0

この質問を投稿してからしばらく経ちましたが、同じ問題に遭遇し、それを理解することができました. iTunes ストアの trackId は、iTunes に一致するファイルのダウンロード バージョンに保存されます。ファイルから最初の 1024 バイトのデータを取得すると、トラック ID は文字列「song」の後のデータの最初の 4 バイトになります。符号付き 32 ビット整数から 10 進数に変換する必要があります。

例: No Cars Go (アーケード ファイア)

file_string = File.open(path, 'r').read(1024)
index = file_string.index('song')
@iTunes_id = file_string[index+4,4].unpack('N')[0]
print "Song ID: #{@iTunes_id}"

結果:

Song ID: 81607936

これで、その ID を取得して、iTunes からトラック データを検索できます。

https://itunes.apple.com/lookup?id=81607936&country=US

結果:

{
 "resultCount":1,
 "results": [
{"wrapperType":"track", "kind":"song", "artistId":23203991, "collectionId":81607965, "trackId":81607936, "artistName":"Arcade Fire", "collectionName":"Arcade Fire EP", "trackName":"No Cars Go", "collectionCensoredName":"Arcade Fire EP", "trackCensoredName":"No Cars Go", "artistViewUrl":"https://itunes.apple.com/us/artist/arcade-fire/id23203991?uo=4", "collectionViewUrl":"https://itunes.apple.com/us/album/no-cars-go/id81607965?i=81607936&uo=4", "trackViewUrl":"https://itunes.apple.com/us/album/no-cars-go/id81607965?i=81607936&uo=4", "previewUrl":"http://a644.phobos.apple.com/us/r1000/060/Music2/v4/ba/95/be/ba95be41-4a03-4dea-2965-57dd5f0b66c0/mzaf_6092501386391248238.m4a", "artworkUrl30":"http://a5.mzstatic.com/us/r30/Music/y2005/m10/d01/h10/mzi.yfrupnuj.30x30-50.jpg", "artworkUrl60":"http://a2.mzstatic.com/us/r30/Music/y2005/m10/d01/h10/mzi.yfrupnuj.60x60-50.jpg", "artworkUrl100":"http://a5.mzstatic.com/us/r30/Music/y2005/m10/d01/h10/mzi.yfrupnuj.100x100-75.jpg", "collectionPrice":6.93, "trackPrice":0.99, "releaseDate":"2005-01-10T08:00:00Z", "collectionExplicitness":"notExplicit", "trackExplicitness":"notExplicit", "discCount":1, "discNumber":1, "trackCount":7, "trackNumber":3, "trackTimeMillis":364071, "country":"USA", "currency":"USD", "primaryGenreName":"Alternative", "radioStationUrl":"https://itunes.apple.com/station/idra.81607936"}]
}

これがOPまたは他の誰かに役立つことを願っています.この情報は他のどこにも見つかりませんでした.

于 2014-08-25T23:14:05.263 に答える