ESPN+ & FOX Sports with Custom Channels via EPlusTV

@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?

2 Likes

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.

1 Like

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

How are those on M1's getting past the chrome core dumps?
=== Getting events ===
Looking for live events...
/app/services/get-events.ts:4
import { db } from './database';
^
browserType.launch: Browser closed.
==================== Browser output: ====================
/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-AklIvY --remote-debugging-pipe --headless --hide-scrollbars --mute-audio --blink-settings=primaryHoverType=2,availableHoverTypes=2,primaryPointerType=4,availablePointerTypes=4 --no-sandbox --no-startup-window
pid=37
[pid=37][err] qemu: uncaught target signal 5 (Trace/breakpoint trap) - core dumped
[pid=37][err] qemu: uncaught target signal 5 (Trace/breakpoint trap) - core dumped
[pid=37][err] qemu: uncaught target signal 11 (Segmentation fault) - core dumped
=========================== logs ===========================

Sorry, I have unexpected visitors yesterday (that turned into today)... So I am working on this as I am able to sneak away...

I ran exactly what you put except I replaced the two /username/ with my username and put my ESPN_USER and ESPN_PASS in. It runs successfully in terminal and downloads the Image and starts a Container. However, it only runs for about 10-15 seconds and then stops on its own. If I restart it, it again only runs for a very short amount of time and then stops. In the terminal window, I get the following error...

=== Getting events ===
Looking for live events...
/app/services/get-events.ts:4
import { db } from './database';
           ^
browserType.launch: Browser closed.
==================== Browser output: ====================
<launching> /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-p2JnfU --remote-debugging-pipe --headless --hide-scrollbars --mute-audio --blink-settings=primaryHoverType=2,availableHoverTypes=2,primaryPointerType=4,availablePointerTypes=4 --no-sandbox --no-startup-window
<launched> pid=37
[pid=37][err] qemu: uncaught target signal 5 (Trace/breakpoint trap) - core dumped
[pid=37][err] qemu: uncaught target signal 5 (Trace/breakpoint trap) - core dumped
[pid=37][err] qemu: uncaught target signal 11 (Segmentation fault) - core dumped
=========================== logs ===========================
<launching> /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-p2JnfU --remote-debugging-pipe --headless --hide-scrollbars --mute-audio --blink-settings=primaryHoverType=2,availableHoverTypes=2,primaryPointerType=4,availablePointerTypes=4 --no-sandbox --no-startup-window
<launched> pid=37
[pid=37][err] qemu: uncaught target signal 5 (Trace/breakpoint trap) - core dumped
[pid=37][err] qemu: uncaught target signal 5 (Trace/breakpoint trap) - core dumped
[pid=37][err] qemu: uncaught target signal 11 (Segmentation fault) - core dumped
============================================================
    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:57:26
    at /app/index.ts:8:71
    at __awaiter (/app/index.ts:4:12)
    at schedule (/app/index.ts:55:29)
    at /app/index.ts:175:9
    at /app/index.ts:8:71
    at __awaiter (/app/index.ts:4:12)
    at /app/index.ts:172:13
    at Object.<anonymous> (/app/index.ts:179:3)
    at Module._compile (node:internal/modules/cjs/loader:1103:14)
    at Module.m._compile (/app/node_modules/ts-node/src/index.ts:1310:23) {
  name: 'Error'
}
npm notice 
npm notice New patch version of npm available! 8.5.1 -> 8.5.2
npm notice Changelog: <https://github.com/npm/cli/releases/tag/v8.5.2>
npm notice Run `npm install -g [email protected]` to update!
npm notice
1 Like

Assume it’s a G1 mac mini? Docker trying to emulate amd/intel architecture through qemu is probably never going to be stable enough to run without errors. This container is based on an image thst is only designed to run on amd64.

Yes, i have an apple silicon M1 mac mini.

Ahhh! Didn't realize you were running M1 Mac (or I missed it), sorry. I was using Intel Mac and Windows PCs. You mentioned you had a Windows desktop machine earlier so perhaps try running docker on that machine and you'll probably have better success. Until M1 native version of EPusTV is done by someone perhaps.

1 Like

anyone else missing the Carabao Cup (chelsea v liverpool) thats currently live on espn+ in their guide? looks like the container is not picking it up. thanks.

1 Like

It’s on mine. 15th event (channel xx15).

1 Like