fix the podcast update schedule in iTunes

March 22nd, 2008

Does this sound familiar to you? You connect your iPod or iPhone to iTunes in Mac OS X to sync, but because iTunes’ built-in podcast update schedule is so oddly sparse, you find you have to hit “Refresh” on the podcast tab to actually check for new podcasts, then after it checks for, finds, and downloads the new podcasts, you have to sync again!? There’s got to be a better way!!:

  1. Download Cronnix.
  2. Create a new cron item that looks like this:

    That command, by the way, is this:
    osascript -e "tell application \"iTunes\" to updateAllPodcasts"

  3. Save. What you just did was create a little one-line reoccurring cron script that fires off every hour on the 30 minute mark that will (launch iTunes if it’s not running and then) tell iTunes to check for and download new episodes of your favorite podcasts.


EXTRA CREDIT: There’s probably a better way to do this via launchd. In Mac OS X 10.5 and above, Launchd = teh new hotness!, whereas cron = teh old and busted — but honestly, I just couldn’t quite get the syntax right. My guess is that the osascript command that passes to iTunes would have to be escaped as normal, and then escaped again for the launchd XML file. So if you can figure it out, let me know.

ADDITIONAL EXTRA CREDIT: If anyone knows of a way to disable iTunes’ “You haven’t listened to this podcast in a while” download deactivation setting, again, speak up. I can see why it’s there, and it’s polite and all, but it drives me berserk.

4 Responses to “fix the podcast update schedule in iTunes”

  1. Nick says:

    You can set this up in a snap in launchd using Lingon.

  2. Jeff says:

    Nick — I actually tried Lingon/launchd before using cron with no luck. See my note above. If you can actually get the launchd item to fire, post what worked for you.

  3. Logan says:

    I found the following script that will handle the “You haven’t listened to this podcast in a while” download deactivation setting.

  4. Jay says:

    hi. i tried your suggestion using your example screenshot and command. but it didn't work. Than, i removed the forward slashes, and it worked. FYI