Scripted bulk updates to an iTunes database

Discussion in 'Mac Programming' started by boffo, Mar 8, 2008.

  1. boffo macrumors newbie

    Oct 21, 2006

    What's my best bet for scripted bulk updates to an iTunes database?

    I want to do pattern-based manipulations on titles of tracks, so for example I want convert

    "Concerto in A major RV 552"


    "RV 552: Concerto in A major".

    Supposing the actual string manipulation is a solved problem, how do I go about reading and updating the iTunes database? I assume this has to involve AppleScript, but I have no idea how to do this, or even whether it's capable of regular expression matching. I guess I could always shell out to Perl.

    Ideally I'd like to manipulate the iTunes database from Perl, Python or Ruby, if that's possible.

    Anyway, all suggestions gratefully received.

  2. kainjow Moderator emeritus


    Jun 15, 2000
    I'm pretty sure you can do this with Ruby or Python via the Scripting Bridge in Leopard.
  3. boffo thread starter macrumors newbie

    Oct 21, 2006
    The scripting bridge looks great but I'm still on Tiger. Maybe this'll finally give me a reason to upgrade.
  4. hhas macrumors regular

    Oct 15, 2007
    Scripting Bridge isn't that good. Appscript is better designed, more reliable, and works on Panther onwards.

    Using py-appscript:

    from appscript import *
    def changename(name):
    	# do stuff nere
    	return name
    t = app('iTunes').library_playlists[1].tracks
    for name, id in zip(,
    	newname = changename(name)
    	if newname != name:
    If you're on Leopard, just run 'easy_install appscript' in to install py-appscript for the default Python 2.5. For other Python installations, you may need to install setuptools first.

    If Ruby's more your thing, you can use rb-appscript instead (the above code will work with minor modification). For Perl, there's Mac::Glue (included in Leopard).
  5. eldino macrumors member


    Mar 8, 2007
    if you are looking for scripts dor iTunes, probably Doug Adams have them!

    Amazing collection, can't live without 10 of these.
  6. boffo thread starter macrumors newbie

    Oct 21, 2006
    Thanks for prompting me to take a closer look at Doug's AppleScripts. I'm already wondering how I managed without Batch Set Sorting Tags.

    Anything you particularly recommend from this collection?

    Maybe I just need to learn AppleScript to do the updates I have in mind, which I now think are just setting the Sort Name as a function of track Name. The idea is to be able to define smart playlists to represent the various catalogues of works by classical composers, with the works in catalogue order. For example Deutsch for Schubert, Koechel for Mozart etc. etc.

Share This Page