dougscripts.com

February 24 2016 - 1:16 pm

UPDATED: Smarts v1.3.1

Smarts will save and store the criteria of an iTunes Smart Playlist — the smarts of a Smart Playlist — as a template so you can reload it into iTunes later.

Smarts

This latest version fixes an issue with distinguishing between Smart and Genius playlists in modern versions of iTunes.

Smarts is a free download from the Mac App Store. More information is available on this page.

February 17 2016 - 7:24 am

Name New Playlist From Selection

(This a repost from October 25, 2011. The previous post reminded me of it.)

I use the iTunes File > New > Playlist from Selection command a lot to create temporary playlists. Actually, I use the Shift-Command-N shortcut more often than clicking the command in the File menu. But I'm irritated at all the dancing I have to do to name the new "untitled playlist". It takes my attention away from what I was intending to do with the tracks. So, I rigged the script below to the keyboard shortcut Shift-Command-N—and, luckily, it works. Sometimes assigning a shortcut that iTunes is already using doesn't override the original command. The script does exactly what "Playlist from Selection" does except now I can enter the name for the playlist before it's created.

Here's the script:

tell application id "com.apple.iTunes"

try

set sel to selection

set theSource to container of view of front browser window

if sel is {} then error

set opt to (display dialog ¬

"Make new playlist from selected tracks named:" default answer ¬

"" with title "Name New Playlist From Selection" with icon 1)

set newName to (text returned of opt)

if newName is "" then error

on error

return

end try

set newPlaylist to (make new playlist at theSource with properties {name:newName})

repeat with t in sel

try

duplicate t to newPlaylist

end try

end repeat

reveal newPlaylist

end tell

I named it "Name New Playlist from Selection", saved it to ~/Library/iTunes/Scripts/ and gave it the shortcut using these instructions.

February 10 2016 - 7:21 am

NEW: New Playlist from Selection to Folder

New Playlist from Selection to Folder will create a new playlist with the selected tracks in a chosen Playlist Folder—rather than at the top level where you'd otherwise have to locate it and drag it to a Playlist Folder.

Just select some tracks and then launch the script (you could assign the script a keyboard shortcut).

Enter a name to use for the new playlist and click "Continue...". A second panel listing the current Playlist Folders in iTunes will appear:

Select a Playlist Folder from the list and click "OK". The new playlist containing copies of the selected tracks will be created in the Playlist Folder.

More info and download is on this page.

February 7 2016 - 12:44 pm

UPDATED: Album Rating Reset v2.0

Album Rating Reset will allow you to set the Album Rating and/or Album Loved for the albums of the selected tracks or the albums associated with the tracks in a selected playlist.

Album Rating Reset

I had pretty much given up on Album Ratings as just more Songs View clutter. I'd hidden the Album Rating column in Songs View. When there's no avoiding it in Album Views I prefer the computed Album Rating that averages the album's track ratings. But now that I use Apple Music fairly regularly, the Loved settings for tracks, albums and playlists in my library actually work pretty well with shaping Apple Music recommendations.

So I updated Album Rating Reset from a version last updated in 2007 to include Album Loved. The older version would only work on one track a time. But this version works on the selected tracks' albums or the albums associated with the tracks in a selected playlist. I don't think there is a way in iTunes to apply an Album Rating or Album Love to multiple albums at a time except while in Albums View.

Album Rating Reset

More information and download is on this page.

February 4 2016 - 1:39 pm

UPDATED: Show In Playlists v1.4

Show In Playlists is a stay-open applet that monitors iTunes and detects when library tracks have been selected and then displays a heirarchical list of the playlists containing the selected track(s) (emulating iTunes' "Show In Playlist").

Show In Playlists

It can also be set to monitor only playing tracks (excepting "For You" and "New" Apple Music, alas). Clicking a playlist in the list chooses it in iTunes, and if a single track had been selected then it will be selected in the chosen playlist. Additionally, the monitoring routine can be toggled off temporarily so that the current list of playlists remains fixed yet still selectable.

This latest version fixes a problem resolving old and new-style iTunes Library.xml data which may have caused playlists to display erroneously.

Show In Playlists is free to use for ten days and $1.99 thereafter. This is a free update for registered users. More information and download is on this page.

January 23 2016 - 12:10 pm

Delete Other Artwork

iTunes is able to accommodate more than one image for a track entry's artwork. What hasn't always been obvious is that the first artwork in an array of artworks in a track is the "display" artwork. Any additional artwork in the artworks array are spares. Modern versions of the iTunes Get Info Artwork panel now label images as "Album Artwork" and "Other Artwork".

Some people think that these "Other Artwork" have to go.

It is a simple matter to simply remove the other artwork from a track entry with an AppleScript. Here's one now that goes through each track in a selection and repeats through its artworks (if there's more than one artwork), removing the last artwork until there is only the first one left:

tell application "iTunes"

set selectedTracks to selection of front browser window

repeat with i from 1 to (count of selectedTracks)

set thisTrack to item i of selectedTracks

tell thisTrack

try

if (count of its artworks) > 1 then

repeat until ((count of its artworks) is 1)

delete its last artwork

end repeat

end if

end try

end tell

end repeat

end tell

Click the script icon above to download this script to Script Editor at your house and click "New Script" to allow it to open. Save it named whatever you like in your ~/Library/iTunes/Scripts/ folder (or wherever you put them). Select some tracks in iTunes and launch the script.

There's always the kid in the front who wants to know why you don't make a script like this that just works on the entire library. Well: iTunes can be kind of touchy when AppleScripting a large amount of artwork stuff. It may "go modal" as it updates its database and under such circumstances may block an AppleScript from continuing its operation. So I purposely used the selection object so that the script can be used piecemeal on a small batch of tracks at a time. Additionally, you might want to eyeball the "Other Artworks" of a track before you start blindly mowing them all down; in which case having to select the tracks manually compels you to be in control.

The routines are in a try block to skip over errors because of what I mentioned above about modality and also in case there's some image gunk in there that causes trouble. Because images downloaded from the internet that you use as album artwork are always pristine, right?

January 21 2016 - 7:52 am

EPPC Bug? Probably Not

Not long ago, a user reported an issue using the EPPC protocol to access AirPlay properties of iTunes on a remote machine. To keep a long story short, it doesn't appear to be a bug. The user neglected to incorporate a "using terms from" block. I should have known at the time that this was a likely omission. This is an example how the code should be implemented:

tell application "iTunes" of machine "eppc://user:password@Remote-Machine.local"

using terms from application "iTunes"

set apDevices to (get name of every AirPlay device whose available is true)

end using terms from

end tell

January 11 2016 - 6:15 am

Playlist Time to Playlist Name

Here's a simple script that was inspired by a question Kirk got asked in his Ask the Tunes Guy column in Macworld last week. A user lamented that the playlist length (that is, its total time) is not available in the Music app on iOS. Kirk recommended adding this information to the playlist name in iTunes and then re-syncing. A good solution but kind of a chore. This script will do the renaming part for you.

Just select a playlist in iTunes and launch the script. It will display a confirmation dialog and then rename the playlist by appending the time length to its current name:

tell application "iTunes"

try

set thisPlaylist to view of front browser window

if special kind of thisPlaylist is none then

set newName to (my fixName(thisPlaylist's name) & " | " & thisPlaylist's time) as text

-- confirm

try

display dialog "Rename selected playlist to:" & return & return & newName

on error

return

end try

tell thisPlaylist to set name to newName

else

error

end if

on error m number n

try

display dialog "Can't change the selected playlist's name." buttons {"OK"}

end try

return

end try

end tell

to fixName(n)

if n does not contain "|" then return n

return text 1 thru ((offset of "|" in n) - 2) of n

end fixName

Couple of things to note: only user-created scripts (plain and Smart) can be affected. Also the script uses the "pipe" character to separate the actual name with the appended data. When you run the script again on a playlist that has previously been affected by the script, it uses the "|" as a marker to erase the appended text; thus, the playlist name can be updated if the contents changes at a later date. So, if you happen to already use "|" in your playlist names you may have a problem. You can edit the script in Script Editor to change each of the occurrences of "|" to some other text character that you aren't likely to use.

January 9 2016 - 6:30 am

Fifteen Years On

Happy birthday, iTunes!

iTunes v1.0 was announced and released on January 9, 2001. I don't think a day has gone by since that date that I haven't used iTunes. Seriously. It's probably the most regularly used app on any of my machines. Love it or hate it, for better or worse, you have to acknowledge that iTunes has had a huge impact on how music is consumed. Amazing. (Kirk McElhearn has written a fifteenth anniversary tribute that covers the milestones.)

And, lest they be forgot, here's a shout out to the developers of SoundJam MP, the jukebox app that Apple bought and re-christened as iTunes: Bill Kincaid, Jeff Robbin and—most especially as far as I'm concened—Dave Heller, who incorporated AppleScript into SoundJam and then iTunes.

December 30 2015 - 7:48 am

EPPC and AirPlay Bug?

A Correspondent alerted me to an issue he is seeing, and that I can verify, using the EPPC protocol to access the AirPlay device property via iTunes on a remote machine. For example, with Remote Apple Events enabled on a remote machine, a script like this—that up until recently worked—will fail:

tell application "iTunes" of machine "eppc://user:password@Remote-Machine.local"

set apDevices to (get name of every AirPlay device)

end tell

In this example, you would expect to get a list of the names of the AirPlay devices available on the remote machine. But instead, the script trips up on the word "AirPlay" with the error "Expected class name but found identifier". "AirPlay device" is a class name. Other conventional iTunes/Remote Apple Events routines work as expected.

Our Correspondent reports that this sort of script worked happily in the past; sounds like he uses it to control iTunes like a server on the remote machine. There have been EPPC-related bugs in the past that were introduced with Security Updates so I'm hoping this is one of those sorts of things and not a deliberate "security feature". File a bug if you can.

Site contents © 2001 - 2024 (that's right: 2001) Doug Adams and weblished by Doug Adams. Contact support AT dougscripts DOT com. About.
All rights reserved. Privacy.
AppleScript, iTunes, iPod, iPad, and iPhone are registered trademarks of Apple Inc. This site has no direct affiliation with Apple, Inc.
The one who says "it cannot be done" should not be interrupting the one who is doing it.