Jump to content

Emby with Live DirectTV possible?


Anthony24
 Share

Recommended Posts

Possibly. We have plugins for a number of other applications that might support it. For example:

 

- ServerWmc

- NextPvr

- TvHeadEnd

 

and a few others. So if those applications support it, which I imagine they do, then you can setup that application, use the emby plugin for that app, and then you're good. If you have a computer with windows media center then ServerWmc is the easiest because it just piggybacks off of that.

Link to comment
Share on other sites

Possibly. We have plugins for a number of other applications that might support it. For example:

 

- ServerWmc

- NextPvr

- TvHeadEnd

 

and a few others. So if those applications support it, which I imagine they do, then you can setup that application, use the emby plugin for that app, and then you're good. If you have a computer with windows media center then ServerWmc is the easiest because it just piggybacks off of that.

 

Still new to plugins like SeverWMC and the others, once installed, of course its not gonna work just like that but in the settings where it says ServerWMC IP/Name: "localhost", do I add the IP address of the Direct TV? me n my family has HD Genie, 2 boxes are HDDVR and 1 is HD Box.

 

Just a little lost on how to start streaming live tv to emby.

 

ps, do I need a tuner card & or box along with the direct tv box, as well? if so, which one is the best for HD?

Edited by Anthony24
Link to comment
Share on other sites

  • 2 weeks later...

Possibly. We have plugins for a number of other applications that might support it. For example:

 

- ServerWmc

- NextPvr

- TvHeadEnd

 

and a few others. So if those applications support it, which I imagine they do, then you can setup that application, use the emby plugin for that app, and then you're good. If you have a computer with windows media center then ServerWmc is the easiest because it just piggybacks off of that.

 

 

 

Luke? you still active?

Link to comment
Share on other sites

Hi, sorry. For our built in tv support you would need an HD Homerun tuner device. You might want to take a look at our Live TV wiki here:

 

https://github.com/MediaBrowser/Wiki/wiki/Live%20TV

 

Additional support for other sources can be added via plugins, which you can read about here:

 

https://github.com/MediaBrowser/Wiki/wiki/Live-TV-Plugins

 

Whatever is supported by those external software programs would be usable in Emby.

Link to comment
Share on other sites

Hi, sorry. For our built in tv support you would need an HD Homerun tuner device. You might want to take a look at our Live TV wiki here:

 

https://github.com/MediaBrowser/Wiki/wiki/Live%20TV

 

Additional support for other sources can be added via plugins, which you can read about here:

 

https://github.com/MediaBrowser/Wiki/wiki/Live-TV-Plugins

 

Whatever is supported by those external software programs would be usable in Emby.

 

 

I mean for DirectTV since HDHomeruner Tuner is Cable only so that's out of the question. Any device meant for Direct TV to work for emby so i can be able to use 

- ServerWmc

- NextPvr

- TvHeadEnd

 

ask for IP but i'm guessing thats for a device thats connected to the box which i have none.

Link to comment
Share on other sites

Still new to plugins like SeverWMC and the others, once installed, of course its not gonna work just like that but in the settings where it says ServerWMC IP/Name: "localhost", do I add the IP address of the Direct TV? me n my family has HD Genie, 2 boxes are HDDVR and 1 is HD Box.

 

Just a little lost on how to start streaming live tv to emby.

 

ps, do I need a tuner card & or box along with the direct tv box, as well? if so, which one is the best for HD?

the emby tv plugins all require other backend software to be running in addition to emby, the ip address will be to interface with the correponding backend service.

 

first you need to see which of these backend services will work for you (depening on operating systems and your tv tuners) , then set the backend up so that it is working , then you install and setup the emby tv plugin.

Link to comment
Share on other sites

the emby tv plugins all require other backend software to be running in addition to emby, the ip address will be to interface with the correponding backend service.

 

first you need to see which of these backend services will work for you (depening on operating systems and your tv tuners) , then set the backend up so that it is working , then you install and setup the emby tv plugin.

 

first you need to see which of these backend services will work for you (depening on operating systems)

Well the OS is going to be probably Windows 7 to be the easy part.

 

Your TV Tuners

That's the hard part, what can I use for DIRECTTV???!!!!!

 

After that I can worry about the backend setup later, then the emby plugin, but until then, what could I use that will work for of WHAT tv tuners that can work with direct tv, I don't have much money and don't want to throw money here n there for stuff that won't work.

 

Sry, not trying to be rude or anything.

 

Has anyone been successful on doing this with what tuner and setup what I'm really asking for, for satilite direct tv and not devices for just compatible for cable only like hdhome runner is. Not Capatible for satilite, I'm stuck with direct tv for life, so I can't just get rid of it just like that.

 

If Cable had more channels at the time of 2003 in my area then there wouldn't be a problem and I would have bought the hdhome runner already. But since that is not the case, I need help for satilite and I'm probably not the only one asking the same thing from around the world.

Link to comment
Share on other sites

You would find more help in that regard if you ask in the support areas of the mentioned backend, ie for windows ask in the next PVR or server wmc support forums

Link to comment
Share on other sites

Koleckai Silvestri

DirecTV signals are encrypted and DRMed. They are decoded with the key embedded in your box's authorization card. I am also pretty sure all of their channels are flagged as Copy-None. They would have to support the Cable Card standard to get their information usable on software outside their ecosystem. However they are not required by Congress to support it like Cable companies are.

 

Someone may be able to hack their on-demand streams for their various apps. I don't think anyone has cracked Silverlight streaming yet though. If they do, it isn't legal.

Edited by Koleckai Silvestri
  • Like 1
Link to comment
Share on other sites

Yeah, there is no way to pull satellite TV into your PC outside of using a HDMI capture card which probably still wouldn't do you any good thanks to DRM and HDCP.  Satellite doesn't have to follow the same FCC mandated guidelines for Cable Card etc that cable companies do.  

 

You're only choice to use LiveTV functionality of any type is to ditch satellite and get cable, or use an OTA tuner and pull in your local channels via an antenna.

Link to comment
Share on other sites

  • 5 years later...

I was able to use a H.264/H.265 HDMI to network encoder to strip the DRM and convert my DirecTV STB HDMI output to a HLS stream via IP HTTP (.m3u8). I was then easily able to add a LiveTV M3U tuner to my Emby server and create a .m3u file containing all my DirecTV channels (all mapped to the same HLS stream IP path of the H.265 encoder). Including the individual tags for  tvg-id="<channelname>" tvg-chno="<channelnumber>" in the m3u file even correctly automatically mapped the channels and successfully downloaded the EPG using the "Emby Guide Data" as my provider. Everything works great and Emby plays the stream from the encoder, except I can't figure out how to get Emby to trigger a channel change on the DirecTV STB via my network using DirecTV SHEF (http command to the STB) when I select a channel and Emby opens the stream. I successfully confirmed using a browser (or even replacing the http stream address with the http SHEF command for a channel in the m3u file and selecting the channel with Emby) with http://<DirecTVReceiverIP>:8080/tv/tune?major=278 will change the STB channel to 278.

Does anyone know of a way for Emby to sent the http SHEF command (http://<DirecTVReceiverIP>:8080/tv/tune?major=<channelnumber>) before connecting to the .m3u8 stream? Or to configure redundant/alternate streams so it could first attempt to connect a stream to the SHEF path (http://<DirecTVReceiverIP>:8080/tv/tune?major=<channelnumber>) - which would fail to connect but would successfully change the channel on the STB, and then after connect to the alternate stream (the correct .m3u8 path)?

I know there are third party Emby add-ons that would work for this if I set up an additional server (such as TVHeadEnd), but I'd like to try get a fully functional solution within Emby (or at least without setting up a second media server) if at all possible. I am thinking others with networked IR blasters may be attempting or requiring this same "channel change via network trigger" functionality. I'm new to Emby so am still researching, any suggestions and ideas are appreciated!

Edited by CJTripper
added encoder detail
Link to comment
Share on other sites

On 3/27/2021 at 4:13 AM, CJTripper said:

I was able to use a H.264/H.265 HDMI to network encoder to strip the DRM and convert my DirecTV STB HDMI output to a HLS stream via IP HTTP (.m3u8). I was then easily able to add a LiveTV M3U tuner to my Emby server and create a .m3u file containing all my DirecTV channels (all mapped to the same HLS stream IP path of the H.265 encoder). Including the individual tags for  tvg-id="<channelname>" tvg-chno="<channelnumber>" in the m3u file even correctly automatically mapped the channels and successfully downloaded the EPG using the "Emby Guide Data" as my provider. Everything works great and Emby plays the stream from the encoder, except I can't figure out how to get Emby to trigger a channel change on the DirecTV STB via my network using DirecTV SHEF (http command to the STB) when I select a channel and Emby opens the stream. I successfully confirmed using a browser (or even replacing the http stream address with the http SHEF command for a channel in the m3u file and selecting the channel with Emby) with http://<DirecTVReceiverIP>:8080/tv/tune?major=278 will change the STB channel to 278.

Does anyone know of a way for Emby to sent the http SHEF command (http://<DirecTVReceiverIP>:8080/tv/tune?major=<channelnumber>) before connecting to the .m3u8 stream? Or to configure redundant/alternate streams so it could first attempt to connect a stream to the SHEF path (http://<DirecTVReceiverIP>:8080/tv/tune?major=<channelnumber>) - which would fail to connect but would successfully change the channel on the STB, and then after connect to the alternate stream (the correct .m3u8 path)?

I know there are third party Emby add-ons that would work for this if I set up an additional server (such as TVHeadEnd), but I'd like to try get a fully functional solution within Emby (or at least without setting up a second media server) if at all possible. I am thinking others with networked IR blasters may be attempting or requiring this same "channel change via network trigger" functionality. I'm new to Emby so am still researching, any suggestions and ideas are appreciated!

Hi, you can stop and choose a different channel, right?

Link to comment
Share on other sites

Yes, I can exit the channel (stream) and select a different channel (same stream) in Emby - each channel is listed separately in Emby and EPG works correctly. The channels are listed/linked separately in the .m3u file linked to the M3U tuner, but all use the same HLS stream path:

#EXTM3U
#EXTINF:-1 tvg-id="HSTRYHD" tvg-chno="269"
http://192.168.0.200/H265_720P.ts
#EXTINF:-1 tvg-id="DSCHD" tvg-chno="278"
http://192.168.0.200/H265_720P.ts
#EXTINF:-1 tvg-id="HBOHD" tvg-chno="501"
http://192.168.0.200/H265_720P.ts

What I need is to trigger the channel to change on the Directv receiver when I select a different channel in Emby. For example, if I select the history channel I need Emby to send http://192.168.0.205:8080/tv/tune?major=269 to change the DirecTV receiver to channel 269, then to connect to the http://192.168.0.200/H265_720P.ts to receive the stream. (192.168.0.205 is the DirecTV receiver and 192.168.0.200 is the HDMI to network media encoder device/stream).

It is interesting that if I substitute the HLS steam path in the M3U file with the DTV SHEF command (http://192.168.0.205:8080/tv/tune?major=269), when I select the channel in Emby the code gets sent to the receiver and the channel changes successfully on the receiver...but of course then Emby doesn't have a valid path to the stream to view the stream.

Is there any way to have a "pre-processing" field for each channel that could send the http header code to change the receiver channel via network hhtp command. If it could use the channel number variable, something like this would work for all channels for DTV SHEF channel changing: http://192.168.0.205:8080/tv/tune?major=%tvg-chno%

I found the Scripter-X plugin today and am researching it. I am thinking there might be a way to use the "onPlaybackStart" and "onLiveTVRecordingStart" actions to detect a channel change and trigger a script or web:post command to send the channel change http code to the receiver when a LiveTV channel is selected. If I have a chance to make progress with Scripter-X, I will post an update.

An additional Emby "pre-processing" field in the M3U tuner section (if channel number variable can be used), or even a "pre-processing" field to manually enter for each individual channel would allow channel change http code to be sent to network attached Satellite receivers/STBs and network attached IR Blasters. This could potentially open up the M3U Tuner feature of your product to be compatible with any STB source that has a HDMI output and network or IR channel changing by simply adding hardware: a HDMI to IP encoder and network/wifi IR controller/blaster. In case anyone is wondering what is removing the DRM from the HDMI signal, the H.265 HDMI to IP encoder I am using is made by URayTech: HEVC H.265 /H.264 HDMI Video Encoder with HDMI Loop Out - URayTechnologyCo,.Ltd (szuray.com)

Edited by CJTripper
Link to comment
Share on other sites

I got my DirecTV receiver to change channels when recording with the Emby DVR! Select the program from the Emby LiveTV guide and hit record, the channel changes on the DTV receiver and the M3U HLS stream records to the Emby DVR.

I managed to successfully use Scripter-X to change channels on the DirecTV receiver for recording. I was able to use the %recording.channel.number% parameter from the "OnLiveTVRecordingStart" action in Scripter-X to pass the Channel Number and send the DTV SHEF http command.

If your Emby server is running on Linux, you can call a .sh script with the /bin/bash interpreter and pass the %recording.channel.number% to the script. Your script can use the curl command with hardcoded path and the parameter passed to it to send the SHEF code to the DTV receiver IP: curl http://192.168.0.205:8080/tv/tune?major=$1

If your Emby server is running on Windows, call a .cmd script with the cmd interpreter and pass the %recording.channel.number% to the script. Your .cmd script can also use the curl command with hardcoded path and the parameter passed to it to send the SHEF code to the DTV receiver IP: curl http://192.168.0.205:8080/tv/tune?major=%1

If you are running Emby on a NAS with a modified Linux OS, you can either figure out how to get bash loaded on it (check out Entware), or can leverage the web server functionality of the NAS and do some PHP scripting. I used a web:post interpreter to run a PHP file from my web server, utilizing a .json file to pass an array of parameters to the PHP script. In the PHP script just set your SHEF command as a variable and send it:

$SHEFurl = "http://192.168.0.205:8080/tv/tune?major=".$json_data_object[chnum];

$lines = file($SHEFurl);

See Anthony's PHP and .json code here for more detail on how the parameters are passed: Flexible, customisable webhooks with Emby Scripter-X - Plugins - Emby Community

Great work and many thanks to Anthony Musgrove for his excellent work on Scripter-X and sharing his example code. I couldn't have done it without his examples, I haven't written code in over 20 years! I now know a little php...very little.

These solutions should also work for anyone with a networked IR Blaster that can accept channel changes via HTTP. Again, your satellite receiver/set top/cable box would just have a single HLS stream coming from it (via HDMI to IP hardware encoder device (also strips the DRM - encryption) to a Emby .m3u tuner)

------------------------------

Now I just need to figure out how to get/change the channel number when viewing/selecting channels (not recording). The Scripter-X "onPlaybackStart" action doesn't have a %channel.number% parameter for me to pass. The best I could find is the %item.type% and %item.name% which passes "LiveTvChannel" and the channel call sign. If I can't find another way to send the channel number parameter from Scripter-X, I'll likely have to send the Call Sign parameter to a PHP script and have a table or array to cross reference the call signs to the channel numbers to use in the SHEF channel change command. For now, I guess I can just record everything I want to watch.

Link to comment
Share on other sites

Ok yes in the core Emby Server, there's no way to do this, but I'm glad to see that you found a solution. Thanks for the feedback.

Link to comment
Share on other sites

Success on channel changing the DirecTV receiver via Emby Live TV playback (not recording). I used Scripter-X "onPlaybackStart" (filtered by %item.type%=LiveTvChannel) to send the Channel Call Sign (%item.name%) via .json to a PHP script on my web server - similar to the "OnLiveTVRecordingStart" solution I provided previously. This time the PHP script takes the Channel Call Sign passed to it and searches my .m3u tuner file and parses the Channel number for the provided Channel Call Sign. It then uses the Channel Number to send the channel change SHEF code to my DirecTV receiver box, as previously done with the DVR recording above.

Admins, maybe you want to move this thread to LiveTV or somewhere else? I don't see anything about MacOS in it!

Edited by CJTripper
  • Like 1
Link to comment
Share on other sites

ChrisHammond56

Hi CJ. Sorry for not responding earlier.

I have implemented the exact same solution as you have used. I use the Emby app all around the house, and as such, don't use the channel up/down capability. So for my needs the onPlaybackStart event is used with the filter %item.type% equals LiveTvChannel with %item.name%, and for recording, I use the onLiveTvRecordingStart event. 

I do however, use one BASH script that calls a python script to communicate to a Home Assistant switch to change the channel on the receiver. The first parameter passed to my BASH script (via ScripterX) is either 000 (onPlaybackStart) or the %recording.channel.number% (onLIveTvrecordingStart). My script then checks parameter 1 for '000' and that determines the code path in the BASH script for the call to the Python script.

Sorry if this detail it too late, and not saved you any time. If you do want any more details of my setup, then just ask.

  • Like 1
Link to comment
Share on other sites

On 4/4/2021 at 12:33 PM, ChrisHammond56 said:

Hi CJ. Sorry for not responding earlier.

I have implemented the exact same solution as you have used. I use the Emby app all around the house, and as such, don't use the channel up/down capability. So for my needs the onPlaybackStart event is used with the filter %item.type% equals LiveTvChannel with %item.name%, and for recording, I use the onLiveTvRecordingStart event. 

I do however, use one BASH script that calls a python script to communicate to a Home Assistant switch to change the channel on the receiver. The first parameter passed to my BASH script (via ScripterX) is either 000 (onPlaybackStart) or the %recording.channel.number% (onLIveTvrecordingStart). My script then checks parameter 1 for '000' and that determines the code path in the BASH script for the call to the Python script.

Sorry if this detail it too late, and not saved you any time. If you do want any more details of my setup, then just ask.

I just started to play around with Home Assistant last night, I'm now adding a second satellite receiver (Bell ExpressVu/Dish Network 6131), so need to set up an IR blaster control to channel changes on this second receiver and also change the input (when switching between receivers) on my 4x4 HDMI switch feeding my HDMI to IP video encoder. I currently have a Broadlink RM Pro wifi IR blaster and am working on learning the IR codes into Home Assistant.

Is your Home Assistant controlling your receiver directly, via RS-232, or are you using an IR blaster? If IR blaster, which brand/model?

I'd love a look at your bash, python, and Home Assistant scripts, that would be awesome and save me some time. I'm a hardware/network guy, so all this PHP/Python coding the last few days has been learning the syntax as I go. I wish I had seen your post before completing "phase 1" of my project but any contribution for "phase 2" is appreciated! FYI, I'm running everything on an Asustor NAS. Let me know if I can do anything to assist you, although it sounds like you are way ahead of me!

Update: After some consideration, I think I might go with a ESP8266 IR Blaster solution. I've been trying to keep the solution as clean as possible with Emby and scripts interfacing directly to hardware, without adding additional 3rd party servers/services/plug-ins interface such as Home Assistant (for IR control) or NextPVR/TVHeadEnd (video streams/channel change control/etc). I'm thinking less intermediate steps/software/servers minimizes the points of failure and compatibility issues, although their are certainly lots of ways to accomplish a solution providing the same results. I'll order some ESP8266 hardware and will provide an update when I get some time to play.

Edited by CJTripper
Link to comment
Share on other sites

I'm still waiting on my ESP8266 hardware, but in the mean time got my solution working for 2 satellite receivers on 2 separate M3U tuners with IR control via a Broadlink RM Pro.

1. Got my BASH interpreter working with ScripterX on my Asustor NAS, to simplify my scripting: 

2. Installed Broadlink Go http service for IR control: 

3. In Emby LiveTV I set up a M3U tuner for each satellite receiver (see attached sample M3U files), each with separate Emby Guide data entries for the TV Guide Data Providers section. Note that I had to manually rename the tuners to a unique "FriendlyName" in \config\livetv.xml for ScripterX to properly pass "FriendlyName" and "ChannelNumber" parameters to my script. Sample .m3u files attached.

4. I used ScripterX for "OnPlaybackStart" and "OnLiveTVRecordingStart" to pass parameters to bash scripts. The scripts determine which receiver the selected channel was from and issue a IR code (via BroadlinkGo) to switch my HDMI 4x4 switch to select the correct receiver input to the HDMI to IP stream encoder. The script then would determine and send the correct channel change code. Note that I didn't have any overlap of channel number/names between the 2 receivers, which would have required additional script coding or prioritizing of one receiver over the other. Some sample scripts and screenshots are attached, I'm sure they could be more efficient if I was a better BASH scripter.

This technique and bash scripts should be adaptable with syntax modifications to work with Windows cmd interpreter scripts, or to php web scripts also.

ScripterX_Sample-OnPlayback-2Tuners-BASH.JPG

ScripterX_Sample-OnRecord-2Tuners-BASH.JPG

OnPlaybackLiveTV.sh OnRecord.sh Sample-Bell.m3u Sample-DirecTV.m3u

  • Like 1
Link to comment
Share on other sites

ChrisHammond56

Hi CJ.

Looks like you have caught up with where I am now. I started to use the RMPro devices a while back, but I found them not to be robust enough. However, my setup allows for Ethernet based channel switching so I removed them from the setup.

I have also attached my scripts. I am using HassIO and the SkyQ plugin with auto-switch creation. The onLiveTVRecordingStart.sh and onLiveTVPlaybackStart.sh are wrapper scripts to call a common BASH script, which in turn calls a Python script for the actual Ethernet channel change routine. If your channel requires a PIN, then add to the variable list channel_pin in the HassIoSkyQ.sh

Do you now have duplicated channels that you have from 2 sources, like BBC1 or ITV? If you have, I assume you have now ran into the Emby issue of not combining channels and the problem of auto-tuner selection with tuner priority. This has been requested in Emby for some time. Luke, any update on this?

2021-04-12_21h16_44.png

2021-04-12_21h18_48.png

2021-04-12_21h38_31.png

onLiveTVRecordingStart.sh onLiveTVPlaybackStart.sh HassIoSkyQ.sh HassIoSkyQ.py

  • Like 2
Link to comment
Share on other sites

Cool, I'll check it out - more stuff to play with. Thanks! I also got my ESP8266 boards today to try them as IR Blasters sometime this week. They might even be able to interface from wifi to a serial/rs-232 hardware port on receivers that have a port (better than IR but still not as good as ethernet channel changes)

I totally agree that an Ethernet Channel Change routine is better than IR if the receiver/set to box is capable.

I thinned out the duplicates in my .m3u files manually and only entered them for my priority receiver. As I currently only have the 1 IP stream encoder and am HDMI switching (via IR) inputs between receivers, my hardware isn't advanced enough yet to have multiple simultaneous recordings (one from each tuner/receiver) which could then benefit from having duplicate channels on both tuners. 

Thanks again!

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

×
×
  • Create New...