When cleaning up my disk I deleted a couple of files from my music collection which iTunes was managing. Now when I try to sync a device I get an error message that it can't sync these files because they don't exist. The problem is that I can't find these files in iTunes any more to delete them. They don't appear when I search for appropriate terms. So, my question is how do I find them, and is iTunes hiding them from me in some "smart" way?
For adding functions to iTunes you should look at Doug;s Applescripts. There is a script to remove dead tracks.
I've found the easiest most reliable solution yet! No scripts, no loss of playcounts/ratings etc.
- Create a new playlist, say temp.
- Select all your the tracks you want to deal with and drag and drop them to the playlist. The new playlist will only contain valid tracks. All invalid tracks will be marked with the exclamation mark.
- Switch to the playlist and select all the tracks, then right-click and Uncheck Selection
- Switch back to Music and sort by the checkmark - now all the invalid tracks are grouped together!
- Select them all and delete!
You can then go and Check the songs again to make sure they get synced to devices.
A roundabout way is longer, but doesn't need any scripts.
- Export your library to the desktop as an xml
quit iTunes and move these files to the desktop / trash
- iTunes Music Library.xml
- iTunes Library.itl
- iTunes Library Extras.itdb
- iTunes Library Genius.itdb
Start iTunes - it will look "empty" but all your programs and music are still around
- Drag the iTunes Media folder into your iTunes window - Library on the top left - drop the folder over Music or the other categories and iTunes will re-add them to the database, but only the files that exist still on the drive will be added
- Import the saved library.xml file - this will add back all the ratings, playlists, and songs that no longer exist will be cleaned out of the playlists
The script from Doug's AppleScripts for iTunes is now part of a commercial application, but a version from 2011 can still be downloaded for free here.
Here is a simpler script that should do more or less the same thing:
tell application "iTunes" repeat with t in (get file tracks of library playlist 1) if location of t is missing value then delete t end repeat end tell