这类似于:Monitoring Spotify track change in Applescript? 但是我不想在咆哮通知中显示音轨变化,而是想让Audio Hijack Pro拆分当前录音。 Audio Hijack Pro也支持Applescript,命令将是“分割录音”。因此,我不需要任何有关正在播放哪首歌曲的信息,但是曲目更改为按时准确触发“分割录制”的事件。我想从一些事情开始,但我对一般的脚本知识知之甚少,而对Applescript的了解则更少。任何帮助,将不胜感激!提前谢谢。
答案 0 :(得分:5)
这是一个更好的脚本。 它将获取专辑名称和曲目名称并输入文件名,并在正在播放的新曲目上自动分割曲目。
发现于:http://joonix.se/post/25716608379/spotify-offline-playlist这是一个Applescript,应该以扩展名.scpt
保存property update_delay : 0.1
tell application "Audio Hijack Pro"
activate
-- Create a new session "Spotify" if it doesn't already exist
try
set spotify_session to first session whose name is "Spotify"
if output name format of spotify_session is not "%tag_artist - %tag_title" then
display dialog "The existing profile for \"Spotify\" does not utilize %tag_artist and %tag_title in the output name format option. Please add this if you want your files to be named automatically or delete/rename your existing \"Spotify\" session."
end if
on error number -1719
tell application "Finder"
set spotify_path to POSIX path of (application file id "spty" as alias)
end tell
set spotify_session to make new application session at end of sessions
set targeted application of spotify_session to spotify_path
set output folder of spotify_session to "~/Desktop"
set output name format of spotify_session to "%tag_artist - %tag_title"
set recording format of spotify_session to {encoding:MP3, bit rate:320, channels:Stereo, style:VBR}
end try
set name of spotify_session to "Spotify"
-- (Re-)start hijacking and recording on the spotify session
if hijacked of spotify_session is true then
stop hijacking spotify_session
end if
start hijacking spotify_session relaunch yes
end tell
tell application "Spotify"
if not running then activate
if player state is playing then pause
display dialog "Start playing the tracks that you want to rip with Audio Hijack, quit spotify when done."
if repeating then display dialog "Please notice that you have repeating enabled in Spotify!"
set has_started to false -- Whether spotify have been playing yet
-- Check for changes to current track until spotify exits
repeat until application "Spotify" is not running
-- Changed track
if has_started and id of current track is not recording_id then
tell application "Audio Hijack Pro" to stop recording spotify_session
set has_started to false
end if
-- Started playing
if has_started is not true and player state is playing then
set has_started to true
set recording_id to id of current track
-- Get the metadata
set track_name to name of current track
set track_artist to artist of current track
set track_album to album of current track
tell application "Audio Hijack Pro"
set title tag of spotify_session to track_name
set artist tag of spotify_session to track_artist
set album tag of spotify_session to track_album
start recording spotify_session
end tell
end if
-- Stopped playing
if has_started and player state is not playing then
tell application "Audio Hijack Pro" to stop recording spotify_session
set has_started to false
end if
delay update_delay
end repeat
tell application "Audio Hijack Pro" to stop recording spotify_session
end tell
答案 1 :(得分:1)
您需要重复轮询当前播放曲目,当曲目名称发生变化时,将命令发送到Audio Hijack Pro。
这可以通过Spotify中的事件来完成。我会查看文档。在此期间......
tell application "Spotify" set currentTrack to (name of current track) repeat if currentTrack is not equal to (name of current track) set currentTrack to (name of current track) tell application "Audio Hijack Pro" split recording theSession end tell end if end repeat end tell
事实上,我刚刚提交了一份可能有用的要点https://gist.github.com/3604106
希望它有所帮助。