ESPN+ & FOX Sports with Custom Channels via EPlusTV

Well shoot! I can use my windows desktop for docker, but i try really hard to contain all of my channels 'things' on the mac. Hopefully someone can develop a apple silicon version soon!?!

Thank you for your help!!

1 Like

Thanks for this, Their weekly schedule seems consistent, I'm trying to learn how to convert it to XML. But I don't want to hijack this thread any further, so I started a different one to discuss TWiT.tv

Hi, Can EPlusTV be used if you have the Channels server on a PC?

1 Like

EPlusTV just generates the streams and m3u/xml info for you to import into Channels - the Channels server can run anywhere and on any platform as long as it can access the EPlusTV container.

1 Like

Yes, I run Channels on a Win10 PC, and I'm running EPlusTV within Docker Desktop, on the same PC. But, as freeside stated, they can run on any platform, as long as Channels can access the EPlusTV.

Big props to the developer... this has solved almost all of my problems... at the very least it puts it in the guide so I can see what is airing on ESPN+ without having to leave the app or look elsewhere... two problems I've encountered with this and curious if anyone else has seen these/has a fix for them...

  1. Stream will start and run fine for several minutes, then randomly freeze. I can exit out and restart the stream no problem but it's annoying. (It's possible that the crappy PC I'm running POP_OS! on and running the docker command through is part of the issue on this)

  2. Some events never load (cricket and hockey seem to fall into this camp)... this morning on ESPN.com I clicked on a live cricket match just to see if it loaded, and I got a splash screen to pick a broadcast (English or Hindi) I'm betting this is where it is getting caught up... I'm betting the Hockey problem I'm having is making me choose home or away broadcast... there might not be a workaround to this problem.

I've observed the stream stopping randomly too on a consistent basis. I've ruled out a client issue (Apple TV 4k latest beta). If I open the stream from Channels in Quadstream it will automatically restart after the stream is lost after a few seconds. Here is a log sample from last night when it occurs:

2022/03/13 19:44:32.567475 [HLS] Stopping transcoder session ch10672-dANY-ip192.168.1.40 (out: 1m15.754667s, finished: true)
2022/03/13 19:44:36.702441 [TNR] Opened connection to M3U-ESPN for ch10672 EPlusTV 1
2022/03/13 19:44:36.718452 [HLS] Starting live stream for channel 10672 from 192.168.1.40 (bitrate=0)
2022/03/13 19:44:37.259212 [HLS] Probed live stream in 539.4537ms: h264 1280x720 progressive 3507098bps
2022/03/13 19:44:37.274831 [HLS] Session ch10672-dANY-ip192.168.1.40 started in 611.213ms
2022/03/13 19:44:50.700870 [TNR] Closed connection to M3U-ESPN for ch10672 EPlusTV 1
2022/03/13 19:44:51.667402 [HLS] Couldn't generate stream playlist for ch10672-dANY-ip192.168.1.40: Stream stopped
2022/03/13 19:44:51.667402 [HLS] Stopping transcoder session ch10672-dANY-ip192.168.1.40 (out: 14.378667s, finished: true)
2022/03/13 19:44:54.738175 [TNR] Opened connection to M3U-ESPN for ch10672 EPlusTV 1
2022/03/13 19:44:54.753954 [HLS] Starting live stream for channel 10672 from 192.168.1.40 (bitrate=0)
2022/03/13 19:44:55.215386 [HLS] Probed live stream in 460.8852ms: h264 1280x720 progressive 3145009bps
2022/03/13 19:44:55.230645 [HLS] Session ch10672-dANY-ip192.168.1.40 started in 514.4136ms
2022/03/13 19:45:11.082872 [TNR] Closed connection to M3U-ESPN for ch10672 EPlusTV 1
2022/03/13 19:45:11.241567 [HLS] Couldn't generate stream playlist for ch10672-dANY-ip192.168.1.40: Stream stopped
2022/03/13 19:45:11.241567 [HLS] Stopping transcoder session ch10672-dANY-ip192.168.1.40 (out: 14.890667s, finished: true)
2022/03/13 19:45:14.318213 [TNR] Opened connection to M3U-ESPN for ch10672 EPlusTV 1
2022/03/13 19:45:14.331934 [HLS] Starting live stream for channel 10672 from 192.168.1.40 (bitrate=0)
2022/03/13 19:45:14.807154 [HLS] Probed live stream in 473.8735ms: h264 1280x720 progressive 2562760bps
2022/03/13 19:45:14.864990 [HLS] Session ch10672-dANY-ip192.168.1.40 started in 566.1954ms

I finally got around to getting this setup. It's great, but would be nice if it worked on RPi4, but that's a conversation for another thread. I've got it setup on my MacBook Pro, so it only updates when the lid is open. First world problems.

Anyways, the reason for the post is is there anyway to add the sport to the guide or as a tag? Example:

The only way the one would know this is Water Polo is by looking at the xml:

<programme channel="7022.eplustv" start="20220319160000 +0000" stop="20220319180000 +0000">
<title lang="en">Wagner vs. Villanova</title>
<desc lang="en">Wagner vs. Villanova</desc>
<icon src="https://artwork.api.espn.com/artwork/collections/airings/1512b121-114f-484d-a4bf-81240a23a07c/default?width=640&apikey=1ngjw23osgcis1i1vbj96lmfqs&timestamp=202203171951"/>
<live/>
<new/>
<category lang="en">Sports</category>
<category lang="en">Water Polo</category>
<category lang="en">NCAA Women's Water Polo</category>
<category lang="en">NCAAW Water Polo</category>
</programme>

Many of the events you can determine the sport because ESPN added it to the title as you can see "Air Force vs. Mercer (M Lacrosse)" but most don't, or the image gives clues.

Getting this error from the ESPNTV Container:

=== Getting events ===

Looking for live events...

(node:18) UnhandledPromiseRejectionWarning: page.goto: Timeout 30000ms exceeded.

=========================== logs ===========================

navigating to "https://www.espn.com/espnplus/schedule?channel=ESPN_PLUS", waiting until "networkidle"

============================================================

    at /app/services/get-events.ts:53:14

    at fulfilled (/app/services/get-events.ts:5:58)

(Use `node --trace-warnings ...` to show where the warning was created)

(node:18) UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). To terminate the node process on unhandled promise rejection, use the CLI flag `--unhandled-rejections=strict` (see https://nodejs.org/api/cli.html#cli_unhandled_rejections_mode). (rejection id: 1)

(node:18) [DEP0018] DeprecationWarning: Unhandled promise rejections are deprecated. In the future, promise rejections that are not handled will terminate the Node.js process with a non-zero exit code.
2 Likes

Not sure if this fixed the problem or how it fixed the problem. But I updated my resources and it is loading now:

CPU from 2 to 3
Memory from 4 to 8
Swap from 1 to 1.5
image

1 Like

I can get it to work, but after about 10 minutes I get Connection Lost, with nothing in the Channels or Docker logs to identify what the problem was.

2022/03/24 19:44:41.926033 [TNR] Opened connection to M3U-ESPN for ch7000 EPlusTV 7000
2022/03/24 19:50:46.151677 [TNR] Closed connection to M3U-ESPN for ch7000 EPlusTV 7000
Server started on port 8000
There is an active event. Going to start the stream.
Getting stream for event:  14504e45-bff3-45ef-94f0-a92c77ab23dc
Channel has upcoming event. Set timer to start
Channel has upcoming event. Set timer to start
Got credentials from local storage
Stream started on PID:  1321
There is an active event. Going to start the stream.
Getting stream for event:  5cbec4ff-2800-4e60-b858-242b98e4e1cb
Channel has upcoming event. Set timer to start
Got credentials from local storage
Stream started on PID:  1614
Killing unwatched stream with PID:  1321
Stream for 7002 stopped.
Killing unwatched stream with PID:  1614
Stream for 7000 stopped.

Would be nice if this was more reliable.

This was my issue with it. Constant disconnecting. I’m waiting to see if/when it improves.

I was having the same problem getting the timeout. How did you make those changes so i can try to do the same?

I am using docker desktop on a intel mac. I went to docker desktop settings and choose resources.

https://docs.docker.com/desktop/Mac

I'm using Docker on my MacBook Pro. I upped the CPUs to 8, Memory to 12 and swap where you have it and it still loses connection after a few minutes. Maybe @m0ngr31 has some suggestions on how to keep it from timing out?

The timeout thing happens to everyone it seems. This is a fun project to experiment with, learn docker, play with channel collections, etc. but it’s really a proof of concept kind of thing and not something to rely on for everyday viewing.. imo at least.

3 Likes

I tried a recording this past weekend with it and it turned out pretty well. The nice thing about the Channels DVR is that if it loses a signal it'll try right away to reconnect, and at least in my case it did, so my recording was mostly intact. So for watching Live, I'll stick to the ESPN app, but at least it seems somewhat reliable to record events, which is all I want anyways.

1 Like

I'm pretty new to this, but I actually figured it out and got ESPN+ working! I was so proud of myself. I am using Docker on a Windows box, is there any way I can add the ESPN+ logo to the channels for the Guide?

1 Like

Was anyone ever able to get this running on apple silicon? I keep running into issues with chrome closing out

Can you post your command for a windows box docker. I'm having trouble getting streams to play.