在 Apple Music 中打开/搜索 Spotify 曲目(使用 Applescript)
Posted
技术标签:
【中文标题】在 Apple Music 中打开/搜索 Spotify 曲目(使用 Applescript)【英文标题】:Open/search Spotify track in Apple Music (with Applescript) 【发布时间】:2020-12-11 11:40:44 【问题描述】:我想要一种从 Spotify 版本切换到 Apple Music 中相同版本的简单方法。
我已经找到了一种使用 Applescript 在 Apple Music 网络播放器中搜索当前正在播放的 Spotify 曲目的方法:
tell application "Spotify"
if player state is not stopped then
set currentArtist to artist of current track as string
set currentTrack to name of current track as string
open location "https://music.apple.com/search?term=" & currentArtist & " " & currentTrack
end if
end tell
我愿意:
在原生 Music.app 中打开搜索,而不是在网络播放器中。是否支持? 最好不要进行搜索,而是直接访问同一个版本。也许是ISRC codes? 选取任何选定的 Spotify 曲目,而不仅仅是当前播放的曲目。查看 Spotify Applescript 词典告诉我这是不可能的。【问题讨论】:
【参考方案1】:现在遇到了类似的问题,很快就解决了。就我而言,我只想在音乐应用上触发搜索。
打开 Automator 并创建了一个新的“服务”。
工作流在“每个应用程序”中接收当前>“文本”>。
这是 AppleScript:
on run input, parameters
tell application "Music"
activate
end tell
tell application "System Events"
tell process "Music"
set window_name to name of front window
set value of text field 1 of UI element 1 of row 1 of outline 1 of splitter group 1 of window window_name to input
keystroke ""
key code 36
end tell
end tell
return input
end run
我在 Automator 中将其保存为“在音乐上查找”,现在我可以选择文本,右键单击 > 服务 > 在音乐上查找,然后打开音乐并显示所选文本的结果。我希望你可以使用它的某些部分。
【讨论】:
谢谢。尝试了您的脚本,但由于某种原因,我遇到了“错误号 -1719”——我对 AppleScript 知之甚少,无法理解出了什么问题。然而,我最近尝试了Keysmith app,我首先运行 AppleScript 将艺术家和曲目复制到剪贴板,然后使用 Keysmith 逻辑将剪贴板粘贴到搜索字段中,从而使它很容易工作。完美运行。 你有最新的 Music 和 macOS 版本吗?也许现场顺序发生了变化并破坏了某些东西。但是很高兴您找到了另一个解决方案:) 这不再有效,但它帮助我找到了一个可行的解决方案(请参阅其他答案以获得修复)【参考方案2】:我刚刚想出了如何将文本从任何地方传递到音乐中的搜索字段,在守护进程的答案的帮助下,它不再有效。这应该适用于您想要与您所拥有的东西一起做的事情。
用连接字符串的变量名替换“打开位置”行。在您的下方添加此代码并传递该变量以代替“输入”(在我的情况下,“输入”是来自任何应用程序的文本,我用它来选择我想要发送的电子邮件/网页/消息中的艺术家姓名的文本到音乐的搜索)。
首先它检查主音乐窗口是否打开与MiniPlayer,如果没有通过cmd-O启用搜索,则打开它,cmd-F查找,然后传递输入并点击返回:
tell application "Music"
activate
end tell
tell application "System Events"
if not (exists (window "Music" of process "Music")) then
tell process "Music"
keystroke "0" using command down
end tell
end if
tell process "Music"
keystroke "f" using command down
keystroke input
key code 36
end tell
end tell
所以,像这样(我没有 Spotify 来检查该部分,但假设您的代码正确,这应该可以工作):
tell application "Spotify"
if player state is not stopped then
set currentArtist to artist of current track as string
set currentTrack to name of current track as string
set spotTrack to currentArtist & " " & currentTrack
end if
end tell
tell application "Music"
activate
end tell
tell application "System Events"
if not (exists (window "Music" of process "Music")) then
tell process "Music"
keystroke "0" using command down
end tell
end if
tell process "Music"
keystroke "f" using command down
keystroke spotTrack
key code 36
end tell
end tell
我唯一想不通的是如何检查搜索字段是否已经成为焦点,因为如果是,cmd-F 会导致系统警报声。通常不是问题,因为通常您会在再次运行此脚本之前搜索并与其他内容交互,因此称其为好。 :)
【讨论】:
以上是关于在 Apple Music 中打开/搜索 Spotify 曲目(使用 Applescript)的主要内容,如果未能解决你的问题,请参考以下文章
iTunes Music Store Link Maker——如何在我的应用程序中进行搜索?