I’ve never had much use for M3U playlist files until we finally got a car (2011 Dodge Charger) with an audio system (so-called) that can accept a USB stick. Plus, over the years I’ve often been asked about getting iTunes files onto portable media (going back to the MiniDisc). So I whipped up this script, Export Selected With M3U, to export a selection or playlist of tracks’ files to a user-chosen location and then create an M3U playlist file referencing the tracks:
And because not every player can use this configuration, there’s also an option to place the audio files in a discrete subfolder.
Dupin Lite has the same powerful Get Dupes-Filter-and-Purge features as the original Dupin but with fewer power-user features. If you aren’t interested in managing duplicate tracks as much as just identifying and eliminating them then Dupin Lite may be right for you.
Search-Replace Tag Text performs a search-and-replace with the text in your choice of tag (Song Name, Show, Artist, Album Artist, Album, Composer, Comments, Genre, or Grouping) in the selected tracks or all the tracks in the selected Playlist. Features case sensitivity and whole word match options and dry run preview.
This latest version enables the window to be resized horizontally in order to expand the width of text entry fields.
As you may know, the location of the current iTunes library’s database files can be read from a user preferences file named “com.apple.iApps.plist”. This preferences file also maintains the location of the current iPhoto library and perhaps the locations of other apps’ support files. By default, the location of the current iTunes database files is in ~/Music/iTunes/, like in the screenshot below. If or whenever you select or create a new library by Option-launching iTunes the location you select is stored in the iApps.plist as iTunesRecentDatabasePaths. Third-party apps can then locate the current database by simply reading the meta data from the iApps.plist.
Recently, since the launch of iTunes 11, I’ve been hearing from Correspondents who report that some of my software (apps and scripts) that need to access the iApps.plist are no longer finding the iTunesRecentDatabasePaths data. In fact, their iApps.plist file does not even contain the data. Somewhow it has not been updated correctly. Thus, when an app or script tries to read the iApps.plist it fails with a Console error like “The domain/default pair of (/Users/SomeUser/Library/Preferences/com.apple.iApps, iTunesRecentDatabasePaths) does not exist”.
The fix is, first, to make sure you note the location of your iTunes support files. If you’ve never used the Option-launch method of creating a new library then this location is your home folder’s “/Music/iTunes/” folder. Otherwise, well, I suppose you know where you created a new library. Now, quit iTunes. Hold the Option key and launch iTunes again. In the dialog that appears click the “Choose Library” button. Navigate the Open dialog to the folder you just noted (it will contain an “iTunes Library.itl” file and one or the other of an “iTunes Music Library.xml” or “iTunes Music.xml” file) and click the “Open” button. This should write the location to the iApps.plist correctly allowing scripts and apps to read it without error.
iTunes 11.0.1 fixes an issue with the “Show Current Song” (the Command-L shortcut). Before iTunes 11, using this command would select the currently playing track in the playlist it was playing from. In iTunes 11 there seemed to be some inconsistency with this behavior in different playing contexts. But now with iTunes 11.0.1 the command consistently selects the currently playing track in that track’s library regardless of its playlist source (if any). Coincidentally, this also happens to be the task performed by a script I wrote about to workaround the afore mentioned inconsistency.
I frequently find it convenient to access the playlist a track is playing from but “Show Current Song” doesn’t do this any more. So here is a script that selects the currently playing track in its source playlist (the pre-iTunes 11 behavior). I’m guessing the reveal command was fixed because this didn’t work quite right with iTunes 11, or maybe it had to do with those inconsistencies.
Interestingly, the playlists list will become visible if it is not already and the correct track selected. The try block prevents an error in case the script is run while iTunes is not playing, in which case there is no current track property. Attach a shortcut. Option-Command-L might be a good one. (Shift-Command-L is used by the “Search With Google” Service.)
I’ve posted an update to Dupin. The latest is version 2.5.4 (however, for a brief time, v2.5.3 was available).
The latest update is a maintenance release with some minor fixes: clarifies cloud track detection information, better detection of misconfigured iApps.plist file, fixes issue in v2.5.3 whereby the Purge dialogs do not appear correctly on some systems.
iTunes 11.0.1 appears to fix the issue with the AppleScript reveal command, mentioned here.
But Command-L (Go to Current Song) apparently does not yet work correctly. Update: Go to Current Song/Command-L does work correctly. But it doesn’t select the track in the playlist it may be playing from; it selects it in the Music library. This AppleScript will select the currently playing track in the playlist from which it is being played:
Apple has released iTunes 11.0.1, an update that makes some fixes to AirPlay, iTunes Match, and provides the obligatory “stability and performance improvements”.
The menu command “Go to Current Song” (in the Controls menu of iTunes 11) indeed shows the playlist that the current song is playing from, but it does not select the current playing track. The Command-L keyboard shortcut no longer works either. Looking for an AppleScript workaround, I found that reveal current track behaves the same way. The reveal command still selects a playlist, eg: reveal current playlist.
Update: Apparently these fails happen when a song is playing from a playlist but it’s OK when a track is playing in the Music library.
Update 2: Here’s a script that will reveal the current song in the Music playlist no matter where it is playing. Be sure to give it a shortcut.
tell application "iTunes"
set dbid to (get database ID of current track)
set musicLib to some playlist whose special kind is Music
set theTrack to some track of musicLib whose database ID is dbid
Obviously, this doesn’t help get you back to the current playlist. But if you need to access the playing track for some other reason then it’ll do. You can always right-click the LCD and access the current track’s Get Info, Show in Playlist, and so on.
Update 3: Kirk has an important observation on this issue.
Update 4 (December 16): This appears to be fixed in iTunes 11.0.1.
There’s seems to be a bit of inconsistency with the way iTunes 11 displays playlist time information as DD:HH:MM:SS. Sometimes times are displayed in the Status Bar at the bottom and sometimes a decimal version will be displayed beneath the playlist’s name at the top of the browser. I can’t quite get a grasp on something like “7.6 days” though.
Here’s a script you can attach a shortcut to that will simply display a dialog box listing the name of the selected playlist, the number of tracks it contains, and the time of the playlist as DD:HH:MM:SS: