# HDHomeRun Emulator

**URL:** <https://forums.plex.tv/t/hdhomerun-emulator/156498>\
**Category:** General Discussions\
**Created:** [September 1, 2016, 3:11pm UTC](https://forums.plex.tv/t/hdhomerun-emulator/156498 "2016-09-01T15:11:27Z")\
**Posts on this page:** 20\
**Page:** 1

<div class="post-metadata">

**Author:** ![bentech](https://sea1.discourse-cdn.com/plex/user_avatar/forums.plex.tv/bentech/32/160548_2.png) [@bentech](https://forums.plex.tv/u/bentech)\
**Post date:** [September 1, 2016, 3:11pm UTC](https://forums.plex.tv/t/hdhomerun-emulator/156498/1 "2016-09-01T15:11:27Z")

</div>

Hi,

Does anyone know of any projects which emulate the HDHomeRun protocol?

I have a Hauppauge card on Linux and it would be great to use it with the new DVR feature

---

<div class="post-metadata">

**Author:** ![davidf95](https://avatars.discourse-cdn.com/v4/letter/d/5f9b8f/32.png) [@davidf95](https://forums.plex.tv/u/davidf95)\
**Post date:** [September 1, 2016, 9:33pm UTC](https://forums.plex.tv/t/hdhomerun-emulator/156498/2 "2016-09-01T21:33:54Z")

</div>

I would like this answer too. I have Windows 7 using WMC and just ordered the Hauppauge WinTV-quadHD the day before I received an email about this new feature. This card has 4 tuners. I haven’t even received it n the mail yet. Wondering if I can return it for a trade-in on a HDHomeRun if I have to.

---

<div class="post-metadata">

**Author:** ![ShottotheDome](https://avatars.discourse-cdn.com/v4/letter/s/3be4f8/32.png) [@ShottotheDome](https://forums.plex.tv/u/ShottotheDome)\
**Post date:** [September 2, 2016, 10:22pm UTC](https://forums.plex.tv/t/hdhomerun-emulator/156498/3 "2016-09-02T22:22:54Z")

</div>

I have not seen any yet but i wouldn’t be surprised to see one pop up

---

<div class="post-metadata">

**Author:** ![iPhonedation](https://sea1.discourse-cdn.com/plex/user_avatar/forums.plex.tv/iphonedation/32/82088_2.png) [@iPhonedation](https://forums.plex.tv/u/iPhonedation)\
**Post date:** [September 5, 2016, 8:43pm UTC](https://forums.plex.tv/t/hdhomerun-emulator/156498/4 "2016-09-05T20:43:55Z")

</div>

Would anyone be willing to log what PMS does towards the HdHomerun? I assume it is calling some XML/Json API with URLs. So if we have that and know how the stream is sent to PMS for recording - we could probably mimic this and create a wrapper for tools like tvheadend, VDR or even a SatIP server like Minisatip/Satpi.

Just my 2 cents …

---

<div class="post-metadata">

**Author:** ![henrik\_uhrenfeldt.dk](https://avatars.discourse-cdn.com/v4/letter/h/b4bc9f/32.png) [@henrik\_uhrenfeldt.dk](https://forums.plex.tv/u/henrik_uhrenfeldt.dk)\
**Post date:** [September 6, 2016, 8:37pm UTC](https://forums.plex.tv/t/hdhomerun-emulator/156498/5 "2016-09-06T20:37:51Z")

</div>

Check this: [https://github.com/vdomin/HDHRProxyIPTV](https://github.com/vdomin/HDHRProxyIPTV)

…haven’t tried it though. I have a Terratec DVB-C card and would love to see this support the Plex DVR feature as well.

---

<div class="post-metadata">

**Author:** ![iPhonedation](https://sea1.discourse-cdn.com/plex/user_avatar/forums.plex.tv/iphonedation/32/82088_2.png) [@iPhonedation](https://forums.plex.tv/u/iPhonedation)\
**Post date:** [September 7, 2016, 6:50am UTC](https://forums.plex.tv/t/hdhomerun-emulator/156498/6 "2016-09-07T06:50:09Z")

</div>

henrik, thanks! That is from the guy that posted Youtube videos in 2010… I am not sure if this is the API plex uses,… from what I read in thread it seems to be a modern restful API they call. Maybe also an explanation why not every model of HDHR hardware is supported - just only the ones that have the restful API implemented.

I started to look into what is called by plex, but of course without hardware I will get nowhere. The autodiscover is a broadcast ssdp package. The direct IP/Hostname “ping” is a call of [IP-ADRESS]/discover.json

So what is required here is access to hardware and/or some wireshark log of the whole connection and so on. Than later also a tuning (requesting a .ts/.mkv h264) stream as well as potential EPG calls.

Or - the plex guys just give us docu/info and we can build on that 🙂

---

<div class="post-metadata">

**Author:** ![stedaniels](https://sea1.discourse-cdn.com/plex/user_avatar/forums.plex.tv/stedaniels/32/81985_2.png) [@stedaniels](https://forums.plex.tv/u/stedaniels)\
**Post date:** [October 21, 2016, 10:22am UTC](https://forums.plex.tv/t/hdhomerun-emulator/156498/7 "2016-10-21T10:22:15Z")

</div>

This was one of my first thoughts too, been trying to dig up the documentation since the first Plex DVR announcement!

---

<div class="post-metadata">

**Author:** ![stedaniels](https://sea1.discourse-cdn.com/plex/user_avatar/forums.plex.tv/stedaniels/32/81985_2.png) [@stedaniels](https://forums.plex.tv/u/stedaniels)\
**Post date:** [October 21, 2016, 11:05am UTC](https://forums.plex.tv/t/hdhomerun-emulator/156498/8 "2016-10-21T11:05:40Z")

</div>

Here is a fairly simple [HDHR assistant PHP app for a Synology NAS](https://github.com/goyney/hdhr-assistant) that connects to the HDHR and uses discover.json in [Library.php](https://github.com/goyney/hdhr-assistant/blob/master/Library.php)

`$discovery = file_get_contents('http://'.$this->config['hdhr'].'/discover.json');`

From a brief skim read, the discover.json points to a lineup.json, which itself is documented in [HDHR’s http development PDF](https://www.silicondust.com/hdhomerun/hdhomerun_http_development.pdf)

The format of the JSON files can be discerned from HDHR Assistant, we then need a bit of server side code listening for HTTP requests, and then proxying the request to either a TS stream from a USD/PCI device, or a TS stream from some other source, i.e. an IPTV service / headend.

So on port 5004 we need to provide:

/discover.json  
/lineup.json  
/auto/vXX.XX (ish) which then maps the XX.XX to a TS stream and pipes it out over HTTP.

This might all be the old way of doing things though. Time will tell.

There appears to be lots of ways to grab the stream from later versions of the HDHR’s… [https://www.silicondust.com/hdhomerun/hdhomerun\_tech.pdf](https://www.silicondust.com/hdhomerun/hdhomerun_tech.pdf)  
It’s got unicast and multicast available no doubt. Just no idea what the PlexDVR is looking for.

---

<div class="post-metadata">

**Author:** ![stedaniels](https://sea1.discourse-cdn.com/plex/user_avatar/forums.plex.tv/stedaniels/32/81985_2.png) [@stedaniels](https://forums.plex.tv/u/stedaniels)\
**Post date:** [October 21, 2016, 11:56am UTC](https://forums.plex.tv/t/hdhomerun-emulator/156498/9 "2016-10-21T11:56:58Z")

</div>

Looks like someone beat me to it!

> **[jkaberg/tvhProxy](https://github.com/jkaberg/tvhProxy)**
>
> tvhProxy - An small flask app to help Plex DVR connect with Tvheadend

  
This is a lightweight python proxy that makes Tvheadend look like an HDHomeRun.  
I found it on the VDR forums, and a snapshot on pastebin simultaneously.  
[http://www.vdr-portal.de/index.php?page=Thread&postID=1278672](http://www.vdr-portal.de/index.php?page=Thread&postID=1278672)  
[http://pastebin.com/7gE1xeUX](http://pastebin.com/7gE1xeUX)  
Going to try it tonight.

---

<div class="post-metadata">

**Author:** ![dragonmel](https://avatars.discourse-cdn.com/v4/letter/d/71c47a/32.png) [@dragonmel](https://forums.plex.tv/u/dragonmel)\
**Post date:** [October 22, 2016, 11:34am UTC](https://forums.plex.tv/t/hdhomerun-emulator/156498/10 "2016-10-22T11:34:48Z")

</div>

I have an earlier version of HDHR-US dual atsc tuner that is not supported… Any idea if there are solutions for this as well?

Hopefully plex will include support for these as well… I would have to assume it uses a very similar protocol

---

<div class="post-metadata">

**Author:** ![iPhonedation](https://sea1.discourse-cdn.com/plex/user_avatar/forums.plex.tv/iphonedation/32/82088_2.png) [@iPhonedation](https://forums.plex.tv/u/iPhonedation)\
**Post date:** [October 22, 2016, 3:44pm UTC](https://forums.plex.tv/t/hdhomerun-emulator/156498/11 "2016-10-22T15:44:12Z")

</div>

> @stedaniels said:  
> Looks like someone beat me to it!  
> [GitHub - jkaberg/tvhProxy: An small flask app to help Plex DVR connect with Tvheadend](https://github.com/jkaberg/tvhProxy)  
> This is a lightweight python proxy that makes Tvheadend look like an HDHomeRun.  
> I found it on the VDR forums, and a snapshot on pastebin simultaneously.  
> [Aufnahmen automatisch verarbeiten (recode, Plex, etc.) - Capturen - Digitalisieren - Aufnehmen - VDR Portal](http://www.vdr-portal.de/index.php?page=Thread&postID=1278672)  
> [http://pastebin.com/7gE1xeUX](http://pastebin.com/7gE1xeUX)  
> Going to try it tonight.

Yes, @jkaberg programmed the tvh proxy a while ago. The VDR proxy is done by seahawks and @gdachs and works as well, I am currently trying to optimize my setup with a bunch of docker containers.

@dragonmel if the older hdhr is support by either tvh or vdr, you can probably use one of the proxies with it, yes.

---

<div class="post-metadata">

**Author:** ![jkaberg](https://avatars.discourse-cdn.com/v4/letter/j/90db22/32.png) [@jkaberg](https://forums.plex.tv/u/jkaberg)\
**Post date:** [October 22, 2016, 8:09pm UTC](https://forums.plex.tv/t/hdhomerun-emulator/156498/12 "2016-10-22T20:09:57Z")

</div>

Fun fact: vdrProxy is based upon tvhProxy 🙂

Let me know how it goes. It works flawless here.

---

<div class="post-metadata">

**Author:** ![gdachs](https://sea1.discourse-cdn.com/plex/user_avatar/forums.plex.tv/gdachs/32/10501_2.png) [@gdachs](https://forums.plex.tv/u/gdachs)\
**Post date:** [October 24, 2016, 3:00pm UTC](https://forums.plex.tv/t/hdhomerun-emulator/156498/13 "2016-10-24T15:00:00Z")

</div>

@jkaberg: yes, of course. You made a nice job!

Gerald

---

<div class="post-metadata">

**Author:** ![gdachs](https://sea1.discourse-cdn.com/plex/user_avatar/forums.plex.tv/gdachs/32/10501_2.png) [@gdachs](https://forums.plex.tv/u/gdachs)\
**Post date:** [October 24, 2016, 3:14pm UTC](https://forums.plex.tv/t/hdhomerun-emulator/156498/14 "2016-10-24T15:14:22Z")

</div>

@jkaberg: what about to let the proxy listen on port 443 too? So that there is no need for nginx.

Next step could be to put it into a docker container.

Gerald

---

<div class="post-metadata">

**Author:** ![jkaberg](https://avatars.discourse-cdn.com/v4/letter/j/90db22/32.png) [@jkaberg](https://forums.plex.tv/u/jkaberg)\
**Post date:** [October 24, 2016, 4:15pm UTC](https://forums.plex.tv/t/hdhomerun-emulator/156498/15 "2016-10-24T16:15:15Z")

</div>

@gdachs thats easy enough, just create mulitple versions of tvhProxy.py but change the port to 80 in the second one

I don’t think Plex communicates with HDHR on port 443, as its hardcoded to port 80 and 5004

---

<div class="post-metadata">

**Author:** ![gdachs](https://sea1.discourse-cdn.com/plex/user_avatar/forums.plex.tv/gdachs/32/10501_2.png) [@gdachs](https://forums.plex.tv/u/gdachs)\
**Post date:** [October 24, 2016, 4:27pm UTC](https://forums.plex.tv/t/hdhomerun-emulator/156498/16 "2016-10-24T16:27:50Z")

</div>

Sorry, my fault. I mixed it up, and you are right with two instances. Only a little bit ugly.

Gerald

---

<div class="post-metadata">

**Author:** ![jsviverette](https://sea1.discourse-cdn.com/plex/user_avatar/forums.plex.tv/jsviverette/32/182805_2.png) [@jsviverette](https://forums.plex.tv/u/jsviverette)\
**Post date:** [October 24, 2016, 10:26pm UTC](https://forums.plex.tv/t/hdhomerun-emulator/156498/17 "2016-10-24T22:26:45Z")

</div>

anyone got a docker container or a good guide on how to set this up?

---

<div class="post-metadata">

**Author:** ![rogueosb](https://sea1.discourse-cdn.com/plex/user_avatar/forums.plex.tv/rogueosb/32/84098_2.png) [@rogueosb](https://forums.plex.tv/u/rogueosb)\
**Post date:** [October 26, 2016, 6:21pm UTC](https://forums.plex.tv/t/hdhomerun-emulator/156498/18 "2016-10-26T18:21:59Z")

</div>

If there’s any NextPVR users, I have modified tvhProxy to work with it:

[github.com/rogueosb/npvrProxy](https://github.com/rogueosb/npvrProxy "https://github.com/rogueosb/npvrProxy")

---

<div class="post-metadata">

**Author:** ![gdachs](https://sea1.discourse-cdn.com/plex/user_avatar/forums.plex.tv/gdachs/32/10501_2.png) [@gdachs](https://forums.plex.tv/u/gdachs)\
**Post date:** [October 27, 2016, 12:42pm UTC](https://forums.plex.tv/t/hdhomerun-emulator/156498/19 "2016-10-27T12:42:49Z")

</div>

Working on the vdrProxy has shown me that the current interface between the Plex-DVR and the Hdhomerun has a major flaw.  
If you have 2 tuners you can record 2 channels, but VDR and TVH can record many more channels with 2 tuners. With two tuners you get 2 transponders and every transponder has more than one channel. It would have been much better if the Plex-DVR would use the SAT\>IP protocol that gives access to the whole transponder. With minisatip the setup would get even much more easy than with VDR, or TVH. But maybe the Hdhomerun is too weak for streaming the whole transponder. So there might be financial/political reasons for this approach.

Gerald

---

<div class="post-metadata">

**Author:** ![bretswinney](https://avatars.discourse-cdn.com/v4/letter/b/f05b48/32.png) [@bretswinney](https://forums.plex.tv/u/bretswinney)\
**Post date:** [November 5, 2016, 10:39pm UTC](https://forums.plex.tv/t/hdhomerun-emulator/156498/20 "2016-11-05T22:39:42Z")

</div>

Does anyone have some good instructions for setting this up?

[Next page](https://forums.plex.tv/t/hdhomerun-emulator/156498.md?page=2)
