ESPN+ & FOX Sports with Custom Channels via EPlusTV

Great news! Any chance you can add more info to the guide? Description, more metadata anything if it’s available. Thanks.

1 Like

Just attempting ESPN+ for first time. I am getting a few errors.

When I use
docker run --ipc=host -p 8000:8000 -v /config_dir:/app/config -e ESPN_USER="Username" -e ESPN_PASS="Password" m0ngr31/eplustv

I get this error

docker: Error response from daemon: driver failed programming external connectivity on endpoint nostalgic_grothendieck (6df2154ea7d831f3239514e26ea20b495cca76131f3307261e1b4a2085cddcd5): Error starting userland proxy: listen tcp4 0.0.0.0:8000: bind: address already in use.
ERRO[0001] error waiting for container: context canceled

So i tried changing the port. Port 8000 is used by my NAS (asustor) homescreen

So I tried docker run --ipc=host -p 7070:7070 -v /config_dir:/app/config -e ESPN_USER="Username" -e ESPN_PASS="Password" m0ngr31/eplustv

(node:18) UnhandledPromiseRejectionWarning: Error: EACCES: permission denied, open '/app/config/state.json'
at Object.openSync (fs.js:498:3)
at Object.writeFileSync (fs.js:1524:35)
at initDirectories (/app/services/init-directories.ts:26:8)
at /app/index.ts:179:18
at Generator.next ()
at /app/index.ts:8:71
at new Promise ()
at __awaiter (/app/index.ts:4:12)
at /app/index.ts:178:13
at Object. (/app/index.ts:185:3)
(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 Command-line API | Node.js v18.10.0 Documentation). (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.

Any advice or tips as to what to do next?

You want -p 7070:8000 and just remove the -v /config_dir:/app/config part

1 Like

That worked. Now im getting collections set up

1 Like

I'll see what's available

1 Like

Okay, I've pushed a pretty significant update. The entire process for getting the stream has been rewritten from the ground up. It now relies on APIs used by the Android TV app, so the login flow is similar to that. You will be provided a code in the log that you can authenticate with.

Since Chrome is no longer needed to fire up a stream and grab the data, here are some of the visible changes:

  • USERNAME and PASSWORD variables are no longer needed
  • Running with --ipc=host is no longer needed
  • Docker containers are now available for ARM devices (Apple M1 & Raspberry Pi)

It's been a lot of late nights the past 4-5 days or so re-doing all of this, but I'm really hoping it'll be better than it was before. I haven't tested it extensively, but things are looking pretty promising right now.

5 Likes

You'll get that error if the config directory you're passing through either doesn't exist or you don't have permission to it. Running without that folder passed through will result in some pain if you need to re-start the container or something

Just installed the update. Awesome work. I was really curious how you were going to work around not using chrome. The docker image is way smaller. :slight_smile:

Still playing a bit with it but did get weak signal on 2 different channels after it played a bit. On the current channel I am not seeing any buffering yet which was quite often and no weak signal on this channel.

I can't image the amount of hours you spent on this. I know these take a lot longer than most people would expect.

1 Like

What do you mean by weak signal?

2 Likes

Weak Signal may be a generic error message shown in Channels when the underlying stream errors out during connection.

3 Likes

Don't look into this to much. I have my laptop on my lap and I think it is a ESPN issue. The stream will start and after a bit it will quite and I get a message of weak signal. I grabbed my laptop and started to also stream the same content and the stream was having a hard time starting the stream while on the ESPN website.

Another one I am watching is the DET Wash hockey game. I am getting a Timeout after 32s message after watching the game for a bit. I have had an soccer game on ( not a soccer fan) and the stream has no issues at all.

The 32s message I go home (firestick 4k) and go back in it it starts again but did get the message of Timeout after 32s again. I will see what happens on the laptop with this stream to see if this is also a ESPN stream issue.

Ahh okay, yeah maybe your laptop is having issues keeping up with the stream? I should make a variable to adjust the quality. It's trying to run 720p60 by default

1 Like

Clarification -- laptop logged into ESPN directly was having issues with a certain espn stream same time I was getting Weak Signal from Channels using the firestick.

The video quality seems better than with the older images. Most the streams are coming to an end of the tonight. Thanks again for all the work you put into this.

2 Likes

Absolutely amazing. Works like a charm on M1 mini. What a massive release for you, kudos!

One question I've been meaning to ask - are "ESPN3" events includable in this, or just ESPN+ items?

1 Like

I am receiving the following on first run:
Error: EACCES: permission denied, open '/app/config/entries.db' stderr
08:22:29 at Object.openSync (node:fs:585:3) stderr
08:22:29 at Object.writeFileSync (node:fs:2170:35) stderr
08:22:29 at initDirectories (/app/services/init-directories.ts:26:8) stderr
08:22:29 at /app/index.ts:177:18 stderr
08:22:29 at Generator.next () stderr
08:22:29 at /app/index.ts:8:71 stderr
08:22:29 at new Promise () stderr
08:22:29 at __awaiter (/app/index.ts:4:12) stderr
08:22:29 at /app/index.ts:176:13 stderr
08:22:29 at Object. (/app/index.ts:185:3) { stderr
08:22:29 errno: -13, stderr
08:22:29 syscall: 'open', stderr
08:22:29 code: 'EACCES', stderr
08:22:29 path: '/app/config/entries.db' stderr
08:22:29 }

This was resolved by eliminating the config directory when creating the docker container. Not sure why. Or where the config files are being saved.

Just ESPN+, but to be perfectly honest, I had assumed ESPN+ was the successor to ESPN3. I'm curious about what the difference is

I'm glad to hear it worked on your M1. I was a little nervous since I didn't have a way of testing it myself!

How are you running the container? Does the config folder you passed in exist and do you have permissions to it?

If you don't pass it a config directory it'll just create one itself inside of the container, so if you ever restart it, you will have to authenticate again.

2 Likes

ESPN+ = online exclusive content, subject to subscription
ESPN3 = online exclusive, but free (still needs an ESPN login though), and subject to blackouts

I would think that, if this is just a guide data pull setting, you could probably add ESPN3 content, although it's blackout dependent.

ESPN3 can be activated via TVE through a cable provider, but many ISPs let you access ESPN3 without any cable package. Also, ESPN’s website will usually auto-detect when you’re on a partner ISP and grant you access to the stream without an account.

The most significant content on ESPN3 are ABC simulcasts, like the NBA Finals. You’re right that a lot of stuff moved to ESPN+.