ご存知のように、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
用である必要があります。