dougscripts.com

January 2024

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.

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.