我可以使用Applescript查找当前的iTunes媒体位置和其他iTunes选项

时间:2017-01-13 13:23:45

标签: macos applescript itunes

我可以使用Applescript查找当前的iTunes媒体位置和其他iTunes选项。当我在脚本编辑器中阅读iTunes Applescript Dictionary时似乎没有这样的选项,但肯定有办法实现。

我过去读过com.itunes.plist中存储的东西,但是当我创建一个新的libary时它不是明文和我的plist文件没有改变所以我不相信它仍在使用,或者它是否保持不变到目前为止。

2 个答案:

答案 0 :(得分:2)

是的,@ PaulTaylor,您可以使用Apple提供的iTunes Library框架获取AppleScript中当前用户的媒体文件夹位置。 (文件iTunesLibrary at Apple

这是一个有效的AppleScript:

use AppleScript version "2.4" -- Yosemite (10.10) or later

use framework "iTunesLibrary"

set lib to current application's ITLibrary's libraryWithAPIVersion:"1.0" |error|:(missing value)

set mediaFolderPath to POSIX path of (lib's mediaFolderLocation as alias)

--> "/Volumes/LaCie 6/iTunes Library/"

答案 1 :(得分:0)

媒体位置未保存在全局iTunes首选项文件中。因为您可以拥有多个库,并且每个库都定义了自己的媒体位置,所以这实际上保存在库首选项中。默认库位于~/Music/iTunes/iTunes Library.itl。我不确定这是什么类型的文件。它似乎不是plist / xml文件,也不是sqlite文件。它似乎只是一个专有的二进制文件。

在同一个文件夹中,我还找到了iTunes Music Library.xml(经过一些测试后,该文件现在已经丢失,所以YMMV用于其余的解释)。这是一个截断的例子:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Major Version</key><integer>1</integer>
    <key>Minor Version</key><integer>1</integer>
    <key>Application Version</key><string>12.3.3.17</string>
    <key>Date</key><date>2016-04-14T19:35:27Z</date>
    <key>Features</key><integer>5</integer>
    <key>Show Content Ratings</key><true/>
    <key>Library Persistent ID</key><string>1AEAB6C2057C2167</string>
    <key>Tracks</key>
    <dict>
    </dict>
    <key>Playlists</key>
    <array>
    </array>
    <key>Music Folder</key><string>file:///Users/<username>/Music/iTunes/iTunes%20Media/</string>
</dict>
</plist>

注意键Music Folder。这是您要查找图书馆媒体位置的设置。还有一些库设置,例如播放列表和曲目信息列表。