ESPN+ & FOX Sports with Custom Channels via EPlusTV

Problem with Fox One Linear channels and XMLTV guide data.

Since the Gracenote guide data is wrong for some channels, I wanted to use a 2 source method.
One source for channels with Gracenote guide data
A second source for channels using Fox One guide data (linear-xmltv.xml)

It's not working.

1 and 2 contain the same information, including the gracenote/tms station id tvc-guide-stationid=
3 is empty (just contains the line #EXTM3U)
4 is the Fox One guide data that I'm trying to use

So as an example, I want the Fox One (not Gracenote) epg for The Masked Singer channel
I add a custom m3u source to Channels DVR with the following settings

Since the linear-channels.m3u contain the gracenote/tms station id tvc-guide-stationid=, Channels DVR ignores the linear-xmltv.xml epg.

Can we also get a linear-channels.m3u that doesn't contain the gracenote/tms station id tvc-guide-stationid= that could be used with Fox One linear-xmltv.xml epg.

Right now to work around it, I download the linear-channel.m3u to a file, edit the file to remove the gracenote/tms station id tvc-guide-stationid, then copy and paste it into the Channels DVR custom m3u source settings as a Text Source.

Since masked singer channel is not working correctly, it should be able to have the gracenote id taken out of the code. It just has to be stripped for the channel in two places and then the gracenote=exclude should work. I will test it out.

Thanks,

It's an unusual channel as it plays ad-less episodes (average 44 minutes each).
Gracenote epg lists each episode as 60 minutes, so recording with gracenote epg gets you parts of two or three episodes in the 60 minute time slot.

I tested it out and it it worked, adding it to the non-gracenote m3u. It will then pull the guide data from the xml. I made a PR for it so once Tony approves it can be safely added.

1 Like

This has been merged in v4.14.4

1 Like

Thanks @GenericChannelsUser and @tonywagner
It's working.
The only possible issue I see is that the m3u playlist linear-channels.m3u?gracenote=exclude does not contain the m3u tag channel-id, so Channels DVR falls back to using the tag
tvg-name="FOX Digital" for the channel ID. This will cause a problem if more than one non-gracenote channel uses this same tvg-name.

See Custom channel M3U Playlist tags documentation

Container crashed and restarted after requesting a Rebuild EPG
Running v4.14.4
I did a Rebuild EPG from the container web page

2025-11-11T04:08:19.077554683Z Updating FOX One prelim token
2025-11-11T04:08:19.388919513Z Refreshing TV Provider token (FOX One)
2025-11-11T04:10:41.352368095Z === Getting events ===
2025-11-11T04:10:41.353730396Z Looking for FOX One events...
2025-11-11T04:10:43.420569923Z TypeError: Response body object should not be disturbed or locked
2025-11-11T04:10:43.421294367Z     at extractBody (node:internal/deps/undici/undici:5344:17)
2025-11-11T04:10:43.422417862Z     at new Request (node:internal/deps/undici/undici:6325:48)
2025-11-11T04:10:43.422498330Z     at new Request (/app/node_modules/@hono/node-server/dist/index.js:68:5)
2025-11-11T04:10:43.422559150Z     at newRequestFromIncoming (/app/node_modules/@hono/node-server/dist/index.js:99:10)
2025-11-11T04:10:43.422612523Z     at Request.[getRequestCache] (/app/node_modules/@hono/node-server/dist/index.js:120:35)
2025-11-11T04:10:43.422660990Z     at Request.[getAbortController] (/app/node_modules/@hono/node-server/dist/index.js:115:26)
2025-11-11T04:10:43.422711671Z     at ServerResponse.<anonymous> (/app/node_modules/@hono/node-server/dist/index.js:443:34)
2025-11-11T04:10:43.422761719Z     at ServerResponse.emit (node:events:517:28)
2025-11-11T04:10:43.422806971Z     at ServerResponse.emit (node:domain:489:12)
2025-11-11T04:10:43.422850138Z     at emitCloseNT (node:_http_server:1020:10)
2025-11-11T04:10:46.136777271Z 
2025-11-11T04:10:46.137489868Z > [email protected] start
2025-11-11T04:10:46.137605001Z > ts-node -r tsconfig-paths/register index.tsx
2025-11-11T04:10:46.137659379Z 
2025-11-11T04:11:08.493342196Z === E+TV v4.14.4 starting ===

Wow.. This is just wild. My ESPN+ worked fine until a couple days ago. I have recordings on SEC+ up until Friday night. Spectrum changed my package to one that didn't have ESPNU or News, I was trying to set it up through my Disney+ Espn and thought I had broken it... Guess I didn't.

OK. I noticed that my SEC Network+ was working under EPlusTV last night. Is it intermittently not working or do certain channels still work? Thanks

SEC Network+ isn't DRM-d so it'll work. The only things ESPN-wise that are DRM'd are ESPN+ (or ESPN Select)

Well I spent some time messing with it today. I changed DNS to Cloudflare and it didn't seem to make a difference. Then changed to Google. Same.

Does the error log look identical to you?

2025-11-12 19:10:22.348 | 
2025-11-12 19:10:22.348 | > [email protected] start
2025-11-12 19:10:22.348 | > ts-node -r tsconfig-paths/register index.tsx
2025-11-12 19:10:22.348 | 
2025-11-12 19:10:33.852 | === E+TV v4.14.4 starting ===
2025-11-12 19:10:40.032 | Updating FOX One prelim token
2025-11-12 19:10:40.386 | Refreshing TV Provider token (FOX One)
2025-11-12 19:10:41.651 | HTTP server started on port 8000
2025-11-12 19:10:41.896 | === Getting events ===
2025-11-12 19:10:41.905 | Looking for FOX One events...
2025-11-12 19:10:45.383 | === Done getting events ===
2025-11-12 19:10:45.383 | === Building the schedule ===
2025-11-12 19:10:45.389 | === Done building the schedule ===
2025-11-12 19:10:55.240 | Channel #316 has an active event (Jesse Watters Primetime). Going to start the stream.
2025-11-12 19:25:19.001 | Channel #312 has an active event (College Basketball - Wisconsin-Milwaukee at Indiana). Going to start the stream.
2025-11-12 19:26:43.948 | Could not parse chunklist properly!
2025-11-12 19:26:43.986 | Could not get chunklist for channel #316.
2025-11-12 19:26:43.986 | AxiosError: timeout of 60000ms exceeded
2025-11-12 19:26:43.987 |     at RedirectableRequest.handleRequestTimeout (/app/node_modules/axios/lib/adapters/http.js:570:16)
2025-11-12 19:26:43.987 |     at RedirectableRequest.emit (node:events:517:28)
2025-11-12 19:26:43.987 |     at RedirectableRequest.emit (node:domain:489:12)
2025-11-12 19:26:43.987 |     at Timeout.<anonymous> (/app/node_modules/follow-redirects/index.js:169:12)
2025-11-12 19:26:43.987 |     at listOnTimeout (node:internal/timers:569:17)
2025-11-12 19:26:43.987 |     at processTimers (node:internal/timers:512:7) {
2025-11-12 19:26:43.987 |   code: 'ECONNABORTED',
2025-11-12 19:26:43.987 |   config: {
2025-11-12 19:26:43.987 |     transitional: {
2025-11-12 19:26:43.987 |       silentJSONParsing: true,
2025-11-12 19:26:43.987 |       forcedJSONParsing: true,
2025-11-12 19:26:43.987 |       clarifyTimeoutError: false
2025-11-12 19:26:43.987 |     },
2025-11-12 19:26:43.987 |     adapter: [ 'xhr', 'http' ],
2025-11-12 19:26:43.987 |     transformRequest: [ [Function: transformRequest] ],
2025-11-12 19:26:43.987 |     transformResponse: [ [Function: transformResponse] ],
2025-11-12 19:26:43.987 |     timeout: 60000,
2025-11-12 19:26:43.987 |     xsrfCookieName: 'XSRF-TOKEN',
2025-11-12 19:26:43.987 |     xsrfHeaderName: 'X-XSRF-TOKEN',
2025-11-12 19:26:43.987 |     maxContentLength: -1,
2025-11-12 19:26:43.987 |     maxBodyLength: -1,
2025-11-12 19:26:43.987 |     env: { FormData: [Function [FormData]], Blob: [class Blob] },
2025-11-12 19:26:43.987 |     validateStatus: [Function: validateStatus],
2025-11-12 19:26:43.987 |     headers: AxiosHeaders {
2025-11-12 19:26:43.987 |       Accept: 'application/json, text/plain, */*',
2025-11-12 19:26:43.987 |       'Accept-Encoding': 'identity',
2025-11-12 19:26:43.987 |       'User-Agent': 'foxone-androidtv/1.3.0 (Linux; Android 12; en-us; onn. 4K Streaming Box Build/SGZ1.221127.063.A1.9885170)'
2025-11-12 19:26:43.987 |     },
2025-11-12 19:26:43.987 |     method: 'get',
2025-11-12 19:26:43.987 |     url: 'https://foxdtc-video.akamaized.net/live-dr/fnc-ue2/hdntl=exp=1763082655~acl=%2f*~data=hdntl~hmac=eccbddb286e5e600d07db98baa90dad9dab0fea00f8d06be389c93e9fe251a13/index_7.m3u8',
2025-11-12 19:26:43.987 |     data: undefined
2025-11-12 19:26:43.987 |   },
2025-11-12 19:26:43.987 |   request: <ref *1> Writable {
2025-11-12 19:26:43.987 |     _writableState: WritableState {
2025-11-12 19:26:43.987 |       objectMode: false,
2025-11-12 19:26:43.987 |       highWaterMark: 16384,
2025-11-12 19:26:43.987 |       finalCalled: false,
2025-11-12 19:26:43.987 |       needDrain: false,
2025-11-12 19:26:43.987 |       ending: false,
2025-11-12 19:26:43.987 |       ended: false,
2025-11-12 19:26:43.987 |       finished: false,
2025-11-12 19:26:43.987 |       destroyed: false,
2025-11-12 19:26:43.987 |       decodeStrings: true,
2025-11-12 19:26:43.987 |       defaultEncoding: 'utf8',
2025-11-12 19:26:43.987 |       length: 0,
2025-11-12 19:26:43.987 |       writing: false,
2025-11-12 19:26:43.987 |       corked: 0,
2025-11-12 19:26:43.987 |       sync: true,
2025-11-12 19:26:43.987 |       bufferProcessing: false,
2025-11-12 19:26:43.987 |       onwrite: [Function: bound onwrite],
2025-11-12 19:26:43.987 |       writecb: null,
2025-11-12 19:26:43.987 |       writelen: 0,
2025-11-12 19:26:43.987 |       afterWriteTickInfo: null,
2025-11-12 19:26:43.987 |       buffered: [],
2025-11-12 19:26:43.987 |       bufferedIndex: 0,
2025-11-12 19:26:43.987 |       allBuffers: true,
2025-11-12 19:26:43.987 |       allNoop: true,
2025-11-12 19:26:43.987 |       pendingcb: 0,
2025-11-12 19:26:43.987 |       constructed: true,
2025-11-12 19:26:43.987 |       prefinished: false,
2025-11-12 19:26:43.987 |       errorEmitted: false,
2025-11-12 19:26:43.987 |       emitClose: true,
2025-11-12 19:26:43.988 |       autoDestroy: true,
2025-11-12 19:26:43.988 |       errored: null,
2025-11-12 19:26:43.988 |       closed: false,
2025-11-12 19:26:43.988 |       closeEmitted: false,
2025-11-12 19:26:43.988 |       [Symbol(kOnFinished)]: []
2025-11-12 19:26:43.988 |     },
2025-11-12 19:26:43.988 |     _events: [Object: null prototype] {
2025-11-12 19:26:43.988 |       response: [Function: handleResponse],
2025-11-12 19:26:43.988 |       error: [Function: handleRequestError],
2025-11-12 19:26:43.988 |       socket: [Array]
2025-11-12 19:26:43.988 |     },
2025-11-12 19:26:43.988 |     _eventsCount: 3,
2025-11-12 19:26:43.988 |     _maxListeners: undefined,
2025-11-12 19:26:43.988 |     _options: {
2025-11-12 19:26:43.988 |       maxRedirects: 21,
2025-11-12 19:26:43.988 |       maxBodyLength: Infinity,
2025-11-12 19:26:43.988 |       protocol: 'https:',
2025-11-12 19:26:43.988 |       path: '/live-dr/fnc-ue2/hdntl=exp=1763082655~acl=%2f*~data=hdntl~hmac=eccbddb286e5e600d07db98baa90dad9dab0fea00f8d06be389c93e9fe251a13/index_7.m3u8',
2025-11-12 19:26:43.988 |       method: 'GET',
2025-11-12 19:26:43.988 |       headers: [Object: null prototype],
2025-11-12 19:26:43.988 |       agents: [Object],
2025-11-12 19:26:43.988 |       auth: undefined,
2025-11-12 19:26:43.988 |       beforeRedirect: [Function: dispatchBeforeRedirect],
2025-11-12 19:26:43.988 |       beforeRedirects: [Object],
2025-11-12 19:26:43.988 |       hostname: 'foxdtc-video.akamaized.net',
2025-11-12 19:26:43.988 |       port: '',
2025-11-12 19:26:43.988 |       agent: undefined,
2025-11-12 19:26:43.988 |       nativeProtocols: [Object],
2025-11-12 19:26:43.988 |       pathname: '/live-dr/fnc-ue2/hdntl=exp=1763082655~acl=%2f*~data=hdntl~hmac=eccbddb286e5e600d07db98baa90dad9dab0fea00f8d06be389c93e9fe251a13/index_7.m3u8'
2025-11-12 19:26:43.988 |     },
2025-11-12 19:26:43.988 |     _ended: true,
2025-11-12 19:26:43.988 |     _ending: true,
2025-11-12 19:26:43.988 |     _redirectCount: 0,
2025-11-12 19:26:43.988 |     _redirects: [],
2025-11-12 19:26:43.988 |     _requestBodyLength: 0,
2025-11-12 19:26:43.988 |     _requestBodyBuffers: [],
2025-11-12 19:26:43.988 |     _onNativeResponse: [Function (anonymous)],
2025-11-12 19:26:43.988 |     _currentRequest: ClientRequest {
2025-11-12 19:26:43.988 |       _events: [Object: null prototype],
2025-11-12 19:26:43.988 |       _eventsCount: 7,
2025-11-12 19:26:43.988 |       _maxListeners: undefined,
2025-11-12 19:26:43.988 |       outputData: [],
2025-11-12 19:26:43.988 |       outputSize: 0,
2025-11-12 19:26:43.988 |       writable: true,
2025-11-12 19:26:43.988 |       destroyed: false,
2025-11-12 19:26:43.988 |       _last: true,
2025-11-12 19:26:43.988 |       chunkedEncoding: false,
2025-11-12 19:26:43.988 |       shouldKeepAlive: false,
2025-11-12 19:26:43.988 |       maxRequestsOnConnectionReached: false,
2025-11-12 19:26:43.988 |       _defaultKeepAlive: true,
2025-11-12 19:26:43.988 |       useChunkedEncodingByDefault: false,
2025-11-12 19:26:43.988 |       sendDate: false,
2025-11-12 19:26:43.988 |       _removedConnection: false,
2025-11-12 19:26:43.988 |       _removedContLen: false,
2025-11-12 19:26:43.988 |       _removedTE: false,
2025-11-12 19:26:43.988 |       strictContentLength: false,
2025-11-12 19:26:43.988 |       _contentLength: 0,
2025-11-12 19:26:43.988 |       _hasBody: true,
2025-11-12 19:26:43.988 |       _trailer: '',
2025-11-12 19:26:43.988 |       finished: true,
2025-11-12 19:26:43.988 |       _headerSent: true,
2025-11-12 19:26:43.988 |       _closed: false,
2025-11-12 19:26:43.988 |       socket: [TLSSocket],
2025-11-12 19:26:43.988 |       _header: 'GET /live-dr/fnc-ue2/hdntl=exp=1763082655~acl=%2f*~data=hdntl~hmac=eccbddb286e5e600d07db98baa90dad9dab0fea00f8d06be389c93e9fe251a13/index_7.m3u8 HTTP/1.1\r\n' +
2025-11-12 19:26:43.988 |         'Accept: application/json, text/plain, */*\r\n' +
2025-11-12 19:26:43.988 |         'Accept-Encoding: identity\r\n' +
2025-11-12 19:26:43.988 |         'User-Agent: foxone-androidtv/1.3.0 (Linux; Android 12; en-us; onn. 4K Streaming Box Build/SGZ1.221127.063.A1.9885170)\r\n' +
2025-11-12 19:26:43.988 |         'Host: foxdtc-video.akamaized.net\r\n' +
2025-11-12 19:26:43.988 |         'Connection: close\r\n' +
2025-11-12 19:26:43.988 |         '\r\n',
2025-11-12 19:26:43.988 |       _keepAliveTimeout: 0,
2025-11-12 19:26:43.988 |       _onPendingData: [Function: nop],
2025-11-12 19:26:43.988 |       agent: [Agent],
2025-11-12 19:26:43.988 |       socketPath: undefined,
2025-11-12 19:26:43.988 |       method: 'GET',
2025-11-12 19:26:43.988 |       maxHeaderSize: undefined,
2025-11-12 19:26:43.988 |       insecureHTTPParser: undefined,
2025-11-12 19:26:43.988 |       joinDuplicateHeaders: undefined,
2025-11-12 19:26:43.988 |       path: '/live-dr/fnc-ue2/hdntl=exp=1763082655~acl=%2f*~data=hdntl~hmac=eccbddb286e5e600d07db98baa90dad9dab0fea00f8d06be389c93e9fe251a13/index_7.m3u8',
2025-11-12 19:26:43.988 |       _ended: false,
2025-11-12 19:26:43.988 |       res: null,
2025-11-12 19:26:43.988 |       aborted: false,
2025-11-12 19:26:43.988 |       timeoutCb: null,
2025-11-12 19:26:43.988 |       upgradeOrConnect: false,
2025-11-12 19:26:43.988 |       parser: [HTTPParser],
2025-11-12 19:26:43.988 |       maxHeadersCount: null,
2025-11-12 19:26:43.989 |       reusedSocket: false,
2025-11-12 19:26:43.989 |       host: 'foxdtc-video.akamaized.net',
2025-11-12 19:26:43.989 |       protocol: 'https:',
2025-11-12 19:26:43.989 |       _redirectable: [Circular *1],
2025-11-12 19:26:43.989 |       [Symbol(kCapture)]: false,
2025-11-12 19:26:43.989 |       [Symbol(kBytesWritten)]: 0,
2025-11-12 19:26:43.989 |       [Symbol(kNeedDrain)]: false,
2025-11-12 19:26:43.989 |       [Symbol(corked)]: 0,
2025-11-12 19:26:43.989 |       [Symbol(kOutHeaders)]: [Object: null prototype],
2025-11-12 19:26:43.989 |       [Symbol(errored)]: null,
2025-11-12 19:26:43.989 |       [Symbol(kHighWaterMark)]: 16384,
2025-11-12 19:26:43.989 |       [Symbol(kRejectNonStandardBodyWrites)]: false,
2025-11-12 19:26:43.989 |       [Symbol(kUniqueHeaders)]: null
2025-11-12 19:26:43.989 |     },
2025-11-12 19:26:43.989 |     _currentUrl: 'https://foxdtc-video.akamaized.net/live-dr/fnc-ue2/hdntl=exp=1763082655~acl=%2f*~data=hdntl~hmac=eccbddb286e5e600d07db98baa90dad9dab0fea00f8d06be389c93e9fe251a13/index_7.m3u8',
2025-11-12 19:26:43.989 |     _timeout: null,
2025-11-12 19:26:43.989 |     [Symbol(kCapture)]: false
2025-11-12 19:26:43.989 |   }
2025-11-12 19:26:43.989 | }

I'm not sure of the timeout details as to what it's timing out on. A developer would have to tell you.
My best guess is it's timing out after 60 seconds trying to get a playlist.

Are you sure you overrode the container DNS?
You have to use bridge mode networking to do that.

You can verify the DNS servers the container is using by looking at the file /etc/resolv.conf inside the eplustv container


sudo docker exec eplustv cat /etc/resolv.conf
nameserver 75.75.75.75
nameserver 75.75.76.76

And by doing these nslookup commands from docker to see what DNS server IP address the container is using (Server:)


fastly.net

sudo docker exec eplustv nslookup fa.edge.foxdtc.digitalvideoplatform.com
Server:         75.75.75.75
Address:        75.75.75.75:53

Non-authoritative answer:
fa.edge.foxdtc.digitalvideoplatform.com canonical name = fa-dvpvideo.map.fastly.net
Name:   fa-dvpvideo.map.fastly.net
Address: 151.101.42.18

Non-authoritative answer:
fa.edge.foxdtc.digitalvideoplatform.com canonical name = fa-dvpvideo.map.fastly.net
Name:   fa-dvpvideo.map.fastly.net
Address: 2a04:4e42:a::530

cloudfront.net

sudo docker exec eplustv nslookup cf.edge.foxdtc.digitalvideoplatform.com
Server:         75.75.75.75
Address:        75.75.75.75:53

Non-authoritative answer:
cf.edge.foxdtc.digitalvideoplatform.com canonical name = d33560mwi6nhtw.cloudfront.net
Name:   d33560mwi6nhtw.cloudfront.net
Address: 108.138.246.122
Name:   d33560mwi6nhtw.cloudfront.net
Address: 108.138.246.2
Name:   d33560mwi6nhtw.cloudfront.net
Address: 108.138.246.84
Name:   d33560mwi6nhtw.cloudfront.net
Address: 108.138.246.46

Non-authoritative answer:
cf.edge.foxdtc.digitalvideoplatform.com canonical name = d33560mwi6nhtw.cloudfront.net
Name:   d33560mwi6nhtw.cloudfront.net
Address: 2600:9000:234c:ae00:14:9b62:100:93a1
Name:   d33560mwi6nhtw.cloudfront.net
Address: 2600:9000:234c:f800:14:9b62:100:93a1
Name:   d33560mwi6nhtw.cloudfront.net
Address: 2600:9000:234c:5e00:14:9b62:100:93a1
Name:   d33560mwi6nhtw.cloudfront.net
Address: 2600:9000:234c:9c00:14:9b62:100:93a1
Name:   d33560mwi6nhtw.cloudfront.net
Address: 2600:9000:234c:c400:14:9b62:100:93a1
Name:   d33560mwi6nhtw.cloudfront.net
Address: 2600:9000:234c:2400:14:9b62:100:93a1
Name:   d33560mwi6nhtw.cloudfront.net
Address: 2600:9000:234c:a600:14:9b62:100:93a1
Name:   d33560mwi6nhtw.cloudfront.net
Address: 2600:9000:234c:a00:14:9b62:100:93a1

akamai.net

sudo docker exec eplustv nslookup foxdtc-video.akamaized.net
Server:         75.75.75.75
Address:        75.75.75.75:53

Non-authoritative answer:
foxdtc-video.akamaized.net      canonical name = a1626.dscz.akamai.net
Name:   a1626.dscz.akamai.net
Address: 23.200.146.67
Name:   a1626.dscz.akamai.net
Address: 23.200.146.83

Non-authoritative answer:
foxdtc-video.akamaized.net      canonical name = a1626.dscz.akamai.net
Name:   a1626.dscz.akamai.net
Address: 2600:1406:c400::17c8:9253
Name:   a1626.dscz.akamai.net
Address: 2600:1406:c400::17c8:9243

Do you have any ad blockers or DNS filtering running (including on your router)?
Try overriding the container DNS with your ISP's DNS Server IP address. For my Xfinity it's
--dns=75.75.75.75
And then verify it stuck by using the docker commands I posted.

It looks the same. Same timeout in the same place.

This is correct. It is timing out trying to get the playlist.

1 Like

Thanks for responding. I tried to watch it last night and it isn't working again. What I did notice is that sec network worked, Sec network + didn't. Maybe I was looking at the SEC network the night before.

Would it be possible to add a high school conference to Hudl as well? The one I am looking at locally would be Minnesota High School Sports. I believe Team1 and Hudl are the same. Thanks for considering. I tried looking at your Hudl handler but I don't know how to find the slug for a conference.

It appears that ESPN3 has the same issue as SEC+, and likely ACC Extra too.

It sounds like they may have recently migrated those digital networks to DRM, joining ESPN+.

Can anyone else confirm?

If so, I'd guess that the ESPN linear networks are on borrowed time here as well.

This should be do-able, I will look into it. It might take some work in the EPlusTV GUI to handle state/team/conference selections, with so many available.

3 Likes

That would be awesome to have and I’m sure others would appreciate it with all the high school sports on this platform!

Sorry for the delay. Been slammed with work!

I do not have any ad blockers or DNS filtering. I will change from Google DNS to my ISP DNS and try again, although that's what I had at the beginning of this.

I have the following code in my Docker Engine:

{
  "dns": [
    "8.8.8.8",
    "8.8.4.4"
  ]
}

Running this I get:

docker exec eplustv cat /etc/resolv.conf

# Generated by Docker Engine.
# This file can be edited; Docker Engine will not make further changes once it
# has been modified.

nameserver 8.8.8.8
nameserver 8.8.4.4

# Based on host file: '/etc/resolv.conf' (legacy)
# Overrides: [nameservers]

Running this I get:

docker exec eplustv nslookup fa.edge.foxdtc.digitalvideoplatform.com

Server:         8.8.8.8
Address:        8.8.8.8:53

Non-authoritative answer:
fa.edge.foxdtc.digitalvideoplatform.com canonical name = fa-dvpvideo.map.fastly.net
Name:   fa-dvpvideo.map.fastly.net
Address: 151.101.2.18
Name:   fa-dvpvideo.map.fastly.net
Address: 151.101.66.18
Name:   fa-dvpvideo.map.fastly.net
Address: 151.101.194.18
Name:   fa-dvpvideo.map.fastly.net
Address: 151.101.130.18

Non-authoritative answer:
fa.edge.foxdtc.digitalvideoplatform.com canonical name = fa-dvpvideo.map.fastly.net
Name:   fa-dvpvideo.map.fastly.net
Address: 2a04:4e42:200::530
Name:   fa-dvpvideo.map.fastly.net
Address: 2a04:4e42::530
Name:   fa-dvpvideo.map.fastly.net
Address: 2a04:4e42:600::530
Name:   fa-dvpvideo.map.fastly.net
Address: 2a04:4e42:400::530

Running this I get:

docker exec eplustv nslookup cf.edge.foxdtc.digitalvideoplatform.com

Server:         8.8.8.8
Address:        8.8.8.8:53

Non-authoritative answer:
cf.edge.foxdtc.digitalvideoplatform.com canonical name = d33560mwi6nhtw.cloudfront.net
Name:   d33560mwi6nhtw.cloudfront.net
Address: 206.222.215.165

Non-authoritative answer:
cf.edge.foxdtc.digitalvideoplatform.com canonical name = d33560mwi6nhtw.cloudfront.net
Name:   d33560mwi6nhtw.cloudfront.net
Address: 2605:d000:3e8:3e9:a7a0::1

Running this I get:

docker exec eplustv nslookup foxdtc-video.akamaized.net

Server:         8.8.8.8
Address:        8.8.8.8:53

Non-authoritative answer:
foxdtc-video.akamaized.net      canonical name = a1626.dscz.akamai.net
Name:   a1626.dscz.akamai.net
Address: 23.195.81.24
Name:   a1626.dscz.akamai.net
Address: 23.195.81.26

Non-authoritative answer:
foxdtc-video.akamaized.net      canonical name = a1626.dscz.akamai.net
Name:   a1626.dscz.akamai.net
Address: 2600:1405:6400::17c3:5118
Name:   a1626.dscz.akamai.net
Address: 2600:1405:6400::17c3:511a

Ok so switched back to my ISP DNS and it just crashed again...

2025-11-14 12:54:56.312 | === Done building the schedule ===
2025-11-14 12:55:05.553 | Channel #316 has an active event (America Reports). Going to start the stream.
2025-11-14 13:14:00.935 | Error fetching 316-segment-1HWiWfvE: timeout of 60000ms exceeded
2025-11-14 13:14:00.975 | AxiosError: timeout of 60000ms exceeded
2025-11-14 13:14:00.975 |     at RedirectableRequest.handleRequestTimeout (/app/node_modules/axios/lib/adapters/http.js:570:16)
2025-11-14 13:14:00.975 |     at RedirectableRequest.emit (node:events:517:28)
2025-11-14 13:14:00.975 |     at RedirectableRequest.emit (node:domain:489:12)
2025-11-14 13:14:00.975 |     at Timeout.<anonymous> (/app/node_modules/follow-redirects/index.js:169:12)
2025-11-14 13:14:00.975 |     at listOnTimeout (node:internal/timers:569:17)
2025-11-14 13:14:00.975 |     at processTimers (node:internal/timers:512:7) {
2025-11-14 13:14:00.975 |   code: 'ECONNABORTED',
2025-11-14 13:14:00.975 |   config: {
2025-11-14 13:14:00.975 |     transitional: {
2025-11-14 13:14:00.975 |       silentJSONParsing: true,
2025-11-14 13:14:00.975 |       forcedJSONParsing: true,
2025-11-14 13:14:00.975 |       clarifyTimeoutError: false
2025-11-14 13:14:00.975 |     },
2025-11-14 13:14:00.975 |     adapter: [ 'xhr', 'http' ],
2025-11-14 13:14:00.975 |     transformRequest: [ [Function: transformRequest] ],
2025-11-14 13:14:00.975 |     transformResponse: [ [Function: transformResponse] ],
2025-11-14 13:14:00.975 |     timeout: 60000,
2025-11-14 13:14:00.975 |     xsrfCookieName: 'XSRF-TOKEN',
2025-11-14 13:14:00.975 |     xsrfHeaderName: 'X-XSRF-TOKEN',
2025-11-14 13:14:00.975 |     maxContentLength: -1,
2025-11-14 13:14:00.975 |     maxBodyLength: -1,
2025-11-14 13:14:00.975 |     env: { FormData: [Function [FormData]], Blob: [class Blob] },
2025-11-14 13:14:00.975 |     validateStatus: [Function: validateStatus],
2025-11-14 13:14:00.975 |     headers: AxiosHeaders {
2025-11-14 13:14:00.975 |       Accept: 'application/json, text/plain, */*',
2025-11-14 13:14:00.975 |       'User-Agent': 'foxone-androidtv/1.3.0 (Linux; Android 12; en-us; onn. 4K Streaming Box Build/SGZ1.221127.063.A1.9885170)',
2025-11-14 13:14:00.975 |       'Accept-Encoding': 'gzip, compress, deflate, br'
2025-11-14 13:14:00.975 |     },
2025-11-14 13:14:00.975 |     responseType: 'arraybuffer',
2025-11-14 13:14:00.975 |     method: 'get',
2025-11-14 13:14:00.975 |     url: 'https://foxdtc-video.akamaized.net/live-dr/fnc-ue2/hdntl=exp=1763232903~acl=%2f*~data=hdntl~hmac=b91fa6aa0d5e3c3323f7cdb2289073b9f20186e368b66c4515200865e20787ed/segment_7_8945676.ts',
2025-11-14 13:14:00.975 |     data: undefined
2025-11-14 13:14:00.975 |   },
2025-11-14 13:14:00.975 |   request: <ref *1> Writable {
2025-11-14 13:14:00.975 |     _writableState: WritableState {
2025-11-14 13:14:00.975 |       objectMode: false,
2025-11-14 13:14:00.975 |       highWaterMark: 16384,
2025-11-14 13:14:00.975 |       finalCalled: false,
2025-11-14 13:14:00.975 |       needDrain: false,
2025-11-14 13:14:00.975 |       ending: false,
2025-11-14 13:14:00.975 |       ended: false,
2025-11-14 13:14:00.975 |       finished: false,
2025-11-14 13:14:00.975 |       destroyed: false,
2025-11-14 13:14:00.975 |       decodeStrings: true,
2025-11-14 13:14:00.975 |       defaultEncoding: 'utf8',
2025-11-14 13:14:00.975 |       length: 0,
2025-11-14 13:14:00.975 |       writing: false,
2025-11-14 13:14:00.975 |       corked: 0,
2025-11-14 13:14:00.975 |       sync: true,
2025-11-14 13:14:00.975 |       bufferProcessing: false,
2025-11-14 13:14:00.975 |       onwrite: [Function: bound onwrite],
2025-11-14 13:14:00.975 |       writecb: null,
2025-11-14 13:14:00.975 |       writelen: 0,
2025-11-14 13:14:00.975 |       afterWriteTickInfo: null,
2025-11-14 13:14:00.975 |       buffered: [],
2025-11-14 13:14:00.976 |       bufferedIndex: 0,
2025-11-14 13:14:00.976 |       allBuffers: true,
2025-11-14 13:14:00.976 |       allNoop: true,
2025-11-14 13:14:00.976 |       pendingcb: 0,
2025-11-14 13:14:00.976 |       constructed: true,
2025-11-14 13:14:00.976 |       prefinished: false,
2025-11-14 13:14:00.976 |       errorEmitted: false,
2025-11-14 13:14:00.976 |       emitClose: true,
2025-11-14 13:14:00.976 |       autoDestroy: true,
2025-11-14 13:14:00.976 |       errored: null,
2025-11-14 13:14:00.976 |       closed: false,
2025-11-14 13:14:00.976 |       closeEmitted: false,
2025-11-14 13:14:00.976 |       [Symbol(kOnFinished)]: []
2025-11-14 13:14:00.976 |     },
2025-11-14 13:14:00.976 |     _events: [Object: null prototype] {
2025-11-14 13:14:00.976 |       response: [Function: handleResponse],
2025-11-14 13:14:00.976 |       error: [Function: handleRequestError],
2025-11-14 13:14:00.976 |       socket: [Array]
2025-11-14 13:14:00.976 |     },
2025-11-14 13:14:00.976 |     _eventsCount: 3,
2025-11-14 13:14:00.976 |     _maxListeners: undefined,
2025-11-14 13:14:00.976 |     _options: {
2025-11-14 13:14:00.976 |       maxRedirects: 21,
2025-11-14 13:14:00.976 |       maxBodyLength: Infinity,
2025-11-14 13:14:00.976 |       protocol: 'https:',
2025-11-14 13:14:00.976 |       path: '/live-dr/fnc-ue2/hdntl=exp=1763232903~acl=%2f*~data=hdntl~hmac=b91fa6aa0d5e3c3323f7cdb2289073b9f20186e368b66c4515200865e20787ed/segment_7_8945676.ts',
2025-11-14 13:14:00.976 |       method: 'GET',
2025-11-14 13:14:00.976 |       headers: [Object: null prototype],
2025-11-14 13:14:00.976 |       agents: [Object],
2025-11-14 13:14:00.976 |       auth: undefined,
2025-11-14 13:14:00.976 |       beforeRedirect: [Function: dispatchBeforeRedirect],
2025-11-14 13:14:00.976 |       beforeRedirects: [Object],
2025-11-14 13:14:00.976 |       hostname: 'foxdtc-video.akamaized.net',
2025-11-14 13:14:00.976 |       port: '',
2025-11-14 13:14:00.976 |       agent: undefined,
2025-11-14 13:14:00.976 |       nativeProtocols: [Object],
2025-11-14 13:14:00.976 |       pathname: '/live-dr/fnc-ue2/hdntl=exp=1763232903~acl=%2f*~data=hdntl~hmac=b91fa6aa0d5e3c3323f7cdb2289073b9f20186e368b66c4515200865e20787ed/segment_7_8945676.ts'
2025-11-14 13:14:00.976 |     },
2025-11-14 13:14:00.976 |     _ended: true,
2025-11-14 13:14:00.976 |     _ending: true,
2025-11-14 13:14:00.976 |     _redirectCount: 0,
2025-11-14 13:14:00.976 |     _redirects: [],
2025-11-14 13:14:00.976 |     _requestBodyLength: 0,
2025-11-14 13:14:00.976 |     _requestBodyBuffers: [],
2025-11-14 13:14:00.976 |     _onNativeResponse: [Function (anonymous)],
2025-11-14 13:14:00.976 |     _currentRequest: ClientRequest {
2025-11-14 13:14:00.976 |       _events: [Object: null prototype],
2025-11-14 13:14:00.976 |       _eventsCount: 7,
2025-11-14 13:14:00.976 |       _maxListeners: undefined,
2025-11-14 13:14:00.976 |       outputData: [],
2025-11-14 13:14:00.976 |       outputSize: 0,
2025-11-14 13:14:00.976 |       writable: true,
2025-11-14 13:14:00.976 |       destroyed: false,
2025-11-14 13:14:00.976 |       _last: true,
2025-11-14 13:14:00.976 |       chunkedEncoding: false,
2025-11-14 13:14:00.976 |       shouldKeepAlive: false,
2025-11-14 13:14:00.976 |       maxRequestsOnConnectionReached: false,
2025-11-14 13:14:00.976 |       _defaultKeepAlive: true,
2025-11-14 13:14:00.976 |       useChunkedEncodingByDefault: false,
2025-11-14 13:14:00.976 |       sendDate: false,
2025-11-14 13:14:00.976 |       _removedConnection: false,
2025-11-14 13:14:00.976 |       _removedContLen: false,
2025-11-14 13:14:00.976 |       _removedTE: false,
2025-11-14 13:14:00.976 |       strictContentLength: false,
2025-11-14 13:14:00.976 |       _contentLength: 0,
2025-11-14 13:14:00.976 |       _hasBody: true,
2025-11-14 13:14:00.976 |       _trailer: '',
2025-11-14 13:14:00.976 |       finished: true,
2025-11-14 13:14:00.976 |       _headerSent: true,
2025-11-14 13:14:00.976 |       _closed: false,
2025-11-14 13:14:00.976 |       socket: [TLSSocket],
2025-11-14 13:14:00.976 |       _header: 'GET /live-dr/fnc-ue2/hdntl=exp=1763232903~acl=%2f*~data=hdntl~hmac=b91fa6aa0d5e3c3323f7cdb2289073b9f20186e368b66c4515200865e20787ed/segment_7_8945676.ts HTTP/1.1\r\n' +
2025-11-14 13:14:00.976 |         'Accept: application/json, text/plain, */*\r\n' +
2025-11-14 13:14:00.976 |         'User-Agent: foxone-androidtv/1.3.0 (Linux; Android 12; en-us; onn. 4K Streaming Box Build/SGZ1.221127.063.A1.9885170)\r\n' +
2025-11-14 13:14:00.976 |         'Accept-Encoding: gzip, compress, deflate, br\r\n' +
2025-11-14 13:14:00.976 |         'Host: foxdtc-video.akamaized.net\r\n' +
2025-11-14 13:14:00.976 |         'Connection: close\r\n' +
2025-11-14 13:14:00.976 |         '\r\n',
2025-11-14 13:14:00.976 |       _keepAliveTimeout: 0,
2025-11-14 13:14:00.976 |       _onPendingData: [Function: nop],
2025-11-14 13:14:00.976 |       agent: [Agent],
2025-11-14 13:14:00.977 |       socketPath: undefined,
2025-11-14 13:14:00.977 |       method: 'GET',
2025-11-14 13:14:00.977 |       maxHeaderSize: undefined,
2025-11-14 13:14:00.977 |       insecureHTTPParser: undefined,
2025-11-14 13:14:00.977 |       joinDuplicateHeaders: undefined,
2025-11-14 13:14:00.977 |       path: '/live-dr/fnc-ue2/hdntl=exp=1763232903~acl=%2f*~data=hdntl~hmac=b91fa6aa0d5e3c3323f7cdb2289073b9f20186e368b66c4515200865e20787ed/segment_7_8945676.ts',
2025-11-14 13:14:00.977 |       _ended: false,
2025-11-14 13:14:00.977 |       res: null,
2025-11-14 13:14:00.977 |       aborted: false,
2025-11-14 13:14:00.977 |       timeoutCb: null,
2025-11-14 13:14:00.977 |       upgradeOrConnect: false,
2025-11-14 13:14:00.977 |       parser: [HTTPParser],
2025-11-14 13:14:00.977 |       maxHeadersCount: null,
2025-11-14 13:14:00.977 |       reusedSocket: false,
2025-11-14 13:14:00.977 |       host: 'foxdtc-video.akamaized.net',
2025-11-14 13:14:00.977 |       protocol: 'https:',
2025-11-14 13:14:00.977 |       _redirectable: [Circular *1],
2025-11-14 13:14:00.977 |       [Symbol(kCapture)]: false,
2025-11-14 13:14:00.977 |       [Symbol(kBytesWritten)]: 0,
2025-11-14 13:14:00.977 |       [Symbol(kNeedDrain)]: false,
2025-11-14 13:14:00.977 |       [Symbol(corked)]: 0,
2025-11-14 13:14:00.977 |       [Symbol(kOutHeaders)]: [Object: null prototype],
2025-11-14 13:14:00.977 |       [Symbol(errored)]: null,
2025-11-14 13:14:00.977 |       [Symbol(kHighWaterMark)]: 16384,
2025-11-14 13:14:00.977 |       [Symbol(kRejectNonStandardBodyWrites)]: false,
2025-11-14 13:14:00.977 |       [Symbol(kUniqueHeaders)]: null
2025-11-14 13:14:00.977 |     },
2025-11-14 13:14:00.977 |     _currentUrl: 'https://foxdtc-video.akamaized.net/live-dr/fnc-ue2/hdntl=exp=1763232903~acl=%2f*~data=hdntl~hmac=b91fa6aa0d5e3c3323f7cdb2289073b9f20186e368b66c4515200865e20787ed/segment_7_8945676.ts',
2025-11-14 13:14:00.977 |     _timeout: null,
2025-11-14 13:14:00.977 |     [Symbol(kCapture)]: false
2025-11-14 13:14:00.977 |   }
2025-11-14 13:14:00.977 | }
2025-11-14 13:14:00.978 | AxiosError: timeout of 60000ms exceeded
2025-11-14 13:14:00.978 |     at RedirectableRequest.handleRequestTimeout (/app/node_modules/axios/lib/adapters/http.js:570:16)
2025-11-14 13:14:00.978 |     at RedirectableRequest.emit (node:events:517:28)
2025-11-14 13:14:00.978 |     at RedirectableRequest.emit (node:domain:489:12)
2025-11-14 13:14:00.978 |     at Timeout.<anonymous> (/app/node_modules/follow-redirects/index.js:169:12)
2025-11-14 13:14:00.978 |     at listOnTimeout (node:internal/timers:569:17)
2025-11-14 13:14:00.978 |     at processTimers (node:internal/timers:512:7) {
2025-11-14 13:14:00.978 |   code: 'ECONNABORTED',
2025-11-14 13:14:00.978 |   config: {
2025-11-14 13:14:00.978 |     transitional: {
2025-11-14 13:14:00.978 |       silentJSONParsing: true,
2025-11-14 13:14:00.978 |       forcedJSONParsing: true,
2025-11-14 13:14:00.978 |       clarifyTimeoutError: false
2025-11-14 13:14:00.978 |     },
2025-11-14 13:14:00.978 |     adapter: [ 'xhr', 'http' ],
2025-11-14 13:14:00.978 |     transformRequest: [ [Function: transformRequest] ],
2025-11-14 13:14:00.978 |     transformResponse: [ [Function: transformResponse] ],
2025-11-14 13:14:00.978 |     timeout: 60000,
2025-11-14 13:14:00.978 |     xsrfCookieName: 'XSRF-TOKEN',
2025-11-14 13:14:00.978 |     xsrfHeaderName: 'X-XSRF-TOKEN',
2025-11-14 13:14:00.978 |     maxContentLength: -1,
2025-11-14 13:14:00.978 |     maxBodyLength: -1,
2025-11-14 13:14:00.978 |     env: { FormData: [Function [FormData]], Blob: [class Blob] },
2025-11-14 13:14:00.978 |     validateStatus: [Function: validateStatus],
2025-11-14 13:14:00.978 |     headers: AxiosHeaders {
2025-11-14 13:14:00.978 |       Accept: 'application/json, text/plain, */*',
2025-11-14 13:14:00.978 |       'User-Agent': 'foxone-androidtv/1.3.0 (Linux; Android 12; en-us; onn. 4K Streaming Box Build/SGZ1.221127.063.A1.9885170)',
2025-11-14 13:14:00.978 |       'Accept-Encoding': 'gzip, compress, deflate, br'
2025-11-14 13:14:00.978 |     },
2025-11-14 13:14:00.978 |     responseType: 'arraybuffer',
2025-11-14 13:14:00.978 |     method: 'get',
2025-11-14 13:14:00.978 |     url: 'https://foxdtc-video.akamaized.net/live-dr/fnc-ue2/hdntl=exp=1763232903~acl=%2f*~data=hdntl~hmac=b91fa6aa0d5e3c3323f7cdb2289073b9f20186e368b66c4515200865e20787ed/segment_7_8945676.ts',
2025-11-14 13:14:00.978 |     data: undefined
2025-11-14 13:14:00.978 |   },
2025-11-14 13:14:00.978 |   request: <ref *1> Writable {
2025-11-14 13:14:00.978 |     _writableState: WritableState {
2025-11-14 13:14:00.978 |       objectMode: false,
2025-11-14 13:14:00.978 |       highWaterMark: 16384,
2025-11-14 13:14:00.978 |       finalCalled: false,
2025-11-14 13:14:00.978 |       needDrain: false,
2025-11-14 13:14:00.978 |       ending: false,
2025-11-14 13:14:00.978 |       ended: false,
2025-11-14 13:14:00.978 |       finished: false,
2025-11-14 13:14:00.978 |       destroyed: false,
2025-11-14 13:14:00.978 |       decodeStrings: true,
2025-11-14 13:14:00.978 |       defaultEncoding: 'utf8',
2025-11-14 13:14:00.978 |       length: 0,
2025-11-14 13:14:00.978 |       writing: false,
2025-11-14 13:14:00.978 |       corked: 0,
2025-11-14 13:14:00.978 |       sync: true,
2025-11-14 13:14:00.978 |       bufferProcessing: false,
2025-11-14 13:14:00.978 |       onwrite: [Function: bound onwrite],
2025-11-14 13:14:00.978 |       writecb: null,
2025-11-14 13:14:00.978 |       writelen: 0,
2025-11-14 13:14:00.978 |       afterWriteTickInfo: null,
2025-11-14 13:14:00.978 |       buffered: [],
2025-11-14 13:14:00.978 |       bufferedIndex: 0,
2025-11-14 13:14:00.978 |       allBuffers: true,
2025-11-14 13:14:00.978 |       allNoop: true,
2025-11-14 13:14:00.978 |       pendingcb: 0,
2025-11-14 13:14:00.978 |       constructed: true,
2025-11-14 13:14:00.978 |       prefinished: false,
2025-11-14 13:14:00.979 |       errorEmitted: false,
2025-11-14 13:14:00.979 |       emitClose: true,
2025-11-14 13:14:00.979 |       autoDestroy: true,
2025-11-14 13:14:00.979 |       errored: null,
2025-11-14 13:14:00.979 |       closed: false,
2025-11-14 13:14:00.979 |       closeEmitted: false,
2025-11-14 13:14:00.979 |       [Symbol(kOnFinished)]: []
2025-11-14 13:14:00.979 |     },
2025-11-14 13:14:00.979 |     _events: [Object: null prototype] {
2025-11-14 13:14:00.979 |       response: [Function: handleResponse],
2025-11-14 13:14:00.979 |       error: [Function: handleRequestError],
2025-11-14 13:14:00.979 |       socket: [Array]
2025-11-14 13:14:00.979 |     },
2025-11-14 13:14:00.979 |     _eventsCount: 3,
2025-11-14 13:14:00.979 |     _maxListeners: undefined,
2025-11-14 13:14:00.979 |     _options: {
2025-11-14 13:14:00.979 |       maxRedirects: 21,
2025-11-14 13:14:00.979 |       maxBodyLength: Infinity,
2025-11-14 13:14:00.979 |       protocol: 'https:',
2025-11-14 13:14:00.979 |       path: '/live-dr/fnc-ue2/hdntl=exp=1763232903~acl=%2f*~data=hdntl~hmac=b91fa6aa0d5e3c3323f7cdb2289073b9f20186e368b66c4515200865e20787ed/segment_7_8945676.ts',
2025-11-14 13:14:00.979 |       method: 'GET',
2025-11-14 13:14:00.979 |       headers: [Object: null prototype],
2025-11-14 13:14:00.979 |       agents: [Object],
2025-11-14 13:14:00.979 |       auth: undefined,
2025-11-14 13:14:00.979 |       beforeRedirect: [Function: dispatchBeforeRedirect],
2025-11-14 13:14:00.979 |       beforeRedirects: [Object],
2025-11-14 13:14:00.979 |       hostname: 'foxdtc-video.akamaized.net',
2025-11-14 13:14:00.979 |       port: '',
2025-11-14 13:14:00.979 |       agent: undefined,
2025-11-14 13:14:00.979 |       nativeProtocols: [Object],
2025-11-14 13:14:00.979 |       pathname: '/live-dr/fnc-ue2/hdntl=exp=1763232903~acl=%2f*~data=hdntl~hmac=b91fa6aa0d5e3c3323f7cdb2289073b9f20186e368b66c4515200865e20787ed/segment_7_8945676.ts'
2025-11-14 13:14:00.979 |     },
2025-11-14 13:14:00.979 |     _ended: true,
2025-11-14 13:14:00.979 |     _ending: true,
2025-11-14 13:14:00.979 |     _redirectCount: 0,
2025-11-14 13:14:00.979 |     _redirects: [],
2025-11-14 13:14:00.979 |     _requestBodyLength: 0,
2025-11-14 13:14:00.979 |     _requestBodyBuffers: [],
2025-11-14 13:14:00.979 |     _onNativeResponse: [Function (anonymous)],
2025-11-14 13:14:00.979 |     _currentRequest: ClientRequest {
2025-11-14 13:14:00.979 |       _events: [Object: null prototype],
2025-11-14 13:14:00.979 |       _eventsCount: 7,
2025-11-14 13:14:00.979 |       _maxListeners: undefined,
2025-11-14 13:14:00.979 |       outputData: [],
2025-11-14 13:14:00.979 |       outputSize: 0,
2025-11-14 13:14:00.979 |       writable: true,
2025-11-14 13:14:00.979 |       destroyed: false,
2025-11-14 13:14:00.979 |       _last: true,
2025-11-14 13:14:00.979 |       chunkedEncoding: false,
2025-11-14 13:14:00.979 |       shouldKeepAlive: false,
2025-11-14 13:14:00.979 |       maxRequestsOnConnectionReached: false,
2025-11-14 13:14:00.979 |       _defaultKeepAlive: true,
2025-11-14 13:14:00.979 |       useChunkedEncodingByDefault: false,
2025-11-14 13:14:00.979 |       sendDate: false,
2025-11-14 13:14:00.979 |       _removedConnection: false,
2025-11-14 13:14:00.979 |       _removedContLen: false,
2025-11-14 13:14:00.979 |       _removedTE: false,
2025-11-14 13:14:00.979 |       strictContentLength: false,
2025-11-14 13:14:00.979 |       _contentLength: 0,
2025-11-14 13:14:00.979 |       _hasBody: true,
2025-11-14 13:14:00.979 |       _trailer: '',
2025-11-14 13:14:00.979 |       finished: true,
2025-11-14 13:14:00.979 |       _headerSent: true,
2025-11-14 13:14:00.979 |       _closed: false,
2025-11-14 13:14:00.979 |       socket: [TLSSocket],
2025-11-14 13:14:00.979 |       _header: 'GET /live-dr/fnc-ue2/hdntl=exp=1763232903~acl=%2f*~data=hdntl~hmac=b91fa6aa0d5e3c3323f7cdb2289073b9f20186e368b66c4515200865e20787ed/segment_7_8945676.ts HTTP/1.1\r\n' +
2025-11-14 13:14:00.979 |         'Accept: application/json, text/plain, */*\r\n' +
2025-11-14 13:14:00.979 |         'User-Agent: foxone-androidtv/1.3.0 (Linux; Android 12; en-us; onn. 4K Streaming Box Build/SGZ1.221127.063.A1.9885170)\r\n' +
2025-11-14 13:14:00.979 |         'Accept-Encoding: gzip, compress, deflate, br\r\n' +
2025-11-14 13:14:00.979 |         'Host: foxdtc-video.akamaized.net\r\n' +
2025-11-14 13:14:00.979 |         'Connection: close\r\n' +
2025-11-14 13:14:00.979 |         '\r\n',
2025-11-14 13:14:00.979 |       _keepAliveTimeout: 0,
2025-11-14 13:14:00.979 |       _onPendingData: [Function: nop],
2025-11-14 13:14:00.979 |       agent: [Agent],
2025-11-14 13:14:00.979 |       socketPath: undefined,
2025-11-14 13:14:00.979 |       method: 'GET',
2025-11-14 13:14:00.979 |       maxHeaderSize: undefined,
2025-11-14 13:14:00.979 |       insecureHTTPParser: undefined,
2025-11-14 13:14:00.979 |       joinDuplicateHeaders: undefined,
2025-11-14 13:14:00.979 |       path: '/live-dr/fnc-ue2/hdntl=exp=1763232903~acl=%2f*~data=hdntl~hmac=b91fa6aa0d5e3c3323f7cdb2289073b9f20186e368b66c4515200865e20787ed/segment_7_8945676.ts',
2025-11-14 13:14:00.979 |       _ended: false,
2025-11-14 13:14:00.979 |       res: null,
2025-11-14 13:14:00.979 |       aborted: false,
2025-11-14 13:14:00.979 |       timeoutCb: null,
2025-11-14 13:14:00.979 |       upgradeOrConnect: false,
2025-11-14 13:14:00.979 |       parser: [HTTPParser],
2025-11-14 13:14:00.979 |       maxHeadersCount: null,
2025-11-14 13:14:00.979 |       reusedSocket: false,
2025-11-14 13:14:00.979 |       host: 'foxdtc-video.akamaized.net',
2025-11-14 13:14:00.979 |       protocol: 'https:',
2025-11-14 13:14:00.979 |       _redirectable: [Circular *1],
2025-11-14 13:14:00.979 |       [Symbol(kCapture)]: false,
2025-11-14 13:14:00.979 |       [Symbol(kBytesWritten)]: 0,
2025-11-14 13:14:00.979 |       [Symbol(kNeedDrain)]: false,
2025-11-14 13:14:00.979 |       [Symbol(corked)]: 0,
2025-11-14 13:14:00.979 |       [Symbol(kOutHeaders)]: [Object: null prototype],
2025-11-14 13:14:00.979 |       [Symbol(errored)]: null,
2025-11-14 13:14:00.979 |       [Symbol(kHighWaterMark)]: 16384,
2025-11-14 13:14:00.979 |       [Symbol(kRejectNonStandardBodyWrites)]: false,
2025-11-14 13:14:00.979 |       [Symbol(kUniqueHeaders)]: null
2025-11-14 13:14:00.979 |     },
2025-11-14 13:14:00.979 |     _currentUrl: 'https://foxdtc-video.akamaized.net/live-dr/fnc-ue2/hdntl=exp=1763232903~acl=%2f*~data=hdntl~hmac=b91fa6aa0d5e3c3323f7cdb2289073b9f20186e368b66c4515200865e20787ed/segment_7_8945676.ts',
2025-11-14 13:14:00.979 |     _timeout: null,
2025-11-14 13:14:00.980 |     [Symbol(kCapture)]: false
2025-11-14 13:14:00.980 |   }
2025-11-14 13:14:00.980 | }
2025-11-14 13:14:00.980 | Error fetching 316-segment-1HWiWfvE: Cached segment or key failed to resolve!
2025-11-14 13:14:00.980 | Error fetching 316-segment-1HWiWfvE: Cached segment or key failed to resolve!
1 Like