AppleScript
UPDATED: Make Bookmarkable v2.3
Make Bookmarkable changes the file type of the selected AAC tracks to "M4B " and file extension to ".m4b", thus making them "natively" bookmarkable. Additionally, deletes and re-adds each converted track so each will appear in the Audiobooks Library. Ratings, play count, last played date, skip count, and skipped date are preserved. Latest version is universal binary.
UPDATED: Make UN-Bookmarkable v3.2
Make UN-Bookmarkable converts the iTunes tracks selection which have been converted to "M4B" with Make Bookmarkable back to "M4A". Latest version is now a universal binary.
NEW: Now Where Was I
Use Now Where Was I? to start and quit iTunes: when run while iTunes is playing, it will remember the currently playing track and quit iTunes; when run next it will start iTunes and play the remembered track.
UPDATED: BlockParty! v2.0
I have updated Block Party! to version 2.0. I actually did this a couple of days ago but with the site problems mentioned below I hadn't gotten around to mentioning it.
Apple Updates the AppleScript Language Guide
After nearly ten years, Apple has finally updated the Introduction to AppleScript Language Guide. Its layout and organization is more consistent with other Apple Developer Connection documentation and is much easier to grok (and much less 1999-internet-looking). It is specifically geared towards AppleScript 2.0 and Mac OS 10.5 or later.
UPDATED: CDDB Safari Kit v2.4.1
Gracenote has recently updated its page format thus obliging me to update CDDB Safari Kit to version 2.4.1. If you are interested, they are using more CSS and have stopped using list tags for track names and numbers.
iTunes AppleScript Delete Bug Moreso
A lister on the AppleScript mailing list writes:
The Scripting Interface Guidelines agree with you: make and delete should be used to create/destroy objects completely, while add and remove should be used to add/remove existing objects to sub-groups. e.g. Compare Address Book, which uses add and remove to add/remove existing person objects to group objects. iTunes predates the SIG, however, and while its scripting interface is fairly extensive it does suffer a number of longstanding design quirks.
Yep. I'd be happy if they just made it like it used to be.
iTunes 7.6 AppleScript Delete Bug
The more I think about the delete issue, mentioned below, the more I think this is a bug and not a feature. I have filed a bug report in any case. Although, I do like that you can trash a file from within iTunes, I do not like that you cannot preserve a track's file. A dandy way for delete to work would be as follows:
1) delete a track from a playlist to just remove it from the playlist.
2) delete a track from its Master Playlist to remove it from iTunes entirely but preserve the file (I tried this hoping it would work, but it does not).
2) delete a track from library playlist 1 to remove it from iTunes entirely AND trash its file.
(I don't know why there isn't a remove command in iTunes, which would make more syntactic sense. The Finder's AppleScript delete command will send a file to the Trash.)
Needless to say, this bug affects several scripts which use delete to remove a track from iTunes without actually trashing the file. For instance, Make Bookmarkable will delete a track from iTunes and then re-add it. Under iTunes 7.6, the track's file is moved to the Trash; when it is re-added, unless the user has "Copy files to iTunes Music folder when adding to library" checked in Preferences, iTunes will presume the track's location is the Trash. Empty the Trash and bye-bye file. This is exactly what is happening to some users.
I can only hope that Apple will see this as a serious bug--it being part of the AppleScript component of iTunes, I am sorry to say that I think it is doubtful--and fix it soon.
Delete Bug or Feature?
I just noticed this today using iTunes 7.6, but I do not know how long this "situation" has existed.
As far as I've always known, when you delete a track from a playlist using AppleScript, the track is removed from the playlist; when you delete a track from library playlist 1 (the Main library), the track is removed entirely from iTunes. In both cases, the track's file remained in its location in the Music folder. Today I noticed that when doing a delete from library playlist 1, the track was not only removed from iTunes but its file was moved to the Trash! I could not figure out a way to keep the file from doing so. I tried deleting it from its Master Library--in this case the "Music" playlist--but it still went to the Trash. Deleting from a simple playlist worked as expected: the track was removed from the playlist but remained in the Master Library.
Recently, some users of Make Bookmarkable wondered where their tracks went and it turns out they were moved to the Trash. Not so bad, since the bookmarkable copy was re-added (I believe). Still, this is not the behavior I expect when using delete. And until recently this wasn't the behavior anyway.
If this is how delete works now, then there is no way to remove a track from iTunes via AppleScript and subsequently keep its file, which is an option when you manually delete a track using the Delete key.
So, what's up with that?
UPDATE: Make Bookmarkable v2.2
The iTunes 7.6 update has some troubles, AppleScript-wise. I'm not exactly sure where the problem is, however, the first evidence of it occurs with Make Bookmarkable. An "Apple Event timeout" error occurs when multiple tracks are selected. I have posted a workaround and I am investigating the problem so I can file a bug report with Apple.
