ESPN+ & FOX Sports with Custom Channels via EPlusTV

You were right.

I just replace the current m3u link with the one below and leave the xml link as it was????

http://192.168.1.180:8000/linear-channels.m3u

Great! So if I understand correctly, once this build is available, we can provide a custom response header like “X-User-Agent” before our redirect. Then Channels will drop the “X-“ prefix and use that as its own request header when it requests the redirect URL. Is that correct?

You could just associate the linear channel with Gracenote guide data within Channels. Or if you want the EPlusTV provided linear guide data, you could use the linear guide URL which should be http://192.168.1.180:8000/linear-xmltv.xml

1 Like

Yes, but the resp would look like:

HTTP/1.1 301 Found
Location: https://video.cdn/playlist.m3u8
X-Location-User-Agent: Mozilla
X-Location-Authorization: ABCD
1 Like

College Football - Penn State at Ohio State 09:00-12:30 interrupted
CDVR log

2025/11/01 11:30:04.312889 [DVR] Error running job 1762012800-ch43 College Football: Could not fetch playlist from 192.168.1.4:8185: GET: http://192.168.1.4:8185/chunklist/210/0dskftuX.m3u8: 404 Not Found
Container log
2025-11-01T16:00:00.016311891Z Channel #210 has an active event (College Football - Penn State at Ohio State). Going to start the stream.
2025-11-01T18:29:59.808564456Z AxiosError: Hostname/IP does not match certificate's altnames: Host: fa.edge.foxdtc.digitalvideoplatform.com. is not in the cert's altnames: DNS:settings.data.microsoft.com
2025-11-01T18:29:59.809086662Z     at Function.AxiosError.from (/app/node_modules/axios/lib/core/AxiosError.js:89:14)
2025-11-01T18:29:59.809177867Z     at RedirectableRequest.handleRequestError (/app/node_modules/axios/lib/adapters/http.js:533:25)
2025-11-01T18:29:59.809240664Z     at RedirectableRequest.emit (node:events:529:35)
2025-11-01T18:29:59.809289872Z     at RedirectableRequest.emit (node:domain:489:12)
2025-11-01T18:29:59.809341541Z     at ClientRequest.eventHandlers.<computed> (/app/node_modules/follow-redirects/index.js:14:24)
2025-11-01T18:29:59.809396597Z     at ClientRequest.emit (node:events:517:28)
2025-11-01T18:29:59.809447213Z     at ClientRequest.emit (node:domain:489:12)
2025-11-01T18:29:59.809494122Z     at TLSSocket.socketErrorListener (node:_http_client:501:9)
2025-11-01T18:29:59.809549868Z     at TLSSocket.emit (node:events:517:28)
2025-11-01T18:29:59.809592496Z     at TLSSocket.emit (node:domain:489:12) {
2025-11-01T18:29:59.809655934Z   code: 'ERR_TLS_CERT_ALTNAME_INVALID',
2025-11-01T18:29:59.809716714Z   cert: {
2025-11-01T18:29:59.809760429Z     subject: [Object: null prototype] {
2025-11-01T18:29:59.808719608Z Could not parse chunklist properly!
2025-11-01T18:29:59.809915015Z Could not get chunklist for channel #210.
2025-11-01T18:29:59.809832113Z       C: 'US',
2025-11-01T18:29:59.810028697Z       ST: 'WA',
2025-11-01T18:29:59.810072970Z       L: 'Redmond',
2025-11-01T18:29:59.810118254Z       O: 'Microsoft Corporation',
2025-11-01T18:29:59.810162149Z       CN: 'settings.data.microsoft.com'
2025-11-01T18:29:59.810204665Z     },
2025-11-01T18:29:59.810241246Z     issuer: [Object: null prototype] {
2025-11-01T18:29:59.810282681Z       C: 'US',
2025-11-01T18:29:59.810320633Z       O: 'Microsoft Corporation',
2025-11-01T18:29:59.810362423Z       CN: 'Microsoft Azure RSA TLS Issuing CA 08'
2025-11-01T18:29:59.810415079Z     },
2025-11-01T18:29:59.810452570Z     subjectaltname: 'DNS:settings.data.microsoft.com',
2025-11-01T18:29:59.810498863Z     infoAccess: [Object: null prototype] {
2025-11-01T18:29:59.810542117Z       'CA Issuers - URI': [Array],
2025-11-01T18:29:59.810584794Z       'OCSP - URI': [Array]
2025-11-01T18:29:59.810642602Z     },
2025-11-01T18:29:59.810679851Z     ca: false,
2025-11-01T18:29:59.810723161Z     modulus: 'C0D8BD61CAD84B3881BF8181D4C820A7B2A1CD9B17DEB38F77D357B8464051B8E774531A575447B610AAE0595E30FB4080991339BD744D2CB0D9D2E41DD643F611C1E5DD30B0C059816F30CA5E9F86F325E7BF984479CFE795390EF83486D3E13793A11B371C38A93026ED52ECACF9B6BF1945A70FF5343C28D35D38249F7C0C582B43F082E7457348A0CAC1D02E60402C480A0107BB5D044493ED5830B032C22D2E41DF14E5F55B3C3E7848781786312BAAA9AA2A91CD4CA298D88CDE724C03CE26437E57E7976D4B4E5023AE81CDE8B5037D576049971BA74966EFA2A18E330633C47253F66B86810B81F21A4353CEDA0DED1FFC96F6368540E1C1D1CF0C09',
2025-11-01T18:29:59.810871317Z     bits: 2048,
2025-11-01T18:29:59.810916489Z     exponent: '0x10001',
2025-11-01T18:29:59.810961594Z     pubkey: <Buffer 30 82 01 22 30 0d 06 09 2a 86 48 86 f7 0d 01 01 01 05 00 03 82 01 0f 00 30 82 01 0a 02 82 01 01 00 c0 d8 bd 61 ca d8 4b 38 81 bf 81 81 d4 c8 20 a7 b2 ... 244 more bytes>,
2025-11-01T18:29:59.811057365Z     valid_from: 'Oct 27 23:07:40 2025 GMT',
2025-11-01T18:29:59.811106016Z     valid_to: 'Apr 25 23:07:40 2026 GMT',
2025-11-01T18:29:59.811150405Z     fingerprint: '51:10:3D:D6:B9:9F:E9:75:23:FE:E6:E6:41:54:B1:77:F1:98:F3:5B',
2025-11-01T18:29:59.811208834Z     fingerprint256: '0C:BF:3F:E8:1B:0D:5F:EF:BB:C0:B8:06:99:83:36:6D:AE:C6:B2:FF:27:21:0C:D2:93:98:6C:6A:AE:01:76:0A',
2025-11-01T18:29:59.811270631Z     fingerprint512: 'B9:87:44:4C:4C:BD:13:BA:61:3E:E6:2D:16:CA:A4:4A:E7:9F:4E:F8:F2:D9:42:E9:61:FC:B1:3C:64:10:F1:77:1A:93:DB:07:8F:34:3A:04:81:30:34:9F:3C:89:AB:2B:15:AB:64:57:EC:FE:17:F2:88:B1:B3:09:1F:76:13:35',
2025-11-01T18:29:59.811348970Z     ext_key_usage: [ '1.3.6.1.5.5.7.3.2', '1.3.6.1.5.5.7.3.1' ],
2025-11-01T18:29:59.811399715Z     serialNumber: '330290BE85164FD586A1D3D54B00000290BE85',
2025-11-01T18:29:59.811446013Z     raw: <Buffer 30 82 08 7c 30 82 06 64 a0 03 02 01 02 02 13 33 02 90 be 85 16 4f d5 86 a1 d3 d5 4b 00 00 02 90 be 85 30 0d 06 09 2a 86 48 86 f7 0d 01 01 0c 05 00 30 ... 2126 more bytes>,
2025-11-01T18:29:59.811515945Z     issuerCertificate: {
2025-11-01T18:29:59.811557948Z       subject: [Object: null prototype],
2025-11-01T18:29:59.811603981Z       issuer: [Object: null prototype],
2025-11-01T18:29:59.811666563Z       infoAccess: [Object: null prototype],
2025-11-01T18:29:59.811711131Z       ca: true,
2025-11-01T18:29:59.811759151Z       modulus: 'B2EE8205CDC0D56556E899666D4B0AC05FC2E2297B1B09CC2E14BEC51E40F99BAEE896639D4EE78E2A1344479CA416CFE678A1B57F0CDDDF9FFE435F8A4F1715F3D2085E612BB52B23F045AEEEB74401562760C15BB2DAB090854D128CF838833CDA19FE379A79EF390718FA20CC5E9338F45438AF3263208F7AA9C7BE85691396F49192F8413F1B7728524506D4B1489268EB85E72DDE67D55CF766DA0E4858EC21591364E12CBBF93D0D16C732E8B77B75F1DDAF40FE71DBD2349FA345B23DFB27677F107FD9E9AFE58405732A37D896819C43520FC831081A1F606099CC2C566251B9BF1819A5A4A56BF0CD37396282474B6145B7E753A528B24AF01AB1020279E88C5114C3E8FC8BA8052C13565ED04EB58BE097C48708254A514525E1839F479CC5E0E90A8AB26E51B3A607600E98B8D824871A6C3BF131C9ABCA14229E883EFFE8E01C99D8EB6A29812B6475A22630FCF22C1ED9696567C6945DB4528ED59BC691979136F6CF014291DA435E927BA1DCDB45BF3D9D637C4FEC07E1C8B13FB7CBD6EF69C0CE544ACFEF8BEF40A00AF8FFC9E39B3F06803C3776B19D288F6BBF37E93A7A01AAD387BE1815BE418092A09E5E018DFA8A5D1FBBB758487603A3B441E5A3D32EA9F26E9F3031E01AB5C6A073C53D38CE3682110B4DA585011BB2A029A0A91EF2F1F014F4D8E172AAE6EBED17CEFFEFCCC7E12F8525A5FD46EF',
2025-11-01T18:29:59.811848202Z       bits: 4096,
2025-11-01T18:29:59.811893370Z       exponent: '0x10001',
2025-11-01T18:29:59.811934234Z       pubkey: <Buffer 30 82 02 22 30 0d 06 09 2a 86 48 86 f7 0d 01 01 01 05 00 03 82 02 0f 00 30 82 02 0a 02 82 02 01 00 b2 ee 82 05 cd c0 d5 65 56 e8 99 66 6d 4b 0a c0 5f ... 500 more bytes>,
2025-11-01T18:29:59.812043764Z       valid_from: 'Jun  8 00:00:00 2023 GMT',
2025-11-01T18:29:59.812108601Z       valid_to: 'Aug 25 23:59:59 2026 GMT',
2025-11-01T18:29:59.812155792Z       fingerprint: '31:60:09:91:ED:5F:EC:63:D3:55:A5:48:4A:6D:CC:78:7E:AD:89:BC',
2025-11-01T18:29:59.812208060Z       fingerprint256: '51:1C:1C:41:CB:7E:B2:A1:00:78:C3:2C:82:F1:79:25:BA:78:6D:E4:6C:63:39:21:D0:38:E7:40:9E:15:A5:EA',
2025-11-01T18:29:59.812266014Z       fingerprint512: '0D:CC:2C:1C:26:7B:B6:38:88:A2:BF:FD:E6:68:8A:81:95:BC:FF:01:4C:81:44:F0:1E:BA:E9:C1:4D:54:C2:91:0F:BC:78:E0:B1:3A:73:01:1C:93:A3:F5:C8:68:83:3A:A5:73:E5:C6:A6:E8:08:A5:C0:F5:99:6D:0B:C0:62:38',
2025-11-01T18:29:59.812336521Z       ext_key_usage: [Array],
2025-11-01T18:29:59.812377025Z       serialNumber: '0EFB7E547EDF0FF1069AEE57696D7BA0',
2025-11-01T18:29:59.812418817Z       raw: <Buffer 30 82 05 ac 30 82 04 94 a0 03 02 01 02 02 10 0e fb 7e 54 7e df 0f f1 06 9a ee 57 69 6d 7b a0 30 0d 06 09 2a 86 48 86 f7 0d 01 01 0c 05 00 30 61 31 0b ... 1406 more bytes>,
2025-11-01T18:29:59.812484591Z       issuerCertificate: [Object]
2025-11-01T18:29:59.812528773Z     }
2025-11-01T18:29:59.812565385Z   },
2025-11-01T18:29:59.812602532Z   host: 'fa.edge.foxdtc.digitalvideoplatform.com',
2025-11-01T18:29:59.812668020Z   reason: "Host: fa.edge.foxdtc.digitalvideoplatform.com. is not in the cert's altnames: DNS:settings.data.microsoft.com",
2025-11-01T18:29:59.812721099Z   config: {
2025-11-01T18:29:59.812761449Z     transitional: {
2025-11-01T18:29:59.812803511Z       silentJSONParsing: true,
2025-11-01T18:29:59.812845205Z       forcedJSONParsing: true,
2025-11-01T18:29:59.812889205Z       clarifyTimeoutError: false
2025-11-01T18:29:59.812931965Z     },
2025-11-01T18:29:59.812968753Z     adapter: [ 'xhr', 'http' ],
2025-11-01T18:29:59.813009298Z     transformRequest: [ [Function: transformRequest] ],
2025-11-01T18:29:59.813051390Z     transformResponse: [ [Function: transformResponse] ],
2025-11-01T18:29:59.813093684Z     timeout: 60000,
2025-11-01T18:29:59.813133726Z     xsrfCookieName: 'XSRF-TOKEN',
2025-11-01T18:29:59.813174745Z     xsrfHeaderName: 'X-XSRF-TOKEN',
2025-11-01T18:29:59.813216287Z     maxContentLength: -1,
2025-11-01T18:29:59.813257811Z     maxBodyLength: -1,
2025-11-01T18:29:59.813297494Z     env: { FormData: [Function [FormData]], Blob: [class Blob] },
2025-11-01T18:29:59.813343908Z     validateStatus: [Function: validateStatus],
2025-11-01T18:29:59.813385952Z     headers: AxiosHeaders {
2025-11-01T18:29:59.813428062Z       Accept: 'application/json, text/plain, */*',
2025-11-01T18:29:59.813472904Z       'Accept-Encoding': 'identity',
2025-11-01T18:29:59.813520239Z       'User-Agent': 'foxone-androidtv/1.3.0 (Linux; Android 12; en-us; onn. 4K Streaming Box Build/SGZ1.221127.063.A1.9885170)'
2025-11-01T18:29:59.813578798Z     },
2025-11-01T18:29:59.813623271Z     method: 'get',
2025-11-01T18:29:59.813665440Z     url: 'https://fa.edge.foxdtc.digitalvideoplatform.com/1762099200_231ce9af2f49956fa3c2b5f9f6dd9869ada1cfac/*~/live-dr/ktxl-ue2/index_2.m3u8?zipcode=95630',
2025-11-01T18:29:59.813724554Z     data: undefined
2025-11-01T18:29:59.813768232Z   },
2025-11-01T18:29:59.813804876Z   request: <ref *1> Writable {
2025-11-01T18:29:59.813851414Z     _writableState: WritableState {
2025-11-01T18:29:59.813892270Z       objectMode: false,
2025-11-01T18:29:59.813932320Z       highWaterMark: 16384,
2025-11-01T18:29:59.813971993Z       finalCalled: false,
2025-11-01T18:29:59.814017443Z       needDrain: false,
2025-11-01T18:29:59.814058117Z       ending: false,
2025-11-01T18:29:59.814098186Z       ended: false,
2025-11-01T18:29:59.814139737Z       finished: false,
2025-11-01T18:29:59.814179310Z       destroyed: false,
2025-11-01T18:29:59.814219865Z       decodeStrings: true,
2025-11-01T18:29:59.814260572Z       defaultEncoding: 'utf8',
2025-11-01T18:29:59.814300858Z       length: 0,
2025-11-01T18:29:59.814340636Z       writing: false,
2025-11-01T18:29:59.814380484Z       corked: 0,
2025-11-01T18:29:59.814419842Z       sync: true,
2025-11-01T18:29:59.814459261Z       bufferProcessing: false,
2025-11-01T18:29:59.814501134Z       onwrite: [Function: bound onwrite],
2025-11-01T18:29:59.814545073Z       writecb: null,
2025-11-01T18:29:59.814585408Z       writelen: 0,
2025-11-01T18:29:59.814634640Z       afterWriteTickInfo: null,
2025-11-01T18:29:59.814676080Z       buffered: [],
2025-11-01T18:29:59.814714487Z       bufferedIndex: 0,
2025-11-01T18:29:59.814753279Z       allBuffers: true,
2025-11-01T18:29:59.814792859Z       allNoop: true,
2025-11-01T18:29:59.814834967Z       pendingcb: 0,
2025-11-01T18:29:59.814873596Z       constructed: true,
2025-11-01T18:29:59.814913417Z       prefinished: false,
2025-11-01T18:29:59.814955217Z       errorEmitted: false,
2025-11-01T18:29:59.814995226Z       emitClose: true,
2025-11-01T18:29:59.815034774Z       autoDestroy: true,
2025-11-01T18:29:59.815073977Z       errored: null,
2025-11-01T18:29:59.815113497Z       closed: false,
2025-11-01T18:29:59.815153295Z       closeEmitted: false,
2025-11-01T18:29:59.815193178Z       [Symbol(kOnFinished)]: []
2025-11-01T18:29:59.815236350Z     },
2025-11-01T18:29:59.815272695Z     _events: [Object: null prototype] {
2025-11-01T18:29:59.815313684Z       response: [Function: handleResponse],
2025-11-01T18:29:59.815354561Z       error: [Function: handleRequestError],
2025-11-01T18:29:59.815395598Z       socket: [Array]
2025-11-01T18:29:59.815435100Z     },
2025-11-01T18:29:59.815471093Z     _eventsCount: 3,
2025-11-01T18:29:59.815509654Z     _maxListeners: undefined,
2025-11-01T18:29:59.815549583Z     _options: {
2025-11-01T18:29:59.815587705Z       maxRedirects: 21,
2025-11-01T18:29:59.815635708Z       maxBodyLength: Infinity,
2025-11-01T18:29:59.815676096Z       protocol: 'https:',
2025-11-01T18:29:59.815720742Z       path: '/1762099200_231ce9af2f49956fa3c2b5f9f6dd9869ada1cfac/*~/live-dr/ktxl-ue2/index_2.m3u8?zipcode=95630',
2025-11-01T18:29:59.815767291Z       method: 'GET',
2025-11-01T18:29:59.815806129Z       headers: [Object: null prototype],
2025-11-01T18:29:59.815846607Z       agents: [Object],
2025-11-01T18:29:59.815885597Z       auth: undefined,
2025-11-01T18:29:59.815927795Z       beforeRedirect: [Function: dispatchBeforeRedirect],
2025-11-01T18:29:59.815969810Z       beforeRedirects: [Object],
2025-11-01T18:29:59.816010269Z       hostname: 'fa.edge.foxdtc.digitalvideoplatform.com',
2025-11-01T18:29:59.816052362Z       port: '',
2025-11-01T18:29:59.816091154Z       agent: undefined,
2025-11-01T18:29:59.816129916Z       nativeProtocols: [Object],
2025-11-01T18:29:59.816169789Z       pathname: '/1762099200_231ce9af2f49956fa3c2b5f9f6dd9869ada1cfac/*~/live-dr/ktxl-ue2/index_2.m3u8',
2025-11-01T18:29:59.816220708Z       search: '?zipcode=95630'
2025-11-01T18:29:59.816261110Z     },
2025-11-01T18:29:59.816297565Z     _ended: true,
2025-11-01T18:29:59.816338451Z     _ending: true,
2025-11-01T18:29:59.816380331Z     _redirectCount: 0,
2025-11-01T18:29:59.816419696Z     _redirects: [],
2025-11-01T18:29:59.816458063Z     _requestBodyLength: 0,
2025-11-01T18:29:59.816496413Z     _requestBodyBuffers: [],
2025-11-01T18:29:59.816534636Z     _onNativeResponse: [Function (anonymous)],
2025-11-01T18:29:59.816575554Z     _currentRequest: ClientRequest {
2025-11-01T18:29:59.816615862Z       _events: [Object: null prototype],
2025-11-01T18:29:59.816723272Z       _eventsCount: 7,
2025-11-01T18:29:59.816762406Z       _maxListeners: undefined,
2025-11-01T18:29:59.816804057Z       outputData: [],
2025-11-01T18:29:59.816843306Z       outputSize: 0,
2025-11-01T18:29:59.816886623Z       writable: true,
2025-11-01T18:29:59.816928275Z       destroyed: false,
2025-11-01T18:29:59.816967384Z       _last: true,
2025-11-01T18:29:59.817006168Z       chunkedEncoding: false,
2025-11-01T18:29:59.817045853Z       shouldKeepAlive: false,
2025-11-01T18:29:59.817085098Z       maxRequestsOnConnectionReached: false,
2025-11-01T18:29:59.817125748Z       _defaultKeepAlive: true,
2025-11-01T18:29:59.817164972Z       useChunkedEncodingByDefault: false,
2025-11-01T18:29:59.817206574Z       sendDate: false,
2025-11-01T18:29:59.817246434Z       _removedConnection: false,
2025-11-01T18:29:59.817285909Z       _removedContLen: false,
2025-11-01T18:29:59.817325232Z       _removedTE: false,
2025-11-01T18:29:59.817364388Z       strictContentLength: false,
2025-11-01T18:29:59.817406086Z       _contentLength: 0,
2025-11-01T18:29:59.817444588Z       _hasBody: true,
2025-11-01T18:29:59.817486939Z       _trailer: '',
2025-11-01T18:29:59.817525262Z       finished: true,
2025-11-01T18:29:59.817563840Z       _headerSent: true,
2025-11-01T18:29:59.817607073Z       _closed: false,
2025-11-01T18:29:59.817657923Z       socket: [TLSSocket],
2025-11-01T18:29:59.817697101Z       _header: 'GET /1762099200_231ce9af2f49956fa3c2b5f9f6dd9869ada1cfac/*~/live-dr/ktxl-ue2/index_2.m3u8?zipcode=95630 HTTP/1.1\r\n' +
2025-11-01T18:29:59.817747481Z         'Accept: application/json, text/plain, */*\r\n' +
2025-11-01T18:29:59.817790637Z         'Accept-Encoding: identity\r\n' +
2025-11-01T18:29:59.817833966Z         '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-01T18:29:59.817885781Z         'Host: fa.edge.foxdtc.digitalvideoplatform.com\r\n' +
2025-11-01T18:29:59.817932082Z         'Connection: close\r\n' +
2025-11-01T18:29:59.817975470Z         '\r\n',
2025-11-01T18:29:59.818013398Z       _keepAliveTimeout: 0,
2025-11-01T18:29:59.818052501Z       _onPendingData: [Function: nop],
2025-11-01T18:29:59.818095738Z       agent: [Agent],
2025-11-01T18:29:59.818136131Z       socketPath: undefined,
2025-11-01T18:29:59.818178410Z       method: 'GET',
2025-11-01T18:29:59.818216383Z       maxHeaderSize: undefined,
2025-11-01T18:29:59.818256513Z       insecureHTTPParser: undefined,
2025-11-01T18:29:59.818296789Z       joinDuplicateHeaders: undefined,
2025-11-01T18:29:59.818342225Z       path: '/1762099200_231ce9af2f49956fa3c2b5f9f6dd9869ada1cfac/*~/live-dr/ktxl-ue2/index_2.m3u8?zipcode=95630',
2025-11-01T18:29:59.818393428Z       _ended: false,
2025-11-01T18:29:59.818434658Z       res: null,
2025-11-01T18:29:59.818475193Z       aborted: false,
2025-11-01T18:29:59.818517148Z       timeoutCb: null,
2025-11-01T18:29:59.818556315Z       upgradeOrConnect: false,
2025-11-01T18:29:59.818598845Z       parser: null,
2025-11-01T18:29:59.818647013Z       maxHeadersCount: null,
2025-11-01T18:29:59.818688287Z       reusedSocket: false,
2025-11-01T18:29:59.818728062Z       host: 'fa.edge.foxdtc.digitalvideoplatform.com',
2025-11-01T18:29:59.818768811Z       protocol: 'https:',
2025-11-01T18:29:59.818807474Z       _redirectable: [Circular *1],
2025-11-01T18:29:59.818849078Z       [Symbol(kCapture)]: false,
2025-11-01T18:29:59.818890139Z       [Symbol(kBytesWritten)]: 0,
2025-11-01T18:29:59.818929899Z       [Symbol(kNeedDrain)]: false,
2025-11-01T18:29:59.818969905Z       [Symbol(corked)]: 0,
2025-11-01T18:29:59.819008812Z       [Symbol(kOutHeaders)]: [Object: null prototype],
2025-11-01T18:29:59.819050713Z       [Symbol(errored)]: null,
2025-11-01T18:29:59.819091693Z       [Symbol(kHighWaterMark)]: 16384,
2025-11-01T18:29:59.819131589Z       [Symbol(kRejectNonStandardBodyWrites)]: false,
2025-11-01T18:29:59.819172768Z       [Symbol(kUniqueHeaders)]: null
2025-11-01T18:29:59.819212534Z     },
2025-11-01T18:29:59.819250628Z     _currentUrl: 'https://fa.edge.foxdtc.digitalvideoplatform.com/1762099200_231ce9af2f49956fa3c2b5f9f6dd9869ada1cfac/*~/live-dr/ktxl-ue2/index_2.m3u8?zipcode=95630',
2025-11-01T18:29:59.819299897Z     _timeout: null,
2025-11-01T18:29:59.819339367Z     [Symbol(kCapture)]: false
2025-11-01T18:29:59.819378239Z   },
2025-11-01T18:29:59.819414858Z   cause: Error [ERR_TLS_CERT_ALTNAME_INVALID]: Hostname/IP does not match certificate's altnames: Host: fa.edge.foxdtc.digitalvideoplatform.com. is not in the cert's altnames: DNS:settings.data.microsoft.com
2025-11-01T18:29:59.819475856Z       at new NodeError (node:internal/errors:405:5)
2025-11-01T18:29:59.819522272Z       at Object.checkServerIdentity (node:tls:337:12)
2025-11-01T18:29:59.819565988Z       at TLSSocket.onConnectSecure (node:_tls_wrap:1669:27)
2025-11-01T18:29:59.819610068Z       at TLSSocket.emit (node:events:517:28)
2025-11-01T18:29:59.819660922Z       at TLSSocket.emit (node:domain:489:12)
2025-11-01T18:29:59.819701743Z       at TLSSocket._finishInit (node:_tls_wrap:1070:8)
2025-11-01T18:29:59.819746407Z       at TLSWrap.ssl.onhandshakedone (node:_tls_wrap:856:12) {
2025-11-01T18:29:59.819791246Z     reason: "Host: fa.edge.foxdtc.digitalvideoplatform.com. is not in the cert's altnames: DNS:settings.data.microsoft.com",
2025-11-01T18:29:59.819839977Z     host: 'fa.edge.foxdtc.digitalvideoplatform.com',
2025-11-01T18:29:59.819880803Z     cert: {
2025-11-01T18:29:59.819920061Z       subject: [Object: null prototype],
2025-11-01T18:29:59.819959957Z       issuer: [Object: null prototype],
2025-11-01T18:29:59.820003187Z       subjectaltname: 'DNS:settings.data.microsoft.com',
2025-11-01T18:29:59.820045055Z       infoAccess: [Object: null prototype],
2025-11-01T18:29:59.820085248Z       ca: false,
2025-11-01T18:29:59.820124410Z       modulus: 'C0D8BD61CAD84B3881BF8181D4C820A7B2A1CD9B17DEB38F77D357B8464051B8E774531A575447B610AAE0595E30FB4080991339BD744D2CB0D9D2E41DD643F611C1E5DD30B0C059816F30CA5E9F86F325E7BF984479CFE795390EF83486D3E13793A11B371C38A93026ED52ECACF9B6BF1945A70FF5343C28D35D38249F7C0C582B43F082E7457348A0CAC1D02E60402C480A0107BB5D044493ED5830B032C22D2E41DF14E5F55B3C3E7848781786312BAAA9AA2A91CD4CA298D88CDE724C03CE26437E57E7976D4B4E5023AE81CDE8B5037D576049971BA74966EFA2A18E330633C47253F66B86810B81F21A4353CEDA0DED1FFC96F6368540E1C1D1CF0C09',
2025-11-01T18:29:59.820185992Z       bits: 2048,
2025-11-01T18:29:59.820227286Z       exponent: '0x10001',
2025-11-01T18:29:59.820268504Z       pubkey: <Buffer 30 82 01 22 30 0d 06 09 2a 86 48 86 f7 0d 01 01 01 05 00 03 82 01 0f 00 30 82 01 0a 02 82 01 01 00 c0 d8 bd 61 ca d8 4b 38 81 bf 81 81 d4 c8 20 a7 b2 ... 244 more bytes>,
2025-11-01T18:29:59.820328910Z       valid_from: 'Oct 27 23:07:40 2025 GMT',
2025-11-01T18:29:59.820370806Z       valid_to: 'Apr 25 23:07:40 2026 GMT',
2025-11-01T18:29:59.820411465Z       fingerprint: '51:10:3D:D6:B9:9F:E9:75:23:FE:E6:E6:41:54:B1:77:F1:98:F3:5B',
2025-11-01T18:29:59.820457734Z       fingerprint256: '0C:BF:3F:E8:1B:0D:5F:EF:BB:C0:B8:06:99:83:36:6D:AE:C6:B2:FF:27:21:0C:D2:93:98:6C:6A:AE:01:76:0A',
2025-11-01T18:29:59.820506719Z       fingerprint512: 'B9:87:44:4C:4C:BD:13:BA:61:3E:E6:2D:16:CA:A4:4A:E7:9F:4E:F8:F2:D9:42:E9:61:FC:B1:3C:64:10:F1:77:1A:93:DB:07:8F:34:3A:04:81:30:34:9F:3C:89:AB:2B:15:AB:64:57:EC:FE:17:F2:88:B1:B3:09:1F:76:13:35',
2025-11-01T18:29:59.820565840Z       ext_key_usage: [Array],
2025-11-01T18:29:59.820604975Z       serialNumber: '330290BE85164FD586A1D3D54B00000290BE85',
2025-11-01T18:29:59.820657529Z       raw: <Buffer 30 82 08 7c 30 82 06 64 a0 03 02 01 02 02 13 33 02 90 be 85 16 4f d5 86 a1 d3 d5 4b 00 00 02 90 be 85 30 0d 06 09 2a 86 48 86 f7 0d 01 01 0c 05 00 30 ... 2126 more bytes>,
2025-11-01T18:29:59.820713636Z       issuerCertificate: [Object]
2025-11-01T18:29:59.820755244Z     },
2025-11-01T18:29:59.820791563Z     code: 'ERR_TLS_CERT_ALTNAME_INVALID'
2025-11-01T18:29:59.820831482Z   }
2025-11-01T18:29:59.820868033Z }
2025-11-01T18:30:05.387710490Z Channel #210 has an active event (College Football - Penn State at Ohio State). Going to start the stream.
2025-11-01T19:25:15.615273393Z Error fetching 210-segment-VMxsfi5d: write EPROTO 784AA3D3A77F0000:error:0A000410:SSL routines:ssl3_read_bytes:sslv3 alert handshake failure:ssl/record/rec_layer_s3.c:1605:SSL alert number 40
2025-11-01T19:25:15.615830054Z 
2025-11-01T19:25:16.134534340Z AxiosError: write EPROTO 784AA3D3A77F0000:error:0A000410:SSL routines:ssl3_read_bytes:sslv3 alert handshake failure:ssl/record/rec_layer_s3.c:1605:SSL alert number 40
2025-11-01T19:25:16.135020536Z 
2025-11-01T19:25:16.135096020Z     at Function.AxiosError.from (/app/node_modules/axios/lib/core/AxiosError.js:89:14)
2025-11-01T19:25:16.135156881Z     at RedirectableRequest.handleRequestError (/app/node_modules/axios/lib/adapters/http.js:533:25)
2025-11-01T19:25:16.135215228Z     at RedirectableRequest.emit (node:events:529:35)
2025-11-01T19:25:16.135263054Z     at RedirectableRequest.emit (node:domain:489:12)
2025-11-01T19:25:16.135310929Z     at ClientRequest.eventHandlers.<computed> (/app/node_modules/follow-redirects/index.js:14:24)
2025-11-01T19:25:16.135366098Z     at ClientRequest.emit (node:events:517:28)
2025-11-01T19:25:16.135411195Z     at ClientRequest.emit (node:domain:489:12)
2025-11-01T19:25:16.135453014Z     at TLSSocket.socketErrorListener (node:_http_client:501:9)
2025-11-01T19:25:16.135500949Z     at TLSSocket.emit (node:events:517:28)
2025-11-01T19:25:16.135584388Z     at TLSSocket.emit (node:domain:489:12) {
2025-11-01T19:25:16.135649332Z   syscall: 'write',
2025-11-01T19:25:16.135691450Z   code: 'EPROTO',
2025-11-01T19:25:16.135731811Z   errno: -71,
2025-11-01T19:25:16.135772047Z   config: {
2025-11-01T19:25:16.135814642Z     transitional: {
2025-11-01T19:25:16.135854699Z       silentJSONParsing: true,
2025-11-01T19:25:16.135900446Z       forcedJSONParsing: true,
2025-11-01T19:25:16.135941690Z       clarifyTimeoutError: false
2025-11-01T19:25:16.135983627Z     },
2025-11-01T19:25:16.136023730Z     adapter: [ 'xhr', 'http' ],
2025-11-01T19:25:16.136064340Z     transformRequest: [ [Function: transformRequest] ],
2025-11-01T19:25:16.136107265Z     transformResponse: [ [Function: transformResponse] ],
2025-11-01T19:25:16.136149505Z     timeout: 60000,
2025-11-01T19:25:16.136190942Z     xsrfCookieName: 'XSRF-TOKEN',
2025-11-01T19:25:16.136233091Z     xsrfHeaderName: 'X-XSRF-TOKEN',
2025-11-01T19:25:16.136278463Z     maxContentLength: -1,
2025-11-01T19:25:16.136320126Z     maxBodyLength: -1,
2025-11-01T19:25:16.136360673Z     env: { FormData: [Function [FormData]], Blob: [class Blob] },
2025-11-01T19:25:16.136410427Z     validateStatus: [Function: validateStatus],
2025-11-01T19:25:16.136452666Z     headers: AxiosHeaders {
2025-11-01T19:25:16.136496625Z       Accept: 'application/json, text/plain, */*',
2025-11-01T19:25:16.136546221Z       'User-Agent': 'foxone-androidtv/1.3.0 (Linux; Android 12; en-us; onn. 4K Streaming Box Build/SGZ1.221127.063.A1.9885170)',
2025-11-01T19:25:16.136611307Z       'Accept-Encoding': 'gzip, compress, deflate, br'
2025-11-01T19:25:16.136679947Z     },
2025-11-01T19:25:16.136718356Z     responseType: 'arraybuffer',
2025-11-01T19:25:16.136759474Z     method: 'get',
2025-11-01T19:25:16.136800822Z     url: 'https://foxdtc-video.akamaized.net/live-dr/ktxl-ue2/hdntl=exp=1762108206~acl=%2f*~data=hdntl~hmac=c1e2c29d08b267a1b712b80d4801c5c8754c2fb30e48e1f0f64f3b486a96f5fd/segment_2_5200835.ts',
2025-11-01T19:25:16.136885324Z     data: undefined
2025-11-01T19:25:16.136929439Z   },
2025-11-01T19:25:16.136972082Z   request: <ref *1> Writable {
2025-11-01T19:25:16.137017556Z     _writableState: WritableState {
2025-11-01T19:25:16.137059495Z       objectMode: false,
2025-11-01T19:25:16.137105808Z       highWaterMark: 16384,
2025-11-01T19:25:16.137148854Z       finalCalled: false,
2025-11-01T19:25:16.137189785Z       needDrain: false,
2025-11-01T19:25:16.137229947Z       ending: false,
2025-11-01T19:25:16.137269328Z       ended: false,
2025-11-01T19:25:16.137310160Z       finished: false,
2025-11-01T19:25:16.137350024Z       destroyed: false,
2025-11-01T19:25:16.137390955Z       decodeStrings: true,
2025-11-01T19:25:16.137430774Z       defaultEncoding: 'utf8',
2025-11-01T19:25:16.137470989Z       length: 0,
2025-11-01T19:25:16.137509821Z       writing: false,
2025-11-01T19:25:16.137549244Z       corked: 0,
2025-11-01T19:25:16.137588986Z       sync: true,
2025-11-01T19:25:16.137643102Z       bufferProcessing: false,
2025-11-01T19:25:16.137689867Z       onwrite: [Function: bound onwrite],
2025-11-01T19:25:16.137733307Z       writecb: null,
2025-11-01T19:25:16.137776188Z       writelen: 0,
2025-11-01T19:25:16.137815727Z       afterWriteTickInfo: null,
2025-11-01T19:25:16.137866692Z       buffered: [],
2025-11-01T19:25:16.137905904Z       bufferedIndex: 0,
2025-11-01T19:25:16.137945055Z       allBuffers: true,
2025-11-01T19:25:16.137984498Z       allNoop: true,
2025-11-01T19:25:16.138026694Z       pendingcb: 0,
2025-11-01T19:25:16.138066425Z       constructed: true,
2025-11-01T19:25:16.138106608Z       prefinished: false,
2025-11-01T19:25:16.138145946Z       errorEmitted: false,
2025-11-01T19:25:16.138185478Z       emitClose: true,
2025-11-01T19:25:16.138224930Z       autoDestroy: true,
2025-11-01T19:25:16.138265004Z       errored: null,
2025-11-01T19:25:16.138303640Z       closed: false,
2025-11-01T19:25:16.138343532Z       closeEmitted: false,
2025-11-01T19:25:16.138386061Z       [Symbol(kOnFinished)]: []
2025-11-01T19:25:16.138430112Z     },
2025-11-01T19:25:16.138466317Z     _events: [Object: null prototype] {
2025-11-01T19:25:16.138508138Z       response: [Function: handleResponse],
2025-11-01T19:25:16.138549507Z       error: [Function: handleRequestError],
2025-11-01T19:25:16.138589249Z       socket: [Array]
2025-11-01T19:25:16.138638806Z     },
2025-11-01T19:25:16.138675814Z     _eventsCount: 3,
2025-11-01T19:25:16.138714553Z     _maxListeners: undefined,
2025-11-01T19:25:16.138754044Z     _options: {
2025-11-01T19:25:16.138792493Z       maxRedirects: 21,
2025-11-01T19:25:16.138832164Z       maxBodyLength: Infinity,
2025-11-01T19:25:16.138878031Z       protocol: 'https:',
2025-11-01T19:25:16.138919857Z       path: '/live-dr/ktxl-ue2/hdntl=exp=1762108206~acl=%2f*~data=hdntl~hmac=c1e2c29d08b267a1b712b80d4801c5c8754c2fb30e48e1f0f64f3b486a96f5fd/segment_2_5200835.ts',
2025-11-01T19:25:16.138970042Z       method: 'GET',
2025-11-01T19:25:16.139009079Z       headers: [Object: null prototype],
2025-11-01T19:25:16.139051367Z       agents: [Object],
2025-11-01T19:25:16.139090616Z       auth: undefined,
2025-11-01T19:25:16.139133331Z       beforeRedirect: [Function: dispatchBeforeRedirect],
2025-11-01T19:25:16.139177567Z       beforeRedirects: [Object],
2025-11-01T19:25:16.139216321Z       hostname: 'foxdtc-video.akamaized.net',
2025-11-01T19:25:16.139258795Z       port: '',
2025-11-01T19:25:16.139297534Z       agent: undefined,
2025-11-01T19:25:16.139336314Z       nativeProtocols: [Object],
2025-11-01T19:25:16.139376289Z       pathname: '/live-dr/ktxl-ue2/hdntl=exp=1762108206~acl=%2f*~data=hdntl~hmac=c1e2c29d08b267a1b712b80d4801c5c8754c2fb30e48e1f0f64f3b486a96f5fd/segment_2_5200835.ts'
2025-11-01T19:25:16.139424783Z     },
2025-11-01T19:25:16.139461296Z     _ended: true,
2025-11-01T19:25:16.139500690Z     _ending: true,
2025-11-01T19:25:16.139540346Z     _redirectCount: 0,
2025-11-01T19:25:16.139579491Z     _redirects: [],
2025-11-01T19:25:16.139625215Z     _requestBodyLength: 0,
2025-11-01T19:25:16.139667362Z     _requestBodyBuffers: [],
2025-11-01T19:25:16.139706472Z     _onNativeResponse: [Function (anonymous)],
2025-11-01T19:25:16.139747523Z     _currentRequest: ClientRequest {
2025-11-01T19:25:16.139787505Z       _events: [Object: null prototype],
2025-11-01T19:25:16.139827488Z       _eventsCount: 7,
2025-11-01T19:25:16.139866208Z       _maxListeners: undefined,
2025-11-01T19:25:16.139906824Z       outputData: [],
2025-11-01T19:25:16.139945651Z       outputSize: 0,
2025-11-01T19:25:16.139988225Z       writable: true,
2025-11-01T19:25:16.140026966Z       destroyed: true,
2025-11-01T19:25:16.140066036Z       _last: true,
2025-11-01T19:25:16.140107180Z       chunkedEncoding: false,
2025-11-01T19:25:16.140147970Z       shouldKeepAlive: false,
2025-11-01T19:25:16.140187678Z       maxRequestsOnConnectionReached: false,
2025-11-01T19:25:16.140230598Z       _defaultKeepAlive: true,
2025-11-01T19:25:16.140271627Z       useChunkedEncodingByDefault: false,
2025-11-01T19:25:16.140312208Z       sendDate: false,
2025-11-01T19:25:16.140354752Z       _removedConnection: false,
2025-11-01T19:25:16.140394639Z       _removedContLen: false,
2025-11-01T19:25:16.140433986Z       _removedTE: false,
2025-11-01T19:25:16.140473672Z       strictContentLength: false,
2025-11-01T19:25:16.140515456Z       _contentLength: 0,
2025-11-01T19:25:16.140554218Z       _hasBody: true,
2025-11-01T19:25:16.140595251Z       _trailer: '',
2025-11-01T19:25:16.140640628Z       finished: true,
2025-11-01T19:25:16.140679845Z       _headerSent: true,
2025-11-01T19:25:16.140719069Z       _closed: true,
2025-11-01T19:25:16.140760839Z       socket: [TLSSocket],
2025-11-01T19:25:16.140799594Z       _header: 'GET /live-dr/ktxl-ue2/hdntl=exp=1762108206~acl=%2f*~data=hdntl~hmac=c1e2c29d08b267a1b712b80d4801c5c8754c2fb30e48e1f0f64f3b486a96f5fd/segment_2_5200835.ts HTTP/1.1\r\n' +
2025-11-01T19:25:16.140851809Z         'Accept: application/json, text/plain, */*\r\n' +
2025-11-01T19:25:16.140894993Z         '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-01T19:25:16.140948830Z         'Accept-Encoding: gzip, compress, deflate, br\r\n' +
2025-11-01T19:25:16.140994375Z         'Host: foxdtc-video.akamaized.net\r\n' +
2025-11-01T19:25:16.141037425Z         'Connection: close\r\n' +
2025-11-01T19:25:16.141079184Z         '\r\n',
2025-11-01T19:25:16.141116638Z       _keepAliveTimeout: 0,
2025-11-01T19:25:16.141158769Z       _onPendingData: [Function: nop],
2025-11-01T19:25:16.141203491Z       agent: [Agent],
2025-11-01T19:25:16.141242104Z       socketPath: undefined,
2025-11-01T19:25:16.141283567Z       method: 'GET',
2025-11-01T19:25:16.141321657Z       maxHeaderSize: undefined,
2025-11-01T19:25:16.141362162Z       insecureHTTPParser: undefined,
2025-11-01T19:25:16.141402748Z       joinDuplicateHeaders: undefined,
2025-11-01T19:25:16.141443287Z       path: '/live-dr/ktxl-ue2/hdntl=exp=1762108206~acl=%2f*~data=hdntl~hmac=c1e2c29d08b267a1b712b80d4801c5c8754c2fb30e48e1f0f64f3b486a96f5fd/segment_2_5200835.ts',
2025-11-01T19:25:16.141490742Z       _ended: false,
2025-11-01T19:25:16.141531086Z       res: null,
2025-11-01T19:25:16.141572722Z       aborted: false,
2025-11-01T19:25:16.141613053Z       timeoutCb: null,
2025-11-01T19:25:16.141661219Z       upgradeOrConnect: false,
2025-11-01T19:25:16.141701295Z       parser: null,
2025-11-01T19:25:16.141740233Z       maxHeadersCount: null,
2025-11-01T19:25:16.141779530Z       reusedSocket: false,
2025-11-01T19:25:16.141820432Z       host: 'foxdtc-video.akamaized.net',
2025-11-01T19:25:16.141861108Z       protocol: 'https:',
2025-11-01T19:25:16.141900048Z       _redirectable: [Circular *1],
2025-11-01T19:25:16.141941786Z       [Symbol(kCapture)]: false,
2025-11-01T19:25:16.141986659Z       [Symbol(kBytesWritten)]: 0,
2025-11-01T19:25:16.142027320Z       [Symbol(kNeedDrain)]: false,
2025-11-01T19:25:16.142086772Z       [Symbol(corked)]: 0,
2025-11-01T19:25:16.142126525Z       [Symbol(kOutHeaders)]: [Object: null prototype],
2025-11-01T19:25:16.142168795Z       [Symbol(errored)]: null,
2025-11-01T19:25:16.142210435Z       [Symbol(kHighWaterMark)]: 16384,
2025-11-01T19:25:16.142250722Z       [Symbol(kRejectNonStandardBodyWrites)]: false,
2025-11-01T19:25:16.142292407Z       [Symbol(kUniqueHeaders)]: null
2025-11-01T19:25:16.142332775Z     },
2025-11-01T19:25:16.142369582Z     _currentUrl: 'https://foxdtc-video.akamaized.net/live-dr/ktxl-ue2/hdntl=exp=1762108206~acl=%2f*~data=hdntl~hmac=c1e2c29d08b267a1b712b80d4801c5c8754c2fb30e48e1f0f64f3b486a96f5fd/segment_2_5200835.ts',
2025-11-01T19:25:16.142423643Z     _timeout: null,
2025-11-01T19:25:16.142465922Z     [Symbol(kCapture)]: false
2025-11-01T19:25:16.142506764Z   },
2025-11-01T19:25:16.142543285Z   cause: Error: write EPROTO 784AA3D3A77F0000:error:0A000410:SSL routines:ssl3_read_bytes:sslv3 alert handshake failure:ssl/record/rec_layer_s3.c:1605:SSL alert number 40
2025-11-01T19:25:16.142598611Z   
2025-11-01T19:25:16.142645580Z       at WriteWrap.onWriteComplete [as oncomplete] (node:internal/stream_base_commons:94:16) {
2025-11-01T19:25:16.142696482Z     errno: -71,
2025-11-01T19:25:16.142735784Z     code: 'EPROTO',
2025-11-01T19:25:16.142776312Z     syscall: 'write'
2025-11-01T19:25:16.142815720Z   }
2025-11-01T19:25:16.142851710Z }
2025-11-01T19:25:16.142887724Z Error fetching 210-segment-VMxsfi5d: Cached segment or key failed to resolve!

College Football - Texas Tech at Kansas State 12:30-16:00 interrupted
CDVR log

2025/11/01 12:31:09.484713 [DVR] Error running job 1762025400-ch43 College Football: Could not fetch playlist from 192.168.1.4:8185: GET: http://192.168.1.4:8185/chunklist/210/e8qeDFm7.m3u8: 404 Not Found
Container log
2025-11-01T19:31:04.418994792Z AxiosError: getaddrinfo ENOTFOUND foxdtc-video.akamaized.net
2025-11-01T19:31:04.419684538Z     at Function.AxiosError.from (/app/node_modules/axios/lib/core/AxiosError.js:89:14)
2025-11-01T19:31:04.419880430Z     at RedirectableRequest.handleRequestError (/app/node_modules/axios/lib/adapters/http.js:533:25)
2025-11-01T19:31:04.419980200Z     at RedirectableRequest.emit (node:events:529:35)
2025-11-01T19:31:04.420064740Z     at RedirectableRequest.emit (node:domain:489:12)
2025-11-01T19:31:04.420124381Z     at ClientRequest.eventHandlers.<computed> (/app/node_modules/follow-redirects/index.js:14:24)
2025-11-01T19:31:04.419058932Z Could not parse chunklist properly!
2025-11-01T19:31:04.420546097Z Could not get chunklist for channel #210.
2025-11-01T19:31:04.420242703Z     at ClientRequest.emit (node:events:517:28)
2025-11-01T19:31:04.420802232Z     at ClientRequest.emit (node:domain:489:12)
2025-11-01T19:31:04.420855081Z     at TLSSocket.socketErrorListener (node:_http_client:501:9)
2025-11-01T19:31:04.420915250Z     at TLSSocket.emit (node:events:517:28)
2025-11-01T19:31:04.420963527Z     at TLSSocket.emit (node:domain:489:12) {
2025-11-01T19:31:04.421016626Z   hostname: 'foxdtc-video.akamaized.net',
2025-11-01T19:31:04.421074639Z   syscall: 'getaddrinfo',
2025-11-01T19:31:04.421116796Z   code: 'ENOTFOUND',
2025-11-01T19:31:04.421167883Z   errno: -3007,
2025-11-01T19:31:04.421217781Z   config: {
2025-11-01T19:31:04.421258201Z     transitional: {
2025-11-01T19:31:04.421307585Z       silentJSONParsing: true,
2025-11-01T19:31:04.421354296Z       forcedJSONParsing: true,
2025-11-01T19:31:04.421419572Z       clarifyTimeoutError: false
2025-11-01T19:31:04.421566010Z     },
2025-11-01T19:31:04.421636344Z     adapter: [ 'xhr', 'http' ],
2025-11-01T19:31:04.421680952Z     transformRequest: [ [Function: transformRequest] ],
2025-11-01T19:31:04.421735608Z     transformResponse: [ [Function: transformResponse] ],
2025-11-01T19:31:04.421778141Z     timeout: 60000,
2025-11-01T19:31:04.421841922Z     xsrfCookieName: 'XSRF-TOKEN',
2025-11-01T19:31:04.421895421Z     xsrfHeaderName: 'X-XSRF-TOKEN',
2025-11-01T19:31:04.421949799Z     maxContentLength: -1,
2025-11-01T19:31:04.421991649Z     maxBodyLength: -1,
2025-11-01T19:31:04.422041709Z     env: { FormData: [Function [FormData]], Blob: [class Blob] },
2025-11-01T19:31:04.422088411Z     validateStatus: [Function: validateStatus],
2025-11-01T19:31:04.422140283Z     headers: AxiosHeaders {
2025-11-01T19:31:04.422191089Z       Accept: 'application/json, text/plain, */*',
2025-11-01T19:31:04.422236573Z       'Accept-Encoding': 'identity',
2025-11-01T19:31:04.422289992Z       'User-Agent': 'foxone-androidtv/1.3.0 (Linux; Android 12; en-us; onn. 4K Streaming Box Build/SGZ1.221127.063.A1.9885170)'
2025-11-01T19:31:04.422364865Z     },
2025-11-01T19:31:04.422413438Z     method: 'get',
2025-11-01T19:31:04.422454533Z     url: 'https://foxdtc-video.akamaized.net/live-dr/ktxl-ue2/hdntl=exp=1762108206~acl=%2f*~data=hdntl~hmac=c1e2c29d08b267a1b712b80d4801c5c8754c2fb30e48e1f0f64f3b486a96f5fd/index_2.m3u8?zipcode=95630',
2025-11-01T19:31:04.422547184Z     data: undefined
2025-11-01T19:31:04.422600281Z   },
2025-11-01T19:31:04.422654222Z   request: <ref *1> Writable {
2025-11-01T19:31:04.422709484Z     _writableState: WritableState {
2025-11-01T19:31:04.422752407Z       objectMode: false,
2025-11-01T19:31:04.422802668Z       highWaterMark: 16384,
2025-11-01T19:31:04.422844393Z       finalCalled: false,
2025-11-01T19:31:04.422895394Z       needDrain: false,
2025-11-01T19:31:04.422936114Z       ending: false,
2025-11-01T19:31:04.422986793Z       ended: false,
2025-11-01T19:31:04.423035620Z       finished: false,
2025-11-01T19:31:04.423076231Z       destroyed: false,
2025-11-01T19:31:04.423127538Z       decodeStrings: true,
2025-11-01T19:31:04.423168388Z       defaultEncoding: 'utf8',
2025-11-01T19:31:04.423208704Z       length: 0,
2025-11-01T19:31:04.423249102Z       writing: false,
2025-11-01T19:31:04.423289641Z       corked: 0,
2025-11-01T19:31:04.423334288Z       sync: true,
2025-11-01T19:31:04.423374089Z       bufferProcessing: false,
2025-11-01T19:31:04.423416004Z       onwrite: [Function: bound onwrite],
2025-11-01T19:31:04.423458898Z       writecb: null,
2025-11-01T19:31:04.423499595Z       writelen: 0,
2025-11-01T19:31:04.423539557Z       afterWriteTickInfo: null,
2025-11-01T19:31:04.423580843Z       buffered: [],
2025-11-01T19:31:04.423643558Z       bufferedIndex: 0,
2025-11-01T19:31:04.423691482Z       allBuffers: true,
2025-11-01T19:31:04.423733406Z       allNoop: true,
2025-11-01T19:31:04.423775789Z       pendingcb: 0,
2025-11-01T19:31:04.423816597Z       constructed: true,
2025-11-01T19:31:04.423857024Z       prefinished: false,
2025-11-01T19:31:04.423897083Z       errorEmitted: false,
2025-11-01T19:31:04.423937179Z       emitClose: true,
2025-11-01T19:31:04.423976742Z       autoDestroy: true,
2025-11-01T19:31:04.424024150Z       errored: null,
2025-11-01T19:31:04.424063734Z       closed: false,
2025-11-01T19:31:04.424103447Z       closeEmitted: false,
2025-11-01T19:31:04.424143880Z       [Symbol(kOnFinished)]: []
2025-11-01T19:31:04.424185247Z     },
2025-11-01T19:31:04.424221169Z     _events: [Object: null prototype] {
2025-11-01T19:31:04.424263449Z       response: [Function: handleResponse],
2025-11-01T19:31:04.424305973Z       error: [Function: handleRequestError],
2025-11-01T19:31:04.424350032Z       socket: [Array]
2025-11-01T19:31:04.424390703Z     },
2025-11-01T19:31:04.424427393Z     _eventsCount: 3,
2025-11-01T19:31:04.424466583Z     _maxListeners: undefined,
2025-11-01T19:31:04.424507302Z     _options: {
2025-11-01T19:31:04.424549060Z       maxRedirects: 21,
2025-11-01T19:31:04.424589304Z       maxBodyLength: Infinity,
2025-11-01T19:31:04.424659873Z       protocol: 'https:',
2025-11-01T19:31:04.424706065Z       path: '/live-dr/ktxl-ue2/hdntl=exp=1762108206~acl=%2f*~data=hdntl~hmac=c1e2c29d08b267a1b712b80d4801c5c8754c2fb30e48e1f0f64f3b486a96f5fd/index_2.m3u8?zipcode=95630',
2025-11-01T19:31:04.424768319Z       method: 'GET',
2025-11-01T19:31:04.424808154Z       headers: [Object: null prototype],
2025-11-01T19:31:04.424849484Z       agents: [Object],
2025-11-01T19:31:04.424888203Z       auth: undefined,
2025-11-01T19:31:04.424928163Z       beforeRedirect: [Function: dispatchBeforeRedirect],
2025-11-01T19:31:04.424970703Z       beforeRedirects: [Object],
2025-11-01T19:31:04.425012313Z       hostname: 'foxdtc-video.akamaized.net',
2025-11-01T19:31:04.425055050Z       port: '',
2025-11-01T19:31:04.425094036Z       agent: undefined,
2025-11-01T19:31:04.425136926Z       nativeProtocols: [Object],
2025-11-01T19:31:04.425178440Z       pathname: '/live-dr/ktxl-ue2/hdntl=exp=1762108206~acl=%2f*~data=hdntl~hmac=c1e2c29d08b267a1b712b80d4801c5c8754c2fb30e48e1f0f64f3b486a96f5fd/index_2.m3u8',
2025-11-01T19:31:04.425232920Z       search: '?zipcode=95630'
2025-11-01T19:31:04.425276506Z     },
2025-11-01T19:31:04.425314752Z     _ended: true,
2025-11-01T19:31:04.425354554Z     _ending: true,
2025-11-01T19:31:04.425394110Z     _redirectCount: 0,
2025-11-01T19:31:04.425434225Z     _redirects: [],
2025-11-01T19:31:04.425473812Z     _requestBodyLength: 0,
2025-11-01T19:31:04.425513251Z     _requestBodyBuffers: [],
2025-11-01T19:31:04.425552146Z     _onNativeResponse: [Function (anonymous)],
2025-11-01T19:31:04.425596894Z     _currentRequest: ClientRequest {
2025-11-01T19:31:04.425655585Z       _events: [Object: null prototype],
2025-11-01T19:31:04.425702346Z       _eventsCount: 7,
2025-11-01T19:31:04.425747663Z       _maxListeners: undefined,
2025-11-01T19:31:04.425791677Z       outputData: [],
2025-11-01T19:31:04.425842281Z       outputSize: 0,
2025-11-01T19:31:04.425882733Z       writable: true,
2025-11-01T19:31:04.425926466Z       destroyed: false,
2025-11-01T19:31:04.425965889Z       _last: true,
2025-11-01T19:31:04.426005458Z       chunkedEncoding: false,
2025-11-01T19:31:04.426046766Z       shouldKeepAlive: false,
2025-11-01T19:31:04.426090340Z       maxRequestsOnConnectionReached: false,
2025-11-01T19:31:04.426131254Z       _defaultKeepAlive: true,
2025-11-01T19:31:04.426172874Z       useChunkedEncodingByDefault: false,
2025-11-01T19:31:04.426222363Z       sendDate: false,
2025-11-01T19:31:04.426263591Z       _removedConnection: false,
2025-11-01T19:31:04.426304183Z       _removedContLen: false,
2025-11-01T19:31:04.426344189Z       _removedTE: false,
2025-11-01T19:31:04.426383631Z       strictContentLength: false,
2025-11-01T19:31:04.426424995Z       _contentLength: 0,
2025-11-01T19:31:04.426464338Z       _hasBody: true,
2025-11-01T19:31:04.426503689Z       _trailer: '',
2025-11-01T19:31:04.426546207Z       finished: true,
2025-11-01T19:31:04.426585648Z       _headerSent: true,
2025-11-01T19:31:04.426647943Z       _closed: false,
2025-11-01T19:31:04.426689538Z       socket: [TLSSocket],
2025-11-01T19:31:04.426729150Z       _header: 'GET /live-dr/ktxl-ue2/hdntl=exp=1762108206~acl=%2f*~data=hdntl~hmac=c1e2c29d08b267a1b712b80d4801c5c8754c2fb30e48e1f0f64f3b486a96f5fd/index_2.m3u8?zipcode=95630 HTTP/1.1\r\n' +
2025-11-01T19:31:04.426791323Z         'Accept: application/json, text/plain, */*\r\n' +
2025-11-01T19:31:04.426840351Z         'Accept-Encoding: identity\r\n' +
2025-11-01T19:31:04.426882057Z         '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-01T19:31:04.426939622Z         'Host: foxdtc-video.akamaized.net\r\n' +
2025-11-01T19:31:04.426988071Z         'Connection: close\r\n' +
2025-11-01T19:31:04.427030406Z         '\r\n',
2025-11-01T19:31:04.427071877Z       _keepAliveTimeout: 0,
2025-11-01T19:31:04.427111353Z       _onPendingData: [Function: nop],
2025-11-01T19:31:04.427155961Z       agent: [Agent],
2025-11-01T19:31:04.427195258Z       socketPath: undefined,
2025-11-01T19:31:04.427235491Z       method: 'GET',
2025-11-01T19:31:04.427274223Z       maxHeaderSize: undefined,
2025-11-01T19:31:04.427317737Z       insecureHTTPParser: undefined,
2025-11-01T19:31:04.427357988Z       joinDuplicateHeaders: undefined,
2025-11-01T19:31:04.427474525Z       path: '/live-dr/ktxl-ue2/hdntl=exp=1762108206~acl=%2f*~data=hdntl~hmac=c1e2c29d08b267a1b712b80d4801c5c8754c2fb30e48e1f0f64f3b486a96f5fd/index_2.m3u8?zipcode=95630',
2025-11-01T19:31:04.427531132Z       _ended: false,
2025-11-01T19:31:04.427570824Z       res: null,
2025-11-01T19:31:04.427614089Z       aborted: false,
2025-11-01T19:31:04.427674041Z       timeoutCb: null,
2025-11-01T19:31:04.427713219Z       upgradeOrConnect: false,
2025-11-01T19:31:04.427752662Z       parser: null,
2025-11-01T19:31:04.427801637Z       maxHeadersCount: null,
2025-11-01T19:31:04.427846342Z       reusedSocket: false,
2025-11-01T19:31:04.427886391Z       host: 'foxdtc-video.akamaized.net',
2025-11-01T19:31:04.427927521Z       protocol: 'https:',
2025-11-01T19:31:04.427966447Z       _redirectable: [Circular *1],
2025-11-01T19:31:04.428010704Z       [Symbol(kCapture)]: false,
2025-11-01T19:31:04.428052798Z       [Symbol(kBytesWritten)]: 0,
2025-11-01T19:31:04.428095231Z       [Symbol(kNeedDrain)]: false,
2025-11-01T19:31:04.428137323Z       [Symbol(corked)]: 0,
2025-11-01T19:31:04.428179321Z       [Symbol(kOutHeaders)]: [Object: null prototype],
2025-11-01T19:31:04.428221654Z       [Symbol(errored)]: null,
2025-11-01T19:31:04.428261153Z       [Symbol(kHighWaterMark)]: 16384,
2025-11-01T19:31:04.428307260Z       [Symbol(kRejectNonStandardBodyWrites)]: false,
2025-11-01T19:31:04.428354957Z       [Symbol(kUniqueHeaders)]: null
2025-11-01T19:31:04.428395756Z     },
2025-11-01T19:31:04.428432788Z     _currentUrl: 'https://foxdtc-video.akamaized.net/live-dr/ktxl-ue2/hdntl=exp=1762108206~acl=%2f*~data=hdntl~hmac=c1e2c29d08b267a1b712b80d4801c5c8754c2fb30e48e1f0f64f3b486a96f5fd/index_2.m3u8?zipcode=95630',
2025-11-01T19:31:04.428488760Z     _timeout: null,
2025-11-01T19:31:04.428533814Z     [Symbol(kCapture)]: false
2025-11-01T19:31:04.428573726Z   },
2025-11-01T19:31:04.428610735Z   cause: Error: getaddrinfo ENOTFOUND foxdtc-video.akamaized.net
2025-11-01T19:31:04.428671199Z       at GetAddrInfoReqWrap.onlookup [as oncomplete] (node:dns:107:26) {
2025-11-01T19:31:04.428821332Z     errno: -3007,
2025-11-01T19:31:04.428865824Z     code: 'ENOTFOUND',
2025-11-01T19:31:04.428905543Z     syscall: 'getaddrinfo',
2025-11-01T19:31:04.428947735Z     hostname: 'foxdtc-video.akamaized.net'
2025-11-01T19:31:04.428988741Z   }
2025-11-01T19:31:04.429024899Z }
2025-11-01T19:31:10.548150333Z Channel #210 has an active event (College Football - Texas Tech at Kansas State). Going to start the stream.

This recording is still getting interrupted, 5 times so far.

2025/11/01 12:31:09.484713 [DVR] Error running job 1762025400-ch43 College Football: Could not fetch playlist from 192.168.1.4:8185: GET: http://192.168.1.4:8185/chunklist/210/e8qeDFm7.m3u8: 404 Not Found
2025/11/01 14:09:36.671376 [DVR] Error running job 1762025400-ch43 College Football: Could not fetch playlist from 192.168.1.4:8185: GET: http://192.168.1.4:8185/chunklist/210/s6lr0EPi.m3u8: 404 Not Found
2025/11/01 14:11:41.703112 [DVR] Error running job 1762025400-ch43 College Football: Could not fetch playlist from 192.168.1.4:8185: GET: http://192.168.1.4:8185/chunklist/210/zflmFhbZ.m3u8: 404 Not Found
2025/11/01 14:22:54.273317 [DVR] Error running job 1762025400-ch43 College Football: Could not fetch playlist from 192.168.1.4:8185: GET: http://192.168.1.4:8185/chunklist/210/ffusKz6w.m3u8: 404 Not Found
2025/11/01 15:32:58.822638 [DVR] Error running job 1762025400-ch43 College Football: Could not fetch playlist from 192.168.1.4:8185: GET: http://192.168.1.4:8185/chunklist/210/aG0pjpqX.m3u8: 404 Not Found

Since errors in the container log are quite verbose (total container log error entries are 1,185 lines, 85,180 characters), I'll just post the first line for each.


Channels DVR log

2025/11/01 12:31:09.484713 [DVR] Error running job 1762025400-ch43 College Football: Could not fetch playlist from 192.168.1.4:8185: GET: http://192.168.1.4:8185/chunklist/210/e8qeDFm7.m3u8: 404 Not Found

Container log error is 185 lines, 12722 characters

2025-11-01T19:31:04.418994792Z AxiosError: getaddrinfo ENOTFOUND foxdtc-video.akamaized.net

Channels DVR log

2025/11/01 14:09:36.671376 [DVR] Error running job 1762025400-ch43 College Football: Could not fetch playlist from 192.168.1.4:8185: GET: http://192.168.1.4:8185/chunklist/210/s6lr0EPi.m3u8: 404 Not Found

Container log error is 186 lines, 12644 characters

2025-11-01T21:09:31.502312363Z AxiosError: getaddrinfo ENOTFOUND fa.edge.foxdtc.digitalvideoplatform.com

Channels DVR log

2025/11/01 14:11:41.703112 [DVR] Error running job 1762025400-ch43 College Football: Could not fetch playlist from 192.168.1.4:8185: GET: http://192.168.1.4:8185/chunklist/210/zflmFhbZ.m3u8: 404 Not Found

Container log error is 186 lines, 12722 characters

2025-11-01T21:11:36.684368088Z AxiosError: write EPROTO 784AA3D3A77F0000:error:0A000410:SSL routines:ssl3_read_bytes:sslv3 alert handshake failure:ssl/record/rec_layer_s3.c:1605:SSL alert number 40

Channels DVR log

2025/11/01 14:22:54.273317 [DVR] Error running job 1762025400-ch43 College Football: Could not fetch playlist from 192.168.1.4:8185: GET: http://192.168.1.4:8185/chunklist/210/ffusKz6w.m3u8: 404 Not Found

Container log error is 265 lines, 22361 characters

2025-11-01T21:22:49.164785165Z AxiosError: Hostname/IP does not match certificate's altnames: Host: cf.edge.foxdtc.digitalvideoplatform.com. is not in the cert's altnames: DNS:citiretailservices.citibankonline.com, DNS:crs.registermycc.com, DNS:retailservicesconsumer.citi.com, DNS:www.retailservicesconsumer.citi.com

Channels DVR log

2025/11/01 15:32:58.822638 [DVR] Error running job 1762025400-ch43 College Football: Could not fetch playlist from 192.168.1.4:8185: GET: http://192.168.1.4:8185/chunklist/210/aG0pjpqX.m3u8: 404 Not Found

Container log error is 363 lines, 24731 characters

2025-11-01T22:32:54.595945586Z AxiosError: Request failed with status code 503

I am not sure what is going here, but if I look at the logs I see that most are DNS related issues.

The first log it is retrieving a certificate from Microsoft for the site, which is quite curious.
The logs with getaddrinfo ENOTFOUND cannot find the address, which also appears to be DNS related.
The next log is another odd DNS issue. Not sure why it is querying something to do with citi.com.

2025-11-01T21:22:49.164785165Z AxiosError: Hostname/IP does not match certificate's altnames: Host: cf.edge.foxdtc.digitalvideoplatform.com. is not in the cert's altnames: DNS:citiretailservices.citibankonline.com, DNS:crs.registermycc.com, DNS:retailservicesconsumer.citi.com, DNS:www.retailservicesconsumer.citi.com

The AxiosError: write EPROTO error has to do with certificate handshakes and could also be a URL/DNS cert mismatch like the Microsoft one.

I honestly have no ideas on how to fix this as I don't think it has anything to do with what the EPlustTV code for FoxOne is doing.

tony: will ESPN+, and ESPN on ABC be removed from the app in a new revision?

ESPN on abc is fine if it links to the ESPN3 event instead of abc to avoid drm

That way if someone tells you game is on abc it's easy to find with the docker

Are you guys having FOX 4k hiccups today

I think its just when the games go OT and its suboptimal on linear Is there any way around this?

Had issues.

I have an idea.. if game is on - Miami game , Notre dame not on yet, have the docker check the stream, notre dame stream wasnt live, so it should have instead played the stream that was on - miami . have it ping the stream to see if its live and do some sort of fallback. is that possible?

Something like if current event is not on, use prior event url

Sometimes it starts espnu and changes channels. That might be fixable too with non linear, but hopefully linear can be fixed with this:

Have a line of code ensuring the channels are all active and showing content on linear and if not use prior event url. Should be an easy fix

I think added code logic for all eplustb non linear could make the screen "event has not begun" to "event has concluded" would be useful I think . My recordings fail due to this. It could render a simple screen and have it precede and succeed the copy ta from the hls proxy

ESPN+ (i.e. ESPN Account) doesn't schedule ESPN+ events anymore, even if you have it enabled. I hoped the GUI was clear in that regard. But the authentication option will remain for now because the token apparently still helps someone upthread. You can disable the provider if you want.

I still intend to remove ESPN on ABC. We won't change the label on ESPN3 events, not all of them are on ABC and it's not a linear channel.

If this is how you watch, then I'd recommend simply disabling the dedicated linear channels option in EPlusTV. That should address all of the issues you mention.

1 Like

I think it could be better but I realize it's a little bit of coding . Maybe I'll have to code the ability. Also ABC would be not hard it could still post ESPN3 in the extra channels but having a linear channel would be nice I have a grandma and she uses it and it confuses her would be nice to have the abc events on own channel but I understand if you don't want to

Re-pulling the latest indeed fix my issue - that was quick - Thanks!

Thanks for taking a look. That does appear to be the case.
I double checked my router and NAS network settings and nothing has changed.

I rebooted the router, then the NAS.
I then recorded 4 non EPLusTV channels while running Internet speed tests and no issues.

I have recordings set from EPLusTV to record two different linear channels at the same time for 3 hours and just saw another certificate error mentioning a microsoft.com certificate.

Not sure what's going on :confused: since I have no issues with other streaming sources (including Channels DVR sources) or using the Internet from my Windows PC. My network is setup to use my router for DNS, which uses Cloudflare DoH to resolve.

The last error I got yesterday (503 for cf.edge.foxdtc.digitalvideoplatform.com) was from Cloudfront.
Made me think maybe the FoxOne distribution network was overloaded or misconfigured.

data: '<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">\n' +
  '<HTML><HEAD><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">\n' +
  '<TITLE>ERROR: The request could not be satisfied</TITLE>\n' +
  '</HEAD><BODY>\n' +
  '<H1>503 ERROR</H1>\n' +
  '<H2>The request could not be satisfied.</H2>\n' +
  '<HR noshade size="1px">\n' +
  "The Lambda function associated with the CloudFront distribution is invalid or doesn't have the required permissions.\n" +
  "We can't connect to the server for this app or website at this time. There might be too much traffic or a configuration error. Try again later, or contact the app or website owner.\n" +
  '<BR clear="all">\n' +
  'If you provide content to customers through CloudFront, you can find steps to troubleshoot and help prevent this error by reviewing the CloudFront documentation.\n' +
  '<BR clear="all">\n' +
  '<HR noshade size="1px">\n' +
  '<PRE>\n' +
  'Generated by cloudfront (CloudFront)\n' +
  'Request ID: dEvAGXRWRi5lqPA8FdErTNGs6m6yoO2pqdtqhf5VLmrcolHWf_2ULA==\n' +
  '</PRE>\n' +
  '<ADDRESS>\n' +
  '</ADDRESS>\n' +
  '</BODY></HTML>'

If you think it's a DNS (Cloudflare) issue and could help troubleshoot, I can override the DNS servers on the container itself in the compose statement.

    network_mode: "bridge"
    dns:
      - "75.75.75.75"
      - "75.75.76.76"

Container just crashed. Think I'll quit testing today.

2025-11-03T00:43:35.687650699Z AxiosError: Client network socket disconnected before secure TLS connection was established
2025-11-03T00:43:35.801329139Z AxiosError: Client network socket disconnected before secure TLS connection was established
2025-11-03T00:43:47.085702200Z > [email protected] start
2025-11-03T00:43:47.085803549Z > ts-node -r tsconfig-paths/register index.tsx
2025-11-03T00:44:18.540527215Z === E+TV v4.14.2 starting ===

FoxOne rotates CDNs between cloudfront, fastly and akamai, so if one is overloaded I would think that it would choose one of the other two. Misconfiguration on there end is always possible although it is improbable.

I honestly have no idea why it is not working. Cloudflare DNS over DoH should not be an issue.

It seems that you have two separate issues going on here:

  1. DNS not resolving
  2. TLS handshakes failing, often times with incorrect certificates like the microsoft or citi ones.

I would do an nslookup of the endpoints from the container, such as:
docker exec eplustv nslookup fa.edge.foxdtc.digitalvideoplatform.com
or docker exec eplustv nslookup ct.edge.foxdtc.digitalvideoplatform.com
or docker exec eplustv nslookup ffoxdtc-video.akamaized.net

I would also test configuring the DNS for the container like you suggested. You could use the cloudflare DNS servers to test and then other providers like google or quad9 if those fail.

Pretty sure you meant cf.edge.foxdtc.digitalvideoplatform.com, not ct.edge.foxdtc.digitalvideoplatform.com
Also foxdtc-video.akamaized.net, not ffoxdtc-video.akamaized.net


eplustv docker from NAS SSH
root@DS1019PLUS:~# docker exec eplustv nslookup fa.edge.foxdtc.digitalvideoplatform.com
Server:         127.0.0.11
Address:        127.0.0.11: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.130.18
Name:   fa-dvpvideo.map.fastly.net
Address: 151.101.194.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::530
Name:   fa-dvpvideo.map.fastly.net
Address: 2a04:4e42:400::530
Name:   fa-dvpvideo.map.fastly.net
Address: 2a04:4e42:200::530
Name:   fa-dvpvideo.map.fastly.net
Address: 2a04:4e42:600::530

root@DS1019PLUS:~# docker exec eplustv nslookup cf.edge.foxdtc.digitalvideoplatform.com
Server:         127.0.0.11
Address:        127.0.0.11:53

Non-authoritative answer:
cf.edge.foxdtc.digitalvideoplatform.com canonical name = d33560mwi6nhtw.cloudfront.net
Name:   d33560mwi6nhtw.cloudfront.net
Address: 2600:9000:2120:4c00:14:9b62:100:93a1
Name:   d33560mwi6nhtw.cloudfront.net
Address: 2600:9000:2120:8e00:14:9b62:100:93a1
Name:   d33560mwi6nhtw.cloudfront.net
Address: 2600:9000:2120:e800:14:9b62:100:93a1
Name:   d33560mwi6nhtw.cloudfront.net
Address: 2600:9000:2120:600:14:9b62:100:93a1
Name:   d33560mwi6nhtw.cloudfront.net
Address: 2600:9000:2120:de00:14:9b62:100:93a1
Name:   d33560mwi6nhtw.cloudfront.net
Address: 2600:9000:2120:be00:14:9b62:100:93a1
Name:   d33560mwi6nhtw.cloudfront.net
Address: 2600:9000:2120:f600:14:9b62:100:93a1
Name:   d33560mwi6nhtw.cloudfront.net
Address: 2600:9000:2120:c400:14:9b62:100:93a1

Non-authoritative answer:
cf.edge.foxdtc.digitalvideoplatform.com canonical name = d33560mwi6nhtw.cloudfront.net
Name:   d33560mwi6nhtw.cloudfront.net
Address: 108.138.246.84
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.46

root@DS1019PLUS:~# docker exec eplustv nslookup ct.edge.foxdtc.digitalvideoplatform.com
Server:         127.0.0.11
Address:        127.0.0.11:53

Non-authoritative answer:

Non-authoritative answer:

root@DS1019PLUS:~# docker exec eplustv nslookup foxdtc-video.akamaized.net
Server:         127.0.0.11
Address:        127.0.0.11:53

Non-authoritative answer:
foxdtc-video.akamaized.net      canonical name = a1626.dscz.akamai.net
Name:   a1626.dscz.akamai.net
Address: 2600:1406:2e00:62::172e:d891
Name:   a1626.dscz.akamai.net
Address: 2600:1406:2e00:62::172e:d894

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

From NAS SSH
root@DS1019PLUS:~# nslookup fa.edge.foxdtc.digitalvideoplatform.com
Server:         192.168.1.1
Address:        192.168.1.1#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.130.18
Name:   fa-dvpvideo.map.fastly.net
Address: 151.101.194.18
Name:   fa-dvpvideo.map.fastly.net
Address: 2a04:4e42::530
Name:   fa-dvpvideo.map.fastly.net
Address: 2a04:4e42:200::530
Name:   fa-dvpvideo.map.fastly.net
Address: 2a04:4e42:400::530
Name:   fa-dvpvideo.map.fastly.net
Address: 2a04:4e42:600::530

root@DS1019PLUS:~# nslookup cf.edge.foxdtc.digitalvideoplatform.com
Server:         192.168.1.1
Address:        192.168.1.1#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.46
Name:   d33560mwi6nhtw.cloudfront.net
Address: 108.138.246.84
Name:   d33560mwi6nhtw.cloudfront.net
Address: 2600:9000:24bb:3a00:14:9b62:100:93a1
Name:   d33560mwi6nhtw.cloudfront.net
Address: 2600:9000:24bb:5a00:14:9b62:100:93a1
Name:   d33560mwi6nhtw.cloudfront.net
Address: 2600:9000:24bb:7e00:14:9b62:100:93a1
Name:   d33560mwi6nhtw.cloudfront.net
Address: 2600:9000:24bb:3000:14:9b62:100:93a1
Name:   d33560mwi6nhtw.cloudfront.net
Address: 2600:9000:24bb:5400:14:9b62:100:93a1
Name:   d33560mwi6nhtw.cloudfront.net
Address: 2600:9000:24bb:dc00:14:9b62:100:93a1
Name:   d33560mwi6nhtw.cloudfront.net
Address: 2600:9000:24bb:9200:14:9b62:100:93a1
Name:   d33560mwi6nhtw.cloudfront.net
Address: 2600:9000:24bb:4c00:14:9b62:100:93a1

root@DS1019PLUS:~# nslookup ct.edge.foxdtc.digitalvideoplatform.com
Server:         192.168.1.1
Address:        192.168.1.1#53

Non-authoritative answer:
*** Can't find ct.edge.foxdtc.digitalvideoplatform.com: No answer

root@DS1019PLUS:~# nslookup foxdtc-video.akamaized.net
Server:         192.168.1.1
Address:        192.168.1.1#53

Non-authoritative answer:
foxdtc-video.akamaized.net      canonical name = a1626.dscz.akamai.net.
Name:   a1626.dscz.akamai.net
Address: 23.46.216.88
Name:   a1626.dscz.akamai.net
Address: 23.46.216.87
Name:   a1626.dscz.akamai.net
Address: 2600:1406:2e00:62::172e:d891
Name:   a1626.dscz.akamai.net
Address: 2600:1406:2e00:62::172e:d88c

From Windows 11
C:\Windows\System32>nslookup fa.edge.foxdtc.digitalvideoplatform.com
Server:  UnKnown
Address:  192.168.1.1

Non-authoritative answer:
Name:    fa-dvpvideo.map.fastly.net
Addresses:  2a04:4e42::530
          2a04:4e42:200::530
          2a04:4e42:400::530
          2a04:4e42:600::530
          151.101.2.18
          151.101.66.18
          151.101.130.18
          151.101.194.18
Aliases:  fa.edge.foxdtc.digitalvideoplatform.com

C:\Windows\System32>nslookup cf.edge.foxdtc.digitalvideoplatform.com
Server:  UnKnown
Address:  192.168.1.1

Non-authoritative answer:
Name:    d33560mwi6nhtw.cloudfront.net
Addresses:  2600:9000:24bb:a00:14:9b62:100:93a1
          2600:9000:24bb:a600:14:9b62:100:93a1
          2600:9000:24bb:200:14:9b62:100:93a1
          2600:9000:24bb:3200:14:9b62:100:93a1
          2600:9000:24bb:800:14:9b62:100:93a1
          2600:9000:24bb:8200:14:9b62:100:93a1
          2600:9000:24bb:4200:14:9b62:100:93a1
          2600:9000:24bb:6200:14:9b62:100:93a1
          18.155.192.87
          18.155.192.124
          18.155.192.72
          18.155.192.28
Aliases:  cf.edge.foxdtc.digitalvideoplatform.com

C:\Windows\System32>nslookup ct.edge.foxdtc.digitalvideoplatform.com
Server:  UnKnown
Address:  192.168.1.1

Name:    ct.edge.foxdtc.digitalvideoplatform.com

C:\Windows\System32>nslookup foxdtc-video.akamaized.net
Server:  UnKnown
Address:  192.168.1.1

Non-authoritative answer:
Name:    a1626.dscz.akamai.net
Addresses:  2600:1406:2e00:62::172e:d891
          2600:1406:2e00:62::172e:d894
          23.67.33.104
          23.67.33.68
Aliases:  foxdtc-video.akamaized.net

I'll try using my Xfinity ISP DNS servers 75.75.75.75 and 75.75.76.76

That’s is what I meant. Sorry about the typos.

The lookups appear correct. Hopefully the comcast dns in the docker compose will resolve the issue.

Thanks.
I'll be surprised if using Xfinity DNS instead of Cloudflare fixes this container issue.

I scheduled recordings from 8pm to Midnight so there are always two EPlusTV linear channels recording. Will check on them tomorrow morning.

I'm willing to bet the app has some sort of logic that navigates the changes.
I'm surprised, there really isn't that much to the way the app works at this point.

Channel 416 failed from Fox this AM. Here's the log:

Could not get a playlist for channel #416. Please make sure there is an event scheduled and you have access to it.
Updating FOX One prelim token
Refreshing TV Provider token (FOX One)

However 417 worked as expected:
Channel #417 has an active event (Mornings With Maria). Going to start the stream.

Can't see anything that would cause this failure. I had a backup channel but this has been my preferred. Suggestions?

Thanks

For those still interested in ESPN+ events, support has been added to ah4c, using @KineticMan's work developing a scraper to create the M3U and XML files.

Very alpha at this point; but for the adventurous:

4 Likes

Sorry was busy all weekend with projects. I was testing this again today with Fox News and BTN and it's still crashing out.

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