I’ve been using the DVR feature of Plex since the first beta version, and it replaced an aging Mac+EyeTV setup I was using before. Bought a HDHomeRun device, and I’ve been pretty happy with the setup since the beginning.

The main issue I have with the DVR feature is the EPG. For one of the channel I record a lot from (Télé-Québec), the EPG data is very bad. It’s missing a lot of shows (it has holes), and shows will sometimes start at a different time in the EPG than in reality, making me miss a few minutes at the beginning of the end of the shows I record, or complete episodes.
I reported the issues to Plex, but there hasn’t been any improvements since I did.

So I went looking for a way to schedule a recording “manually”. i.e. specify a channel and start/stop times, and have Plex record that. I quickly realized it was just not possible. So I started looking outside Plex for a solution.

It appears recording from a HDHomeRun device is quite easy. One simply needs to use curl from the command line (or wget or anything that can download a file using an URL!), indicating the channel to use, and optionally a duration and transcoding settings, and boom, you receive a transport-stream (.ts) from the device.

The URL to use is:

1
http://hdhomerun_device_ip_address:5004/auto/vX.Y/?duration=Z&transcode=PROFILE

where X.Y is the channel to record, Z is the duration in seconds, and PROFILE is one of the supported transcoding profiles of your device (native, mobile, heavy, etc.)

Being a programmer, and wanting something I could easily use long-term, I took a few hours to throw together a PHP-based app that allows one to schedule recordings, and have them placed wherever they want. It works by specifying the schedule in a .txt file, and can also be used though a very simple web UI, if you have a web-server to serve .php files with.

The thing, called HDHomeRun Plain-Text Scheduler, is on Github, if anyone is interested.

PR / issues / comments are welcome, evidently.