A Smart VCR script for all HDHomeRun devices.
No cloud. No subscriptions. No drama.
Just simple, AppleScript-powered TV recording for macOS.
I wanted to record TV shows quickly on my HDHomeRun, without a massive install or a paid DVR system. This project gives you guide-based, one-click recording—no accounts or setup fees.
- Automatic HDHomeRun discovery – Finds all compatible tuners on your network.
- Guide-based recording – Automatically pulls show, season, episode, and timing info.
- Flexible Series Recording:
• Record by channel or across all channels for syndicated shows (NEW)
• Supports SeriesID tracking for smarter scheduling (NEW) - Dynamic Task Queueing:
• Show IDs for series recordings are now queued and processed efficiently at the end of the idle loop (NEW) - Modular Script Design:
• Core logic split into a library file for easier updates and better stability (NEW) - Powerful Logging and Debugging:
• Robust, handler-specific logs
• Optional JSON log mode: open API calls in your browser for troubleshooting (NEW) - Smart Error Handling:
• Automatic pause on repeated recording failures (NEW)
• Protects against accidental config wipeouts (NEW) - Disk space management:
• Configurable disk space checks before/during recording (NEW) - Easy “Add,” “Edit,” and “Manual Add” workflows
- macOS notifications: See every step from “about to record” to “recording complete”
- Runs quietly in the background—no complex setup needed
-
macOS
-
JSONHelper is required (free)
-
A configured HDHomeRun device from SiliconDust
-
The HDHomeRun device should have a static IP on the network, as we record the IP address of the tuner when we add a show.
-
hdhr_VCR needs access to the following paths:
- ~/Documents/hdhr_VCR.json
- ~/Library/Caches/hdhr_VCR/
- ~/Library/Logs/hdhr_VCR.log
- Download
hdhr_VCR.applescript(latest release). - Open in Script Editor.
- Go to File → Export...
- Save as Application
- Check “Stay open after run handler”
- Move the app to your Applications folder and launch.
- On first run, grant the necessary permissions (macOS will prompt).
- Add: Pick a tuner, pick a channel, pick a show—done.
- Series Recording: Record on specific days, repeats every week.
- Manual Add: Need something outside the guide? Use decimal time (e.g., 18.75 for 6:45pm).
- Run: Resets UI or goes idle.
- Edit/Remove: Click the app in the dock for options.
See below for a visual walkthrough of the process:
- Channel List Selection
- Show Grid / Guide View
- Show Info
- Scans for tuners, fetches lineup and guide.
- Stores settings/data in JSON and AppleScript records.
- Uses
curlfor all network/file transfers. - Prevents sleep with
caffeinateduring recordings. - Shows and device records look like this:
{show_title:"Example", show_time:16, ...}See docs/CODEX_REQUESTS.md for details on the workflow that archives Codex requests automatically after a pull request merges.




