Applescript 从 iTunes 播放音乐 URL
Applescript play music from iTunes URL
以下脚本将在 iTunes 中打开一个曲目
use application "iTunes"
property trackURL : "itmss://itunes.apple.com/us/album/brahms-violin-concerto-in-d-major-op-77-iii-allegro/145533236?i=145533044&uo=4"
open location trackURL
现在,要求 "iTunes" 播放它不起作用,因为曲目已突出显示但未正确 select 编辑,即需要手动单击鼠标才能 select 它并且播放它。
如何 select 突出显示的曲目?或者我怎么能让 "iTunes" 播放这首歌?!或者,有没有办法直接从 URL 向我的音乐库添加音乐?
免责声明:我没有订阅 Apple Music,因此我这边的 UI 可能与您的不完全相同。但是,如果我单击 "Play" 按钮,我会收到一个小广告,要求我注册该服务,我认为如果您有该服务,它只会播放音乐。所以,这些是我能够让该框弹出的步骤:
首先,也是最方便的 AppleScript,尝试的是点击 space 栏开始播放音乐。如果我通过单击手动选择项目,这实际上非常有效。然而,在 open location
之后,它不起作用,这似乎是因为即使该行在查看器中突出显示,实际的键盘焦点似乎在页面本身(iTunes Store 和 Apple Music 出现让他们的整个 UI 呈现为由 WebKit 呈现的网页)。您可以通过点击键盘上的向上和向下箭头键来验证这一点;页面会上下滚动,而不是切换到相邻的曲目。
我认为这实际上是 iTunes 中的一个错误;我认为问题的真正解决方案是通过 the bug reporter 向 Apple 报告此问题。使用 open location
确实应该将键盘焦点设置到您导航到的轨道。
话虽如此,我们可以在短期内通过模拟单击 "Play" 按钮来解决此问题。请注意,您可能需要在“系统偏好设置”>“安全和隐私”>“辅助功能”中添加您的应用。另请注意,这是非常脆弱的,如果 Apple 更改了他们所服务的网页布局中的任何内容,则整个事情都会崩溃。最后,请注意这段代码非常难看;整个事情只是看着它就让我感到荨麻疹,但这是我唯一能够开始工作的东西。阅读此代码的副作用可能包括恶心、头痛和自杀念头。请勿在进食后立即阅读此代码。如果您有抑郁症或强迫症病史,请在阅读此代码之前咨询您的医生。
property trackURL : "itmss://itunes.apple.com/us/album/brahms-violin-concerto-in-d-major-op-77-iii-allegro/145533236?i=145533044&uo=4"
property trackTitle : "III. Allegro giocoso, ma non troppo vivace"
tell application "iTunes"
activate
open location trackURL
delay 1 -- give the page a second to load
end tell
tell application "System Events"
tell process "iTunes"
set theRows to the rows of table 1 of UI element 1 of scroll area 1 of group 1 of group 1 of front window
-- "repeat with eachRow in theRows" isn't working. I don't know why. Freaking AppleScript
repeat with i from 1 to the number of theRows
set eachRow to item i of theRows
if exists group 2 of UI element 2 of eachRow then
if value of static text 1 of group 1 of group 2 of UI element 2 of eachRow is trackTitle then
tell group 1 of UI element 2 of eachRow to click
end if
end if
end repeat
end tell
end tell
如果 Apple 修复了这个错误,当然,我们应该能够:
tell application "iTunes"
activate
open location trackURL
delay 1 -- give the page a second to load
end tell
tell application "System Events" to keystroke space
以下脚本将在 iTunes 中打开一个曲目
use application "iTunes"
property trackURL : "itmss://itunes.apple.com/us/album/brahms-violin-concerto-in-d-major-op-77-iii-allegro/145533236?i=145533044&uo=4"
open location trackURL
现在,要求 "iTunes" 播放它不起作用,因为曲目已突出显示但未正确 select 编辑,即需要手动单击鼠标才能 select 它并且播放它。
如何 select 突出显示的曲目?或者我怎么能让 "iTunes" 播放这首歌?!或者,有没有办法直接从 URL 向我的音乐库添加音乐?
免责声明:我没有订阅 Apple Music,因此我这边的 UI 可能与您的不完全相同。但是,如果我单击 "Play" 按钮,我会收到一个小广告,要求我注册该服务,我认为如果您有该服务,它只会播放音乐。所以,这些是我能够让该框弹出的步骤:
首先,也是最方便的 AppleScript,尝试的是点击 space 栏开始播放音乐。如果我通过单击手动选择项目,这实际上非常有效。然而,在 open location
之后,它不起作用,这似乎是因为即使该行在查看器中突出显示,实际的键盘焦点似乎在页面本身(iTunes Store 和 Apple Music 出现让他们的整个 UI 呈现为由 WebKit 呈现的网页)。您可以通过点击键盘上的向上和向下箭头键来验证这一点;页面会上下滚动,而不是切换到相邻的曲目。
我认为这实际上是 iTunes 中的一个错误;我认为问题的真正解决方案是通过 the bug reporter 向 Apple 报告此问题。使用 open location
确实应该将键盘焦点设置到您导航到的轨道。
话虽如此,我们可以在短期内通过模拟单击 "Play" 按钮来解决此问题。请注意,您可能需要在“系统偏好设置”>“安全和隐私”>“辅助功能”中添加您的应用。另请注意,这是非常脆弱的,如果 Apple 更改了他们所服务的网页布局中的任何内容,则整个事情都会崩溃。最后,请注意这段代码非常难看;整个事情只是看着它就让我感到荨麻疹,但这是我唯一能够开始工作的东西。阅读此代码的副作用可能包括恶心、头痛和自杀念头。请勿在进食后立即阅读此代码。如果您有抑郁症或强迫症病史,请在阅读此代码之前咨询您的医生。
property trackURL : "itmss://itunes.apple.com/us/album/brahms-violin-concerto-in-d-major-op-77-iii-allegro/145533236?i=145533044&uo=4"
property trackTitle : "III. Allegro giocoso, ma non troppo vivace"
tell application "iTunes"
activate
open location trackURL
delay 1 -- give the page a second to load
end tell
tell application "System Events"
tell process "iTunes"
set theRows to the rows of table 1 of UI element 1 of scroll area 1 of group 1 of group 1 of front window
-- "repeat with eachRow in theRows" isn't working. I don't know why. Freaking AppleScript
repeat with i from 1 to the number of theRows
set eachRow to item i of theRows
if exists group 2 of UI element 2 of eachRow then
if value of static text 1 of group 1 of group 2 of UI element 2 of eachRow is trackTitle then
tell group 1 of UI element 2 of eachRow to click
end if
end if
end repeat
end tell
end tell
如果 Apple 修复了这个错误,当然,我们应该能够:
tell application "iTunes"
activate
open location trackURL
delay 1 -- give the page a second to load
end tell
tell application "System Events" to keystroke space