You were right.
I just replace the current m3u link with the one below and leave the xml link as it was????
You were right.
I just replace the current m3u link with the one below and leave the xml link as it was????
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?
I just replace the current m3u link with the one below and leave the xml link as it was????
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
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
v2025.11.01.1853
Experimental support for redirect header handling
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
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
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
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
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.
I think its just when the games go OT and its suboptimal on linear Is there any way around this?
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.
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!
if I look at the logs I see that most are DNS related issues
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
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:
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.
I would do an nslookup of the endpoints from the container, such as:
docker exec eplustv nslookup fa.edge.foxdtc.digitalvideoplatform.com
ordocker exec eplustv nslookup ct.edge.foxdtc.digitalvideoplatform.com
ordocker exec eplustv nslookup ffoxdtc-video.akamaized.net
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
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
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
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 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.
I'll try using my Xfinity ISP DNS servers 75.75.75.75 and 75.75.76.76
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
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:
OK, initial support has been added, but more testing is needed from those willing few.I've created a containerized version of @KineticMan's work here, plus I've added some basic ah4c scripts by way of STREAMER_APP=scripts/firetv/espn (I expect these will work with streaming sticks other than FireSticks, but you'll need to use this value regardless). eplustv-ah4c: services: eplustv-ah4c: image: bnhf/eplustv-ah4c:${TAG:-latest} container_name: eplustv-ah4c dns_sea…
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 | }
'''