众所周知,Apple 放弃了 iTunes 与 macOS Catalina。我使用罗技音乐服务器为我的家庭音乐系统驱动我的 Transporter(网络音乐播放器)。
Logitech Music Server 有一个 Python 脚本,可以将 iTunes 的音乐库解析到其内部 SQL 数据库中。Apple Music 不再使用 XML 文件,但它确实有一个名为Library.musicdb
- 在/Users/[username]/Music/Music/Music Library.musiclibrary
文件/包中的诱人文件 - 除了标题之外,它完全是二进制文件,即hfma
.
我想编写一个替换工具来获取该.musicdb
文件并填充 Logitech 媒体服务器的数据库,但要做到这一点,我需要有关此文件的更多信息。这在任何地方都有记录吗?更好的是,是否有访问它的工具?
虽然 Apple Music 不会自动生成库 XML 文件,但可以在应用程序本身中手动完成。
我意识到这个问题是关于实际
Music Library.musiclibrary
数据库的格式的——知道这很酷——你可以手动导出一个 XML 文件——我假设它与旧的 iTunes XML 文件的格式完全相同,遵循这些步骤.首先,打开音乐应用程序,转到“文件”菜单并选择“库”选项。
然后,在该列表中有两个选项:“导出库”和“导出播放列表”。我为此示例选择“导出播放列表”。
完成此操作后,您将看到一个相当标准的 Apple 文件保存/加载界面来保存“Library.xml”文件,然后就可以了!
虽然绝对不如在 iTunes 中不断生成的旧方式方便,但我相信这对于需要 XML 文件的应用程序应该很有效。
程序员有点尖刻的注释/批评:为什么没有用于导出的 JSON 格式选项?让用户根据需要选择 XML 或 JSON,因为 - 老实说 - 没有人真正喜欢在 2019 年处理 XML。但我离题了……
有一个名为iTunesLibrary的框架可以读取
Music.app
's 数据库 - 刚刚在 macOS Catalina 上测试过 - 但它是一个 Objective-C 的。您也许可以通过PyObjC使用它,但它只有在应用程序经过代码签名时才有效(请参阅页面底部的黄色警告)。
您可以在 Objective-C 中编写类似的内容来访问该库:
API 版本
1.1
似乎是 forMusic.app
,而1.0
应该是 foriTunes
。