web-dev-qa-db-ja.com

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のデータベースにデータを入力する代替ツールを作成したいのですが、そのためには、このファイルに関する詳細情報が必要です。これはどこかに文書化されていますか?さらに良いことに、それにアクセスするためのツールはありますか?

1
Dylan McNamee

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.1Music.app用のようですが、1.0iTunes用である必要があります。

1
Matteo Pacini