Yay more AI slop!
I wanted to automate adding and removing themed movies, eg Christmas movies added in late November and removed early Jan. The easiest solution I could think of was enabling / disabling lists.
Please refer to the example compose file for a Halloween and Christmas schedule. These 2 look for lists named "halloween" and "christmas" - pretty straight forward. Personally, I am using maintainerr to automate deleting content, but setting Clean Library Level to "remove movie and delete files" will delete any movies added by the automated lists (and any other lists) when they are disabled.
| Variable | Required | Description | Example |
|---|---|---|---|
RADARR_URL |
✅ | The full URL to your Radarr instance. | http://192.168.1.50:7878 |
RADARR_API_KEY |
✅ | Your API Key found in Radarr > Settings > General. | c28565be288... |
LIST_NAME |
✅ | The exact name of the Import List you want to control. NOT case sensitive. | Christmas |
START_DATE |
✅ | The day the list should turn ON. Format: DD/MM |
01/12 (1st Dec) |
END_DATE |
✅ | The day the list should turn OFF. Format: DD/MM |
02/01 (2nd Jan) |
TZ |
❌ | (Optional) Your Timezone. Determines when the "Daily Check" runs (default 8 AM). | Australia/Melbourne |
Please ensure your lists meet these requirements for automation:
- Enable automatic add
- Enable search on add
- A unique name (I actually have no idea how the script would handle finding multiple lists. Its not in my use case, so I haven't bothered to test)
I also recommend adding a tag with the lists name, so you know where the movie has come from
The container runs a Python script that acts as a State Enforcer. It does not just toggle the list once; it ensures the list is always in the correct state for the current date.
- On Startup: The script immediately calculates if "Today" falls between
START_DATEandEND_DATE.- Inside Window: Forces the list to Enable.
- Outside Window: Forces the list to Disable.
- Daily Check: Every morning at 08:00 AM, it runs the check again to catch any dates that rolled over during the night.
- New Year Logic: It automatically handles date ranges that cross the New Year (e.g., Dec 1st to Jan 2nd).
You will need a seperate container per list - please refer to the example compose file.
This container includes a built-in Heartbeat mechanism for Docker.
- The script updates a file at
/tmp/healthyevery 60 seconds. - Docker checks this file to ensure the scheduler hasn't frozen.
- If the script hangs, Docker will mark the container as
unhealthy.
You can use something like Autoheal to automate restarting unhealthy containers