在iTunes上搜索曲目

5
我想使用Mac OS/X上的Python脚本在iTunes上搜索曲目。我找到了一种通过以下方式访问iTunes应用程序的方法: iTunes = SBApplication.applicationWithBundleIdentifier_("com.apple.iTunes"), 但我还没有找到(仍然没有)执行搜索的方法。非常感谢您的帮助。
免责声明:我是OS/X新手。
注意:我不是在寻找直接访问XML/plist数据库的方法。

值得注意的是,SBApplication来自PyObjC。您可以查看iTunes的AppleScript字典以查看可用的命令,并使用此处的语法通过该桥梁访问它:http://pyobjc.sourceforge.net/documentation/pyobjc-framework-ScriptingBridge/api-notes-ScriptingBridge.html 更多信息请参见:http://pyobjc.sourceforge.net/documentation/pyobjc-core/tutorial_embed/index.html - Rizwan Kassim
1
在这里查找语法:http://www.devdaily.com/blog/post/mac-os-x/search-for-song-in-itunes-library-using-applescript - Rizwan Kassim
3个回答

4

您可能想要查看appscript(请注意,您需要ASDictionary进行在线帮助):

>>> import appscript
>>> iTunes = appscript.app("iTunes")
>>> lib = iTunes.playlists['Library']
>>> for trk in lib.tracks():
...     if re.search("test", trk.name()):
...         print trk.name()

通过迭代每个项目,您可以获得最多的控制权,但还有一种更快的方法,即使用AppleScript钩子进行搜索:

>>> trks = lib.tracks[appscript.its.name.contains('test')]
>>> print trks.name()

同时也可以查看这些appscript使用示例


没有问题。我没有注意到之前提到了objc的答案,但我怀疑这可能会提供一个更方便的API来访问可脚本化的应用程序。文档有点稀少,但一旦你理解了appscript的结构,就不太难看出一个applescript示例,并翻译如何使用appscript完成它。 - James Snyder

0

这可能是一个无用的答案,但我建议您使用AppleScript而不是Python。 看一下这段代码:

tell application "iTunes"
 repeat with bTrack in (every track of playlist 7 whose artist contains "Golden")
...

这里可以找到完美的教程:http://macscripter.net/viewtopic.php?id=25631


谢谢,但我宁愿坚持使用Python。 - jldupont
使用SBApplication的AppleScript和Python使用相同的调用,因此只是不同的语法。 - mmmmmm

0
你觉得这个怎么样:

script = '''tell application "iTunes"
  repeat with bTrack in (every track of playlist 7 whose artist contains "Golden")
    print bTrack
  end repeat
end tell'''
tracks,_ = subprocess.Popen("osascript -e %s" % script, stdout=subprocess.PIPE).communicate()
trackList = tracks.split('\n')

我从未测试过这个......


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接