質問: macoscatalinaで使用されているapple music“ library.musicdb”のフォーマット/スキーマはどこかに文書化されていますか? ご存知のように、apple macos catalinaでitunesを放棄しました。logitechmusicserverを使用して、自宅の音楽システム用にtransporter(ネットワーク化された音楽プレーヤー)を駆動しています。logitech music serverには、itunesの音楽ライブラリを内部sqlデータベースに解析するpythonスクリプトがあります。apple音楽はxmlファイルを使用しなくなりましたが、 library.musicdbという名前の魅力的なファイル— /users/[username]/music/music/music library.musiclibraryファイル/パッケージ内—ヘッダー(hfma)を除いて、完全にバイナリです。.musicdbファイルを取得してlogitechmedia serverのデータベースにデータを入力する代替ツールを作成したいのですが、そのためには、このファイルに関する詳細情報が必要です。これはどこかに文書化されていますか?さらに良いことに、それにアクセスするためのツールはありますか?
回答: music.appのデータベースを読み取ることができる ituneslibrary というフレームワークがあります-これはmacos catalinaでテストしたばかりです-しかし、これはobjective-cのものです。 pyobjc を介して使用できる場合がありますが、アプリケーションが コード署名済み の場合にのみ機能します(ページ下部の黄色の警告を参照してください) 。ライブラリにアクセスするには、objective-cで次のように記述します。objective-c #import <ituneslibrary/itlibrary.h> nserror *error = nil; itlibrary *library = [itlibrary librarywithapiversion:@"1.1" error:&error]; if (library) { nsarray *playlists = library.allplaylists; // <- nsarray of itlibplaylist nsarray *tracks = library.allmediaitems; // <- nsarray of itlibmediaitem } apiバージョン1.1はmusic.app用のようですが、1.0はitunes用である必要があります。