Preserve a Genius Shuffle Playlist
One of my favorite features of iTunes is Genius Shuffle. By pressing the Option key and Space Bar simultaneously, iTunes will construct a 25-track Genius-type playlist in Up Next around a "seed" track it chooses at random from your library. Typically, I'll slap Option-Space Bar repeatedly until I get the type of songs I'm in the mood for. Sometimes though—because I have an itchy DJ finger—I'll abandon the current set of tracks after a few songs and create a new different Genius Shuffle arrangement. But still I'd like to have been able to save the playlist I had abandoned because, at least for a while there, I really liked it. Well, you can do this with AppleScript.
When iTunes is playing Up Next like this the track references are available in current playlist. It is a simple matter to copy them to a new playlist. The script I've listed below asks for a name for the new playlist; I've set the default answer in the display dialog to "Genius Shuffle" and when I run the script I'll keep that in the name, for example: "Rockin' Blues - Genius Shuffle", "70's Funk - Genius Shuffle", and so on.
tell application "iTunes"
try
if not (exists current playlist) then error
set opt to (display dialog "Enter a name for the new playlist:" default answer "Genius Shuffle")
set newP to (make new user playlist with properties {name:text returned of opt})
duplicate every track of current playlist to newP
reveal newP
on error
return
end try
end tell
Click on the little AppleScript icon above to open the script in Script Editor at your house—don't copy the text in the browser.
Save the script as a Compiled ".scpt" with Script Editor named whatever you like in your [home]/Library/iTunes/Scripts/ folder.
One issue is that if any of the tracks in Up Next are "dead" tracks then the script will fail (a repeat loop could duplicate each track individually to filter dead tracks, but I wanted to keep this simple). On the other hand, I think iTunes will ignore dead tracks when it creates a Genius Shuffle playlist.
Also I would only run this after creating a Genius Shuffle playlist; it doesn't make much sense to run it when anything else is playing.