A simple web-based DVR application for HDHomeRun tuners that allows you to schedule and view TV recordings.
- Schedule TV recordings from available channels
- View and manage scheduled recordings
- Download completed recordings
- HTTP Range support for streaming recordings to VLC and other media players
- SQLite database for storing recording schedules
- Configurable storage directory via environment variable
- HDHomeRun tuner connected to your network
- Go 1.16+ installed
- ffmpeg installed and in PATH
git clone https://github.com/prziborowski/hdhr-dvr.git
cd hdhr-dvr
go build./hdhr-dvr
STORAGE_DIR=/your/custom/path ./hdhr-dvr
- STORAGE_DIR: Directory where recordings will be stored (default: /data/Storage/record)
The application uses SQLite for storing recording schedules. The database file (recordings.db) will be created automatically in the application directory.
- Access the web interface at http://localhost:8080
- Select a channel from the dropdown
- Choose a date using the calendar
- Set the start time and duration
- Click "Schedule Recording"
- View scheduled recordings in the list below
- Download completed recordings using the provided links
GET /api/channels- List available channelsPOST /api/recordings- Create a new recording
{
"channelId": "12345",
"date": "2026-01-01",
"startTime": "19:00",
"duration": 60
}
DELETE /api/recordings/{id}- Delete a recordingGET /api/recordings/{id}/file- Download a recording file
go run app.go
MIT