About 1/4 of my library consists of AAC files that I’d like to convert to MP3s. I don’t want duplicate files of the same track, though. I want the AAC file to be deleted. I started with this script as a testing feature…but it fails, telling me “Can’t get kind of track.”
tell application "iTunes"
if kind of track is ("AAC Audio File") then
beep
end if
end tell
Can anyone tell me how to get applescript to recognize the “Kind” of track? (AAC OR MP3)
Once I get this part of the script to work, I’m going to replace the beep with “convert track using current encoder” and then delete the AAC file (once I figure out how the heck to do it.)
You’re not telling iTunes which track to use. Perhaps you want to use “current track.”
Okay, So I got this to work:
tell application "iTunes"
set theTracks to selection
repeat with aTrack in theTracks
set newtrack to convert aTrack
delete aTrack
end repeat
end tell
However, delete only deletes the file from iTunes. I want to move the AAC file to the trash, removing the file from my Hard Drive to free up space. Any ideas?
slim:
This script will take care of it for you. First, however, you need to go into the preferences pane of your iTunes and make sure your encoder is set to mp3 at the quality you want. When this script hits the [convert] command, it will use whatever converter is the default for iTunes.
All the AAC tracks will be selected, converted, and popped into the trash for deletion, as well as removed from your playlist.
set these_files to {}
tell application "iTunes"
set aac_tracks to every track of the first library playlist whose kind contains "AAC"
set the track_count to the count of aac_tracks
display dialog "Processing " & (track_count as string) & " tracks." & ¬
return & return & ¬
"This may take a minute. One moment."
set new_mp3 to (convert aac_tracks)
repeat with i from 1 to the count of aac_tracks
set this_track to item i of aac_tracks
if the location of this_track is not missing value then
set the end of these_files to (the location of this_track) --stores location of track before deleting it from the playlist
end if
delete this_track
end repeat
end tell
tell application "Finder" --Goes to the Finder for final deletion
-- delete the files
set the item_counter to 0
repeat with i from 1 to the count of these_files
set this_file to (item i of these_files) as alias
delete this_file
set the item_counter to the item_counter + 1
end repeat
end tell
tell application "iTunes"
display dialog "Process completed." & return & return & ¬
(item_counter as string) & " files have been placed in the trash." buttons {"Empty Trash", "OK"} default button 2
if the button returned of the result is "Empty Trash" then
ignoring application responses
tell application "Finder" to empty trash
end ignoring
end if
end tell
I know this is some sloppy code and could probably be cleaned up to look much, much better than this, but I just don’t care. The conversion portion is taken from a script I use to make podcasts, and the deletion portion is taken from one of Apple’s iTunes scripts. I do like neat code, but for this, I was more interested in function than form.
Good luck, hope this helps
casdvm
casdvm-
Thanks for the script. However, it only worked half-way for me.
It seemed to run fine at first. It created a playlist of every AAC track in my library and then used the default encoder to convert them to MP3s. It took my G5 about 2 and a half hours to convert 1,024 tracks.
After that it stopped. The original AAC files weren’t deleted, just deleted from the playlist. I went into my library, sorted by kind to locate the AACs to delete and when prompted, sent the files to the trash.
Not a big deal. Just thought I’d let anybody who reads this know that it won’t deleted the files, just tracks in a playlist.
slimjim5811
slim:
Thanks for the report. It was most likely a time thing; the script probably timed out while waiting for all the conversions to finish up. I am glad it at least simplifed your workload, however.
casdvm