How do I run get_iplayer with launchd?
With the release of Mac OS 10.4, launchd was chosen to supersede cron in Mac OS.

Has anyone experience of writing a daemon to run get_iplayer regularly?
Or using launchd to run cron regularly?

If not I shall dive in and try and understand it, but I thought I would ask first.

[Yes I have tried to run cron as superuser or as root but it doesn't work and it's a bit of security risk]
[[Plus I have to get grips with eventually for other automated scripts I used to use]]
I use launchd to have get_iplayer update its cache regularly. As far as I know it's working properly! Create the following text file:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "">
<plist version="1.0">

Give it the same name as the "Label" property in the plist:

and place it in:

It will then load at login, but you can load it manually using the terminal:

launchctl load ~/Library/LaunchAgents/org.{YOUR_DOMAIN}.get_iplayer.cache_refresh.plist

If you want to create your own/play around/understand the values better, there is a launchd plist generator website. But to really help understand the files, I highly recommend LaunchControl, which is an advanced utility for working with launchd and its plist files. It has a free trial, and even once the trial expires, it's a great way to explore the various properties and their options (or if you find yourself using it, you can buy it obviously!).