- This is currently only working in a regular browser (not on the iPhone yet).
- This only works on Mac's (sorry PC, you've had a rough couple of years, I know).
- This only works on Mac's when you turn on "User interface scripting" also known as "Support for Assistive Devices"...
- It requires iTunes to be brought to the front and may even have message boxes popup in iTunes on your ooTunes server computer.
- It may not work on non-english versions of iTunes.
- You have to already have the track in your iTunes library, and "Genius" has to be updated since that track was added.
(*
(C) Steven Woolley 2008, as part of ooTunes Media Server (see ootunes.com)
How to create an Genius Playlist in iTunes using applescript. More info and issues discussed here:
http://ootunes.blogspot.com/2008/10/create-genius-playlists-in-itunes-on-go.html
Feel free to use this code however you'd like, but please keep this comment intact so I hear feedback, etc., since I'd like to hear about updates, improvements, suggestions, etc.
*)
set pid to "4B62C662B53FFB94" -- set this to your track's persistent id... or use some other method to get your "seed" track
set app_name to "iTunes"
tell application "iTunes"
try
with timeout of 10 seconds -- don't want to hang forever if, for instance, iTunes has a dialog box already open
set cur_track to (first track of playlist named "Music" whose persistent ID is pid)
reveal cur_track
end timeout
on error theError
return "Can't find track!"
end try
end tell
tell application "System Events"
tell process app_name -- this needs Assistive Devices support enabled see: System Preferences -> Universal Access -> "Enable access for assistive devices"
try
set b to first button of window app_name whose help is "Start Genius." -- that's about the only way to get the "Start Genius" button, but it will break on non-english versions (I'm guessing)
tell application "iTunes"
activate
end tell
click b
with timeout of 1 second -- this is a hack to "test" if the "can't create genius playlist..." dialog opened. If it does, we'll timeout (hopefully) and then close the dialog so it doesn't freeze future applescript interaction
tell application "iTunes"
activate
end tell
end timeout
return ""
on error theError
if theError is "iTunes got an error: AppleEvent timed out." then
key code 36 -- close the dialog
return "Can't create genius list from that track!"
end if
return theError
end try
end tell
return "Error creating genius playlist!"
end tell
No comments:
Post a Comment