• Create BookmarkCreate Bookmark
  • Create Note or TagCreate Note or Tag
  • PrintPrint
Share this Page URL

5. AppleScript for iTunes > 81. Remove Dead Tracks

Remove Dead Tracks

Automatically delete the tracks in iTunes whose files are no longer available.

Sometimes, you’ll see tracks listed in iTunes with an exclamation point (!) next to their names. These are so-called dead tracks: tracks whose files iTunes cannot locate because the files either are missing or have been deleted. In any case, you can eliminate them all from your iTunes library and playlists with this AppleScript hack.

Wow, over 3,000 results!

Figure 5-11. Wow, over 3,000 results!

The Code

This script examines each file track in the main library and checks if its locationproperty is missing value.If it is, the track is removed from iTunes.

   tell application "iTunes"

     -- initialize some variables
     set lib to library playlist 1
     set allUPNames to name of user playlists
     set prog to 500
     set delTracks to 0
     set checkedTracks to 0
     set ddMessage to ""

     set fixed indexing to true

     -- go through library tracks backwards
     repeat with t from (count of file tracks of lib) to 1 by -1

       set aTrack to file track t of lib
         if aTrack's location is missing value then
           delete aTrack
           set delTracks to delTracks + 1
         end if
       end try
       set checkedTracks to checkedTracks + 1

       if frontmost and ¬
         (prog is not 0) and ¬
         (checkedTracks mod prog) is 0 then

         if delTracks is not 0 then ¬
           set ddMessage to (delTracks & " dead tracks removed…")

         display dialog (checkedTracks as string) & ¬
           " tracks checked…" & return & ddMessage ¬
           buttons {""} giving up after 1
       end if

     end repeat

     set fixed indexing to false

     repeat with aPlaylist in my allUPNames
       if (count of tracks of playlist aPlaylist) is 0 then ¬
         delete playlist aPlaylist
     end repeat

     if delTracks is 0 then
       display dialog "No tracks deleted." buttons {"Thanks"} ¬
         default button 1 with icon 1
       set ps to " was"
       if delTracks is not 1 then set ps to "s were"
       display dialog "Finished removing \"dead\" tracks." & return & ¬
         delTracks & " track" & ps & ¬
         " removed." buttons {"Thanks"} default button 1 with icon 1
     end if
   end tell



Not a subscriber?

Start A Free Trial

  • Creative Edge
  • Create BookmarkCreate Bookmark
  • Create Note or TagCreate Note or Tag
  • PrintPrint