So I'm using https://api.hdhomerun.com/discover to discover devices on my network and for me this essentially translates into https://ipv4-api.hdhomerun.com/discover which is working great. But there's also https://ipv6-api.hdhomerun.com/discover which for me does not work but I know for others it does where's https://ipv4-api.hdhomerun.com/discover instead gives an empty result.
I'm guessing this comes down to using ipv4 or ipv6 from the internet provider but how does this all add up? Shouldn't the two produce the same result? And for me as a developer, how should I handle this? Should I always poll the result from both requests and combine them?
Thanks!
Discovering with ipv4 vs ipv6
Re: Discovering with ipv4 vs ipv6
These APIs should not be used for an app - you should instead do a local LAN discover using the hdhomerun_discover API that is part of libhdhomerun. For platforms that can't run C code let me know and I will help.
If you do use these APIs for playing around you should pull both ipv4 and ipv6 results and combine the list. Then pull [base url]/discover.json for each device to see if the device is really there.
Nick
If you do use these APIs for playing around you should pull both ipv4 and ipv6 results and combine the list. Then pull [base url]/discover.json for each device to see if the device is really there.
Nick
Re: Discovering with ipv4 vs ipv6
Oh, I did not know that. I'm using api.hdhomerun syntax also for getting account information and getting xmltv data for DVR subscription. Is this also deprecated in favor of libhdhomerun library? No, I don't use C-code so you're welcome to give me some tips. I guess that involves building libhdhomerun for my platform?
Re: Discovering with ipv4 vs ipv6
Once you have the DeviceAuth from the local devices than you use the api.hdhomerun APIs for anything guide/service related such as account and xmltv.
The big problem with the ipv4/ipv6 web based discover is that is doesn't work for all people, typically due to carrier grade NAT.
The big problem with the ipv4/ipv6 web based discover is that is doesn't work for all people, typically due to carrier grade NAT.
Re: Discovering with ipv4 vs ipv6
I understand. I remember you told me in a previous post that you recommended either libhdhomerun or ssdp. Is ssdp an alternative (since it sounds like less work to get discovery working) or is it better to use libhdhomerun right away?
Do you have a link or guide on how to compile libhdhomerun for Android platform?
Do you have a link or guide on how to compile libhdhomerun for Android platform?
Re: Discovering with ipv4 vs ipv6
So I tried the ssdp discovery and I am unable to find the storage engine using this. Should the storage engine not respond to ssdp broadcasts? Maybe libhdhomerun is the way to go.
Re: Discovering with ipv4 vs ipv6
You only need the discover part of libhdhomerun...
hdhomerun_discover.c
hdhomerun_os_posix.c
hdhomerun_pkt.c
hdhomerun_sock.c
hdhomerun_sock_posix.c
hdhomerun_sock_netlink.c
hdhomerun_discover.c
hdhomerun_os_posix.c
hdhomerun_pkt.c
hdhomerun_sock.c
hdhomerun_sock_posix.c
hdhomerun_sock_netlink.c
Re: Discovering with ipv4 vs ipv6
Thanks. And you don't maintain and share a jni implementation for libhdhomerun?
Re: Discovering with ipv4 vs ipv6
It seem to be working. I also needed "hdhomerun_debug.c" since "hdhomerun_discover.c" contained a reference to it. But I think I will be using the entire lib anyway since I might use more of it in the future.
Only issue is that I can't get it to work inside the Android emulator. I guess this is a network issue but do you have any tips for getting this to work?
Only issue is that I can't get it to work inside the Android emulator. I guess this is a network issue but do you have any tips for getting this to work?