Skip to main content
tuliprox can present itself as one or more virtual HDHomeRun network tuner devices. This lets media servers that support HDHomeRun discovery — including Plex DVR, Emby Live TV, Jellyfin Live TV and TVHeadend — find tuliprox on the network without any manual URL entry.

How HDHomeRun emulation works

When hdhomerun is enabled, tuliprox:
  1. Advertises each virtual device over SSDP (UPnP multicast discovery).
  2. Responds to SiliconDust proprietary discovery (UDP broadcast on port 65001).
  3. Serves the HDHomeRun HTTP API on a dedicated port per device (automatically assigned or explicitly configured).
  4. Exposes a lineup that points to the target’s stream URLs.
Media servers that scan for HDHomeRun devices will find each virtual device and add it as a live TV source.

Configuring hdhomerun in config.yml

Add the hdhomerun block to your config.yml:
config.yml
hdhomerun:
  enabled: true
  auth: false
  ssdp_discovery: true
  proprietary_discovery: true
  devices:
    - name: tuliprox_main
      friendly_name: tuliprox HD
      tuner_count: 4
      port: 5004

Top-level fields

FieldDefaultDescription
enabledfalseEnable HDHomeRun emulation
authfalseRequire lineup authentication
ssdp_discoverytrueAdvertise via SSDP/UPnP multicast
proprietary_discoverytrueRespond to SiliconDust UDP broadcast discovery
devicesList of virtual device definitions

Device fields

FieldDefaultDescription
nameauto-generatedInternal identifier (must be unique)
friendly_nameHDHomeRunDisplay name shown in media servers
manufacturerSiliconDustReported manufacturer string
model_nameHDTC-2USReported model name
model_numberHDTC-2USReported model number
firmware_namehdhomeruntc_atscReported firmware name
firmware_versionReported firmware version
device_idauto-generated8-character hex device ID (auto-generated if empty)
device_udnauto-generatedUUID for UPnP (auto-generated if empty)
device_typeUPnP device type string
portauto-assignedHTTP port for this device’s HDHomeRun API
tuner_count1Number of virtual tuners to report
If device_id or device_udn are left empty, tuliprox generates stable values derived from the device name. Set them explicitly if you need reproducible values across restarts.

Wiring to a target

Add an hdhomerun output to the target in source.yml and reference the device by name:
source.yml
sources:
  - inputs:
      - my_provider
    targets:
      - name: all_channels
        output:
          - type: m3u
          - type: hdhomerun
            device: tuliprox_main
            username: hdhr_user
            use_output: m3u

HDHomeRun output fields

FieldDescription
deviceName of the device defined in the hdhomerun config block
usernameCredential used by the media server when fetching the lineup
use_outputWhich output type to use for stream URLs: m3u or xtream
hdhomerun output must be used together with at least one m3u or xtream output on the same target. Set use_output to match the additional output type you added.

Full example

api:
  host: 0.0.0.0
  port: 8901
  web_root: ./web
storage_dir: ./data
update_on_boot: true
hdhomerun:
  enabled: true
  ssdp_discovery: true
  proprietary_discovery: true
  devices:
    - name: tuliprox_main
      friendly_name: tuliprox HD
      tuner_count: 4
      port: 5004

Discovering the device in media servers

Once tuliprox is running with hdhomerun.enabled: true, media servers on the same network segment will discover it automatically during their next HDHomeRun scan.

Plex

  1. Go to Settings → Live TV & DVR.
  2. Click Set Up Plex DVR.
  3. Plex scans the network for HDHomeRun devices and should list tuliprox HD.
  4. Select it and proceed through the channel scan.

Emby

  1. Go to Dashboard → Live TV.
  2. Click + to add a tuner device.
  3. Select HDHomeRun and click Search.
  4. Emby discovers the virtual device automatically.

Jellyfin

  1. Go to Dashboard → Live TV.
  2. Under Tuner Devices click Add.
  3. Select HDHomeRun as the type.
  4. Leave the URL blank to use auto-discovery, or enter http://192.168.1.41:5004 explicitly.

TVHeadend

  1. Open Configuration → DVB Inputs → TV Adapters.
  2. TVHeadend auto-detects HDHomeRun devices on the LAN.
  3. The virtual tuliprox device should appear as a network adapter.
If auto-discovery does not work, check that the host running tuliprox is on the same broadcast domain as the media server, and that UDP port 65001 is not blocked by a firewall.

Build docs developers (and LLMs) love