ESPN+ & FOX Sports with Custom Channels via EPlusTV

I don't record sports programs as I prefer to watch live but I started recording on the EFL match currently on and the channel logs show premature disconnects repeatedly over and over:

2022/02/23 15:34:57.092905 [DVR] Starting job 1645645200-ch101 Sheffield United vs. Blackburn Rovers (English League Championship) on ch=[101]
2022/02/23 15:34:57.093899 [DVR] Waiting 5h25m2.9061008s until next job 1645668000-60 Resident Alien
2022/02/23 15:34:57.093899 [DBG] Scheduling wake timer for scheduled recording in 5h23m32.9061008s
2022/02/23 15:34:57.116028 [TNR] Opened connection to M3U-ESPN for ch101 EPlusTV 101
2022/02/23 15:34:57.116727 [DVR] Recording for job 1645645200-ch101 from M3U-ESPN ch101 into "TV\Sheffield United vs. Blackburn Rovers (English League Championship)\Sheffield United vs. Blackburn Rovers (English League Championship) 2022-02-23-1534.mpg" for 1h11m2.9070942s
2022/02/23 15:34:57.194432 [IDX] Generating video index for job 1645645200-ch101
2022/02/23 15:38:08.948740 [MTS] Statistics for "TV\Sheffield United vs. Blackburn Rovers (English League Championship)\Sheffield United vs. Blackburn Rovers (English League Championship) 2022-02-23-1534.mpg": skipped=0 unhandled_packets=0 discontinuity_detected=0 transport_errors=0 invalid_pts=0 invalid_dts=0 saw_pcr=true saw_pmt=true highest_pts=193.492611
2022/02/23 15:38:08.969657 [TNR] Closed connection to M3U-ESPN for ch101 EPlusTV 101
2022/02/23 15:38:08.969657 [DVR] Job 1645645200-ch101 Sheffield United vs. Blackburn Rovers (English League Championship) ended prematurely: 1h7m51.0303426s
2022/02/23 15:38:08.986484 [DVR] Starting job 1645645200-ch101 Sheffield United vs. Blackburn Rovers (English League Championship) on ch=[101]
2022/02/23 15:38:08.987001 [DVR] Waiting 5h21m51.0129986s until next job 1645668000-60 Resident Alien
2022/02/23 15:38:08.987001 [DBG] Scheduling wake timer for scheduled recording in 5h20m21.0129986s
2022/02/23 15:38:08.999861 [TNR] Opened connection to M3U-ESPN for ch101 EPlusTV 101
2022/02/23 15:38:09.000431 [DVR] Recording for job 1645645200-ch101 from M3U-ESPN ch101 into "TV\Sheffield United vs. Blackburn Rovers (English League Championship)\Sheffield United vs. Blackburn Rovers (English League Championship) 2022-02-23-1534.mpg" for 1h7m51.0135152s
2022/02/23 15:38:18.775762 [MTS] Statistics for "TV\Sheffield United vs. Blackburn Rovers (English League Championship)\Sheffield United vs. Blackburn Rovers (English League Championship) 2022-02-23-1534.mpg": skipped=0 unhandled_packets=0 discontinuity_detected=0 transport_errors=0 invalid_pts=0 invalid_dts=0 saw_pcr=true saw_pmt=true highest_pts=3499.079200
2022/02/23 15:38:18.795219 [TNR] Closed connection to M3U-ESPN for ch101 EPlusTV 101
2022/02/23 15:38:18.795219 [DVR] Job 1645645200-ch101 Sheffield United vs. Blackburn Rovers (English League Championship) ended prematurely: 1h7m41.2047804s
2022/02/23 15:38:18.802105 [DVR] Starting job 1645645200-ch101 Sheffield United vs. Blackburn Rovers (English League Championship) on ch=[101]
2022/02/23 15:38:18.802647 [DVR] Waiting 5h21m41.1973521s until next job 1645668000-60 Resident Alien
2022/02/23 15:38:18.802647 [DBG] Scheduling wake timer for scheduled recording in 5h20m11.1973521s
2022/02/23 15:38:18.817265 [TNR] Opened connection to M3U-ESPN for ch101 EPlusTV 101
2022/02/23 15:38:18.817265 [DVR] Recording for job 1645645200-ch101 from M3U-ESPN ch101 into "TV\Sheffield United vs. Blackburn Rovers (English League Championship)\Sheffield United vs. Blackburn Rovers (English League Championship) 2022-02-23-1534.mpg" for 1h7m41.1973521s
2022/02/23 15:38:24.205408 [MTS] Statistics for "TV\Sheffield United vs. Blackburn Rovers (English League Championship)\Sheffield United vs. Blackburn Rovers (English League Championship) 2022-02-23-1534.mpg": skipped=0 unhandled_packets=0 discontinuity_detected=0 transport_errors=0 invalid_pts=0 invalid_dts=0 saw_pcr=true saw_pmt=true highest_pts=3503.282689
2022/02/23 15:38:24.213051 [TNR] Closed connection to M3U-ESPN for ch101 EPlusTV 101
2022/02/23 15:38:24.213602 [DVR] Job 1645645200-ch101 Sheffield United vs. Blackburn Rovers (English League Championship) ended prematurely: 1h7m35.7863971s
2022/02/23 15:38:24.218143 [DVR] Starting job 1645645200-ch101 Sheffield United vs. Blackburn Rovers (English League Championship) on ch=[101]
2022/02/23 15:38:24.219142 [DVR] Waiting 5h21m35.7808575s until next job 1645668000-60 Resident Alien
2022/02/23 15:38:24.219142 [DBG] Scheduling wake timer for scheduled recording in 5h20m5.7808575s
2022/02/23 15:38:24.232276 [TNR] Opened connection to M3U-ESPN for ch101 EPlusTV 101
2022/02/23 15:38:24.232842 [DVR] Recording for job 1645645200-ch101 from M3U-ESPN ch101 into "TV\Sheffield United vs. Blackburn Rovers (English League Championship)\Sheffield United vs. Blackburn Rovers (English League Championship) 2022-02-23-1534.mpg" for 1h7m35.7808575s
2022/02/23 15:38:55.444980 [MTS] Statistics for "TV\Sheffield United vs. Blackburn Rovers (English League Championship)\Sheffield United vs. Blackburn Rovers (English League Championship) 2022-02-23-1534.mpg": skipped=0 unhandled_packets=0 discontinuity_detected=0 transport_errors=0 invalid_pts=0 invalid_dts=0 saw_pcr=true saw_pmt=true highest_pts=3528.526044
2022/02/23 15:38:55.455917 [TNR] Closed connection to M3U-ESPN for ch101 EPlusTV 101
2022/02/23 15:38:55.455917 [DVR] Job 1645645200-ch101 Sheffield United vs. Blackburn Rovers (English League Championship) ended prematurely: 1h7m4.5440821s

In the container logs I believe I see error reading channel #101's m3u8 messages every once in a while so maybe something with output or delay of m3u8 before being read? IDK.

2 Likes

This sounds interesting and I’d like to play around with it, can you share a link?

1 Like

Is anyone else having EPlusTV time out and getting emails from ESPN with a "one-time ESPN account passcode"? For the last day or so, I have been getting an email each time I attempt to watch a ESPN+ channel. I got like 10 in a row yesterday.

Also, my docker log is giving me a "Failed to parse the stream" error.

Sure. It's just HLSTube https://github.com/jnewland/hlstube originally designed for live YouTube but using twitch links instead of YouTube links and it surprisingly works.

Instead of using http://localhost:8080/_/http://youtube.com/watch?v=RQA5RcIZlAM for example, I use http://localhost:8080/_/https://twitch.com/twit for example.

Of course make your own m3u & epg.xmltv files

4 Likes

Thanks. Incidentally I also posted about hlstube in a different thread earlier today:

But your post got me to revisit it, I had no idea it worked with Twitch streams too! And thanks so much for this example:

I tried to get TWiT.tv integrated with Channels DVR back in November when the Custom Channels feature was first introduced but learned that Ustream splits audio and video, which Channels doesn't support.

So just now (thanks to your post) I updated my hlstube docker and then tried with the TWiT livestream in Twitch, and it's working fine! No guide data but I don't really need it for this sort of live stream. This is great. Thanks again, @Richard_Hayles!

I too was worried about 2FA codes before setting up EPlusTV so I made sure to login to ESPN+ and played a stream in my default Chrome web browser from the same Win 10 machine I run Channels and Docker containers on to make sure my setup was properly authenticated via 2FA code ahead of time. I got the email notifying me of new device from my location just logged in notification and I've been good so far ever since.

I expect periodically from time to time I'll need to do that every month or so or weeks just like I have to do for the Discovery channels TVE nowadays for my Spectrum TV channels.

The "Failed to parse the stream" errors I think we all see in docker logs from time to time but general retries they eventually work.

@m0ngr31 as promised I validated tonight. I'm currently watching carolina/columbus through eplus. Eplus is connected through a Nord VPN tunnel. Here is output from an exec inside my eplus container:

root@photon [ ~ ]# docker exec eager_babbage curl -4 icanhazip.com                % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100    14  100    14    0     0    259      0 --:--:-- --:--:-- --:--:--   259
217.114.38.55

217.114.38.55, as you can verify, is a NordVPN exit node.

2 Likes

I have been trying to get this working in my system for a few weeks and just cant grt it. My docker is running on my M1 Mac Mini. It seems to keep getting hung up on the local volume part of the command line code. Anyone have this running on a similar setup?

Hung up how? What does your command line look like? For instance, if you made a folder to use for EPlusTV in say your /Users/Username/Private/EPlusTV for example, you should be able to do docker run -p 8000:8000 -v /Users/Username/Private/EPlusTV:/app/config and the rest of your command and it should work.

3 Likes

You're welcome. I just make my own epg.xml for guide info for twitch channels and populate with something similar to this example for AdmiralBahroo for instance:

<channel id="AdmiralBahroo">
<display-name>AdmiralBahroo</display-name>
<icon src="http://192.168.68.94/IPTV/Images/AdmiralBahroo-logo.png?w=360&amp;h=270"></icon>
</channel>

<programme start="20220259000000 -0500" stop="20231231000000 -0500" channel="AdmiralBahroo">
<title>AdmiralBahroo</title>
<sub-title>Twitch Live Stream</sub-title>
<desc>I play the games and attempt to be funny.</desc>
<icon src="http://192.168.68.94/IPTV/Images/admiralbahroo-guide-image.jpg?w=720&amp;h=540"></icon>
</programme>
1 Like

That worked perfectly to get me past my issue! Thank you! The code I ran was...

docker run -d --restart unless-stopped -p 8000:8000 -v /Users/username/Docker/EPlusTV:/app/config -v /dev/shm:/app/tmp -e ACCESS_URI='http://192.168.1.251:8000' -e ESPN_USER='username' -e ESPN_PASS='password' -e START_CHANNEL=7000 --name ESPN_Plus m0ngr31/eplustv

Now when I navigate to localhost:8000... I do not see the two endpoints (channels.m3u and xmltv.xml). Nothing shows... did I miss a step?

There's nothing on that page, so you'll get a 404 error. Use the two endpoints directly in Channels (I'd recommend changing localhost to your actual LAN IP):
localhost:8000/channels.m3u
localhost:8000/xmltv.xml

1 Like

No, you should be fine. To see or download each file you would put /channels.m3u or /xmltv.xml after the 8000 in your url but generally you put the corresponding urls into your Custom Channels settings.

For example, your specific setup would look like http://192.168.1.251:8000/xmltv.xml for your XMLTV Guide Data and http://192.168.1.251:8000/channels.m3u for your Stream Source URL.

Alternatively, you could also do a text for Stream Source since channel numbers don't change and paste your own text for m3u into it and include path to an image logo you'd like to see in the guide for your channels.

For example in your specific setup:

Nickname: ESPN+ or EPlusTV

Stream Format: HLS

Source: Text
#EXTM3U
#EXTINF:0 tvg-id="7000.eplustv" channel-number="7000" tvg-chno="7000" tvg-logo="http://url_path_to_your_image/espn-plus-logo-black.png" tvg-name="EPlusTV 7000" group-title="EPlusTV", EPlusTV 7000
http://192.168.1.251:8000/channels/7000.m3u8

#EXTINF:0 tvg-id="7001.eplustv" channel-number="7001" tvg-chno="7001" tvg-logo="http://url_path_to_your_image/espn-plus-logo-black.png" tvg-name="EPlusTV 7001" group-title="EPlusTV", EPlusTV 7001
http://192.168.1.251:8000/channels/7001.m3u8

etc... for all 100 channels

XMLTV Guide Data: http://192.168.1.251:8000/xmltv.xml

First off, I truly appreciate all of the help!! I tried to add a source in Channels using the custom channel dialogue and I get the following..

image

Is there something wrong with my docker install?

2 Likes

Does docker say it's running on port 8000 and is that still the same IP address of the machine docker is running on? If you put that url into your browser does it download the file which you can open in notepad to see its contents?

1 Like

Docker says it is running on Port 8000:
image

And the M1 Mac Mini has a fixed IP address of 192.168.1.251:

But when I open a browser on my desktop and type 192.168.1.251:8000, I get nothing...
image

I also get the same thing when I am on the mac and use local host:
image

No. In your browser from the computer Channels is running on type or copy and paste this:
http://192.168.1.251:8000/channels.m3u
It should download the file to the computer that can be opened in a text editor.

From the mac mini web browser typing http://localhost:8000/channels.m3u will download the file locally on that computer that you can open with text edit.

If you can grab the file locally from the mac mini but not from the computer (assuming it's different) then that will lead to some sort of network issue or firewall issue between the two.

I tried on the mac mini (where Docker and Channels are running) the ip address as you typed as well as the localhost version and neither downloads anything. I get the same "This page isnt working" message. I also tried it on my windows desktop (different machine) and had the same experience.

Okay. Let's start over. Stop and delete your current docker container for EPlusTV.
Open Terminal on the mac mini and type the following (with your username and login credentials)

docker run -p 8000:8000 -v /Users/username/Private/EPlusTV:/app/config -v
/Users/username/Private/Tmp:/app/tmp -e ESPN_USER=‘XXXXX’ -e ESPN_PASS=‘XXXXXX’ -e START_CHANNEL=‘7000’ m0ngr31/eplustv

After it grabs all the info and says it is running on port 8000 try grabbing the m3u file again locally and remotely from another computer and see if it works then.

4 Likes