ESPN+ & FOX Sports with Custom Channels via EPlusTV

I have the Android client on my nVidia Shields working. Docker Desktop, on the same Win10 PC that the Channels server is running on.

2 Likes

Thanks. I've got the same setup but can't get it to work on the Shield or any other android. Even on the latest betas.

Automatic Channels are not available on Android at the moment.

I'm guessing that PATH and PLATWRIGHT_BROWSERS_PATH were added by portainer and not by you right?

Try removing the /app/config volume and try again as a test

Yes, I didn't add PATH and PLATWRIGHT_BROWSERS_PATH, I just tried (without the -v /tmp:/app/config)
docker run -p 8096:8096 -e ACCESS_URI='http://192.168.1.108:8096' -e ESPN_USER='xxx' -e ESPN_PASS='xxx' -e START_CHANNEL=400 --name ESPN_Plus m0ngr31/eplustv
and I got the same error:

=== Getting events ===,
Looking for live events...,
(node:19) UnhandledPromiseRejectionWarning: browserType.launch: Timeout 30000ms exceeded.,
=========================== logs ===========================,
/opt/google/chrome/chrome --disable-background-networking --enable-features=NetworkService,NetworkServiceInProcess --disable-background-timer-throttling --disable-backgrounding-occluded-windows --disable-breakpad --disable-client-side-phishing-detection --disable-component-extensions-with-background-pages --disable-default-apps --disable-dev-shm-usage --disable-extensions --disable-features=ImprovedCookieControls,LazyFrameLoading,GlobalMediaControls,DestroyProfileOnBrowserClose,MediaRouter --allow-pre-commit-input --disable-hang-monitor --disable-ipc-flooding-protection --disable-popup-blocking --disable-prompt-on-repost --disable-renderer-backgrounding --disable-sync --force-color-profile=srgb --metrics-recording-only --no-first-run --enable-automation --password-store=basic --use-mock-keychain --no-service-autorun --user-data-dir=/tmp/playwright_chromiumdev_profile-Wx0pPE --remote-debugging-pipe --headless --hide-scrollbars --mute-audio --blink-settings=primaryHoverType=2,availableHoverTypes=2,primaryPointerType=4,availablePointerTypes=4 --no-sandbox --no-startup-window,
pid=30,
============================================================,
at /app/services/get-events.ts:45:34,
at /app/services/get-events.ts:8:71,
at __awaiter (/app/services/get-events.ts:4:12),
at getEvents (/app/services/get-events.ts:44:31),
at /app/services/get-events.ts:73:13,
at /app/services/get-events.ts:8:71,
at __awaiter (/app/services/get-events.ts:4:12),
at getEventSchedules (/app/services/get-events.ts:62:45),
at /app/index.ts:62:26,
at /app/index.ts:8:71,
at __awaiter (/app/index.ts:4:12),
at schedule (/app/index.ts:60:29),
at /app/index.ts:180:9,
at /app/index.ts:8:71,
at __awaiter (/app/index.ts:4:12),
at /app/index.ts:177:13,
at Object. (/app/index.ts:184:3),
at Module.m._compile (/app/node_modules/ts-node/src/index.ts:1310:23),
(Use node --trace-warnings ... to show where the warning was created),
(node:19) 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 v17.5.0 Documentation). (rejection id: 1),
(node:19) [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.,

I then tried manually removing the PATH and PLATWRIGHT_BROWSERS_PATH and redeploying it, I got the following error:

=== Getting events ===
Looking for live events...
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) {
  name: 'TimeoutError'
}

Regardless of the timeout error - I still think you will need to have the “publish exposed ports” option enabled - it’s always been disabled on your screenshots. Also for me, it’s confusing at some points to follow as you seem to be indicating you’re starting the container from a plain docker run command sometimes but then things switch up and you are in portainer. Maybe it’s just me.

Thanks, i use PuTTy to enter the command line code, and then i use Portainer to check the settings to troubleshoot. The only way that i know to check the settings to click Duplicate/Edit and then i either tweak or a little and attempt to deploy it again by overriding the first one. Sorry I'm new at all this!

So here's a question for those of you who are more technically inclined. My ChannelsDVR server runs on a dedicated Win10 machine. I have a VPN running on that machine (ProtonVPN, to be exact). I have EPlusTV running on Docker for Windows on the same machine. I think we have established that EplusTV does not play well with a VPN. ProtonVPN allows me to split tunnel by excluding either apps or IP addresses to bypass the VPN. Which app or IP address would I designate so EPlusTV would bypass the VPN? @m0ngr31 @tmm1

When did we establish that? No VPN issues here.

Someone had mentioned it in an earlier post. I'm noticing that streams won't start 95% of the time when running behind the VPN. When the VPN is off, streams have a much higher success rate of starting.

Can you try running with the following as part of your docker command? --dns="1.0.0.1" --dns="1.1.1.1"

How are you doing this? I did a quick experiment with different VPN and DNS configurations and never got it to work quite right.

I have a nordvpn tunnel setup on my Asus router running Merlin firmware. I have a source routing rule sending all traffic coming from my docker host out over vpn tunnel. It also sends dns requests coming from docker host to recommended Nord dns servers.

I used this setup due to a geo restriction for my home nhl team however I have since found a different way to get my regional network into channels. I’ll turn it on again and revalidate.

1 Like

Thanks for the suggestion but no luck:
docker run -p 9186:9186 -v /tmp:/app/config -e ACCESS_URI='http://192.168.1.108:9186' -e ESPN_USER='xxx' -e ESPN_PASS='xxx' -e START_CHANNEL=7000 --dns="1.0.0.1" --dns="1.1.1.1" --name ESPN_Pluss m0ngr31/eplustv

=== Getting events ===
Looking for live events...
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) {
  name: 'TimeoutError'
}

Let's break it down to the most simple command we can: docker run -p 9186:8000 --name ESPN_Pluss m0ngr31/eplustv

Does no one else here have issues with the streams constantly stopping & restarting randomly throughout broadcasts? It's very annoying watching with all the stops/starts randomly during a game. With Channels I have to manually stop and restart watching the channel/stream. With TiviMate, at least it automatically restarts the stream so I don't have to do it myself but that brief drop/pause in the stream gets old very quickly. I thought maybe using docker in Win 10 might have been an issue so I tried docker on MacBook Pro but same issue. Happens in Channels & TiviMate and only the ESPN+ channels. Another Docker instance for a similar situation to get Twitch streams into Channels and/or TiviMate works smoothly so it just appears to be issue with EPlusTV. I should add watching ESPN+ outside of EPlusTV works smoothly throughout entire broadcasts so don't think its an internet or network issue and I'm hardwired in, no WiFi.

I sometimes get the stream disconnected out of nowhere while it’s playing. I have to go out and go back in and it immediately plays. So it looks like the stream is still going in the container, channels just drops it for some reason.

I see the disconnects in the container as well but don't know if it's because channels disconnects first. I doubt it's channels as the same thing happens when I use TiviMate. At least with TiviMate it auto-reconnects without my intervention but with channels I have to back out and go back in like you. Yes, stream instantly plays when reconnecting so not completely disconnecting from ESPN+ and having to re-authenticate. Don't know if it's some buffer or misconfigured timeout setting within EPlusTV causing stream to stop randomly or what.

2 Likes

What happens if you are recording it? I would assume as long as you are a little behind live that it would be pretty seamless?

3 Likes