This web server emulates a SiliconDust HDHomeRun by its HTTP API for use with Plex's DVR feature. It is designed for use with HLS .m3u8 streams, although any input format accepted by ffmpeg
should work.
- Multiple channels
- XMLTV file generation (it just creates a generic 24/7 programme for each available channel)
A prebuilt Docker image is available for use.
linux/amd64
linux/arm64
linux/arm/v7
Please refer to the sample Docker Compose file for a more seamless setup.
Please note that the following files need to be present in the same directory (see examples in the repository).
config.json
channels.json
services:
plex-dvr-hls:
image: ghcr.io/duncanleo/plex-dvr-hls:latest
volumes:
- type: bind
source: './config.json'
target: '/app/config.json'
read_only: true
- type: bind
source: './channels.json'
target: '/app/channels.json'
read_only: true
ports:
- '5004:5004'
- Download a binary release from GitHub, or clone the repository and compile on your machine (e.g. with
GOOS=linux GOARCH=amd64 go build -o plex-dvr-hls-linux-amd64 cmd/main.go
) - Create a
config.json
in the working directory and fill in the necessary.- Possible values for
encoder_profile
arevaapi
,video_toolbox
,omx
andcpu
. A sampleconfig.example.json
is available on GitHub.
- Possible values for
- Create a
channels.json
and fill in the necessary.- A sample
channels.example.json
is available on GitHub.
- A sample
- Copy the
templates
folder from this repository into the working directory (alongside the two JSON files) - Add the server to the Plex DVR e.g.
http://<ip of machine>:5004
.- When prompted for an Electronic Programme Guide, you can either use one if it's available, or use the auto-generated one by entering
http://<ip of machine>:5004/xmltv
- When prompted for an Electronic Programme Guide, you can either use one if it's available, or use the auto-generated one by entering
- Clone the repo
- Run
go mod download
- To run the server, run
go run cmd/main.go