ESPN+ & FOX Sports with Custom Channels via EPlusTV

I have been using this docker container for espn plus for a while now and it always worked great. I let my subscription lapse during the hockey off-season. I have since renewed the subscription. Is there a way to completely start the login over? Maybe I am doing something wrong but I cannot figure out how to get the activation prompt to come up again. I am able to get the guide data to work but none of the channels tune. Here is what I see after removing and starting a new container:
=== E+TV v2.3.0 starting ===
Refreshing auth token (ESPN+)
Refreshing device token (ESPN+)
Refreshing device refresh token (ESPN+)
Refreshing BAM access token (ESPN+)
=== Getting events ===
Looking for ESPN+ events...
(events show up here)

Since the account hasn't changed I thought maybe it would just automatically work but this is the error I get. Similar for all channels. from the docker log:

Channel #7020 has an active event (Los Angeles Kings vs. Toronto Maple Leafs). Going to start the stream.
AxiosError: Request failed with status code 403
at settle (/app/node_modules/axios/lib/core/settle.js:19:12)
at Unzip.handleStreamEnd (/app/node_modules/axios/lib/adapters/http.js:512:11)
at Unzip.emit (node:events:525:35)
at Unzip.emit (node:domain:489:12)
at endReadableNT (node:internal/streams/readable:1358:12)
at processTicksAndRejections (node:internal/process/task_queues:83:21) {
code: 'ERR_BAD_REQUEST',
config: {
....

Could not get stream data. Event might be upcoming, ended, or in blackout...
Failed to parse the stream
Could not get a playlist for channel #7020. Please make sure there is an event scheduled and you have access to it.

You can delete the config folder that you're passing through to the container and that'll trigger the authentication again

For the NFL Network Linear Channel, is there a way to get the 60 fps stream? Or they will only server the 30 fps

For Sunday ticket, does it use TVE and not affect using the YouTube app? or will the streams from the container restrict the ones from the main account

@m0ngr31, I keep running into an odd issue where every few days or so, the NFL linear channel disappears from the m3u. Sometimes when I restart the container it comes back and works again without interference, but this time I had to complete delete the token to get it working again. There was nothing specific in the logs as it was still getting and scheduling non-linear events.

Here's some logs during the timeframe when it disappeared showing no issues...
2024-10-17 07:35:54 === Getting events ===
2024-10-17 07:35:55 Looking for ESPN events
2024-10-17 07:35:57 Adding event:  The Fight Life: Teofimo Lopez (The Giant Slayer)
2024-10-17 07:35:57 Adding event:  The Fight Life: Josh Taylor (The Crossroads)
2024-10-17 07:35:57 Adding event:  The Fight Life: Seniesa Estrada (Love & Hate)
2024-10-17 07:35:57 Looking for FOX Sports events...
2024-10-17 07:35:59 Looking for NFL+ events...
2024-10-17 07:36:00 Adding event:  NFL Game Re-Airs: Jets vs. Vikings | Week 5, 2024
2024-10-17 07:36:00 Adding event:  NFL GameDay View
2024-10-17 07:36:00 Adding event:  NFL Daily
2024-10-17 07:36:00 Adding event:  Weekly Game Recaps
2024-10-17 07:36:00 Adding event:  Weekly Game Previews: Game Previews | Week 7
2024-10-17 07:36:00 === Done getting events ===
Here's an error from a couple of days ago related to the token...
2024-10-15 11:36:14 === Starting Server ===
2024-10-15 11:36:14 Server started on port 8000
2024-10-15 13:36:06 AxiosError: getaddrinfo EAI_AGAIN api.nfl.com
2024-10-15 13:36:06     at Function.AxiosError.from (/app/node_modules/axios/lib/core/AxiosError.js:89:14)
2024-10-15 13:36:06     at RedirectableRequest.handleRequestError (/app/node_modules/axios/lib/adapters/http.js:533:25)
2024-10-15 13:36:06     at RedirectableRequest.emit (node:events:517:28)
2024-10-15 13:36:06     at RedirectableRequest.emit (node:domain:489:12)
2024-10-15 13:36:06     at ClientRequest.eventHandlers.<computed> (/app/node_modules/follow-redirects/index.js:14:24)
2024-10-15 13:36:06     at ClientRequest.emit (node:events:517:28)
2024-10-15 13:36:06     at ClientRequest.emit (node:domain:489:12)
2024-10-15 13:36:06     at TLSSocket.socketErrorListener (node:_http_client:501:9)
2024-10-15 13:36:06     at TLSSocket.emit (node:events:517:28)
2024-10-15 13:36:06     at TLSSocket.emit (node:domain:489:12) {
2024-10-15 13:36:06   hostname: 'api.nfl.com',
2024-10-15 13:36:06   syscall: 'getaddrinfo',
2024-10-15 13:36:06   code: 'EAI_AGAIN',
2024-10-15 13:36:06   errno: -3001,
2024-10-15 13:36:06   config: {
2024-10-15 13:36:06     transitional: {
2024-10-15 13:36:06       silentJSONParsing: true,
2024-10-15 13:36:06       forcedJSONParsing: true,
2024-10-15 13:36:06       clarifyTimeoutError: false
2024-10-15 13:36:06     },
2024-10-15 13:36:06     adapter: [ 'xhr', 'http' ],
2024-10-15 13:36:06     transformRequest: [ [Function: transformRequest] ],
2024-10-15 13:36:06     transformResponse: [ [Function: transformResponse] ],
2024-10-15 13:36:06     timeout: 0,
2024-10-15 13:36:06     xsrfCookieName: 'XSRF-TOKEN',
2024-10-15 13:36:06     xsrfHeaderName: 'X-XSRF-TOKEN',
2024-10-15 13:36:06     maxContentLength: -1,
2024-10-15 13:36:06     maxBodyLength: -1,
2024-10-15 13:36:06     env: { FormData: [Function], Blob: [class Blob] },
2024-10-15 13:36:06     validateStatus: [Function: validateStatus],
2024-10-15 13:36:06     headers: AxiosHeaders {
2024-10-15 13:36:06       Accept: 'application/json, text/plain, */*',
2024-10-15 13:36:06       'Content-Type': 'application/json',
2024-10-15 13:36:06       'User-Agent': 'okhttp/4.11.0',
2024-10-15 13:36:06       'Content-Length': '838',
2024-10-15 13:36:06       'Accept-Encoding': 'gzip, compress, deflate, br'
2024-10-15 13:36:06     },
2024-10-15 13:36:06     method: 'post',
2024-10-15 13:36:06     url: 'https://api.nfl.com/identity/v3/token/refresh',
2024-10-15 13:36:06     data: '{"clientKey":"0q1p5KSsvtu2VJfk5vQ5EdpmNNGrCGU7","clientSecret":"qGhEv1RtI2SfRQOe","deviceId":"1758da2a-fb93-4818-83ce-9add9bd34313","deviceInfo":"eyJjYXBhYmlsaXRpZXMiOnt9LCJjdHZEZXZpY2UiOiJBbmRyb2lkVFYiLCJkaXNrQ2FwYWNpdHkiOjExODU1MDY2NzI2NCwiZGlzcGxheUhlaWdodCI6MjM0MCwiZGlzcGxheVdpZHRoIjoxMDgwLCJpZGZ2IjoidW5rbm93biIsImlzTG9jYXRpb25FbmFibGVkIjp0cnVlLCJtYW51ZmFjdHVyZXIiOiJHb29nbGUiLCJtZW1vcnkiOjc4MjQzNjM1MjAsIm1vZGVsIjoiUGl4ZWxfNSIsIm5ldHdvcmtUeXBlIjoid2lmaSIsIm9zTmFtZSI6IkFuZHJvaWQiLCJvc1ZlcnNpb24iOiIxMyIsInZlbmRvciI6Imdvb2dsZSIsInZlcnNpb24iOiJyZWRmaW4iLCJ2ZXJzaW9uTmFtZSI6IjU5LjAuMjkuMTM0NjY0NCJ9","networkType":"wifi","refreshToken":"d276cd9c-5d3a-4ebf-b6b7-d7d0ce5d715c","uid":"42a5139fe7874561bbf8f02a3148f885","mvpdIdp":"cox","mvpdUUID":"43a76ac0-4cf3-11e9-b7ab-005056a73b9c","mvpdUserId":"910fbc20-aacb-11e7-ba06-14feb5d9357d"}'
2024-10-15 13:36:06   },
2024-10-15 13:36:06   request: <ref *1> Writable {
2024-10-15 13:36:06     _writableState: WritableState {
2024-10-15 13:36:06       objectMode: false,
2024-10-15 13:36:06       highWaterMark: 16384,
2024-10-15 13:36:06       finalCalled: false,
2024-10-15 13:36:06       needDrain: false,
2024-10-15 13:36:06       ending: false,
2024-10-15 13:36:06       ended: false,
2024-10-15 13:36:06       finished: false,
2024-10-15 13:36:06       destroyed: false,
2024-10-15 13:36:06       decodeStrings: true,
2024-10-15 13:36:06       defaultEncoding: 'utf8',
2024-10-15 13:36:06       length: 0,
2024-10-15 13:36:06       writing: false,
2024-10-15 13:36:06       corked: 0,
2024-10-15 13:36:06       sync: true,
2024-10-15 13:36:06       bufferProcessing: false,
2024-10-15 13:36:06       onwrite: [Function: bound onwrite],
2024-10-15 13:36:06       writecb: null,
2024-10-15 13:36:06       writelen: 0,
2024-10-15 13:36:06       afterWriteTickInfo: null,
2024-10-15 13:36:06       buffered: [],
2024-10-15 13:36:06       bufferedIndex: 0,
2024-10-15 13:36:06       allBuffers: true,
2024-10-15 13:36:06       allNoop: true,
2024-10-15 13:36:06       pendingcb: 0,
2024-10-15 13:36:06       constructed: true,
2024-10-15 13:36:06       prefinished: false,
2024-10-15 13:36:06       errorEmitted: false,
2024-10-15 13:36:06       emitClose: true,
2024-10-15 13:36:06       autoDestroy: true,
2024-10-15 13:36:06       errored: null,
2024-10-15 13:36:06       closed: false,
2024-10-15 13:36:06       closeEmitted: false,
2024-10-15 13:36:06       [Symbol(kOnFinished)]: []
2024-10-15 13:36:06     },
2024-10-15 13:36:06     _events: [Object: null prototype] {
2024-10-15 13:36:06       response: [Function: handleResponse],
2024-10-15 13:36:06       error: [Function: handleRequestError],
2024-10-15 13:36:06       socket: [Function: handleRequestSocket]
2024-10-15 13:36:06     },
2024-10-15 13:36:06     _eventsCount: 3,
2024-10-15 13:36:06     _maxListeners: undefined,
2024-10-15 13:36:06     _options: {
2024-10-15 13:36:06       maxRedirects: 21,
2024-10-15 13:36:06       maxBodyLength: Infinity,
2024-10-15 13:36:06       protocol: 'https:',
2024-10-15 13:36:06       path: '/identity/v3/token/refresh',
2024-10-15 13:36:06       method: 'POST',
2024-10-15 13:36:06       headers: [Object: null prototype],
2024-10-15 13:36:06       agents: [Object],
2024-10-15 13:36:06       auth: undefined,
2024-10-15 13:36:06       beforeRedirect: [Function: dispatchBeforeRedirect],
2024-10-15 13:36:06       beforeRedirects: [Object],
2024-10-15 13:36:06       hostname: 'api.nfl.com',
2024-10-15 13:36:06       port: '',
2024-10-15 13:36:06       agent: undefined,
2024-10-15 13:36:06       nativeProtocols: [Object],
2024-10-15 13:36:06       pathname: '/identity/v3/token/refresh'
2024-10-15 13:36:06     },
2024-10-15 13:36:06     _ended: false,
2024-10-15 13:36:06     _ending: true,
2024-10-15 13:36:06     _redirectCount: 0,
2024-10-15 13:36:06     _redirects: [],
2024-10-15 13:36:06     _requestBodyLength: 838,
2024-10-15 13:36:06     _requestBodyBuffers: [ [Object] ],
2024-10-15 13:36:06     _onNativeResponse: [Function (anonymous)],
2024-10-15 13:36:06     _currentRequest: ClientRequest {
2024-10-15 13:36:06       _events: [Object: null prototype],
2024-10-15 13:36:06       _eventsCount: 7,
2024-10-15 13:36:06       _maxListeners: undefined,
2024-10-15 13:36:06       outputData: [],
2024-10-15 13:36:06       outputSize: 0,
2024-10-15 13:36:06       writable: true,
2024-10-15 13:36:06       destroyed: false,
2024-10-15 13:36:06       _last: true,
2024-10-15 13:36:06       chunkedEncoding: false,
2024-10-15 13:36:06       shouldKeepAlive: false,
2024-10-15 13:36:06       maxRequestsOnConnectionReached: false,
2024-10-15 13:36:06       _defaultKeepAlive: true,
2024-10-15 13:36:06       useChunkedEncodingByDefault: true,
2024-10-15 13:36:06       sendDate: false,
2024-10-15 13:36:06       _removedConnection: false,
2024-10-15 13:36:06       _removedContLen: false,
2024-10-15 13:36:06       _removedTE: false,
2024-10-15 13:36:06       strictContentLength: false,
2024-10-15 13:36:06       _contentLength: '838',
2024-10-15 13:36:06       _hasBody: true,
2024-10-15 13:36:06       _trailer: '',
2024-10-15 13:36:06       finished: false,
2024-10-15 13:36:06       _headerSent: true,
2024-10-15 13:36:06       _closed: false,
2024-10-15 13:36:06       socket: [TLSSocket],
2024-10-15 13:36:06       _header: 'POST /identity/v3/token/refresh HTTP/1.1\r\n' +
2024-10-15 13:36:06         'Accept: application/json, text/plain, */*\r\n' +
2024-10-15 13:36:06         'Content-Type: application/json\r\n' +
2024-10-15 13:36:06         'User-Agent: okhttp/4.11.0\r\n' +
2024-10-15 13:36:06         'Content-Length: 838\r\n' +
2024-10-15 13:36:06         'Accept-Encoding: gzip, compress, deflate, br\r\n' +
2024-10-15 13:36:06         'Host: api.nfl.com\r\n' +
2024-10-15 13:36:06         'Connection: close\r\n' +
2024-10-15 13:36:06         '\r\n',
2024-10-15 13:36:06       _keepAliveTimeout: 0,
2024-10-15 13:36:06       _onPendingData: [Function: nop],
2024-10-15 13:36:06       agent: [Agent],
2024-10-15 13:36:06       socketPath: undefined,
2024-10-15 13:36:06       method: 'POST',
2024-10-15 13:36:06       maxHeaderSize: undefined,
2024-10-15 13:36:06       insecureHTTPParser: undefined,
2024-10-15 13:36:06       joinDuplicateHeaders: undefined,
2024-10-15 13:36:06       path: '/identity/v3/token/refresh',
2024-10-15 13:36:06       _ended: false,
2024-10-15 13:36:06       res: null,
2024-10-15 13:36:06       aborted: false,
2024-10-15 13:36:06       timeoutCb: null,
2024-10-15 13:36:06       upgradeOrConnect: false,
2024-10-15 13:36:06       parser: null,
2024-10-15 13:36:06       maxHeadersCount: null,
2024-10-15 13:36:06       reusedSocket: false,
2024-10-15 13:36:06       host: 'api.nfl.com',
2024-10-15 13:36:06       protocol: 'https:',
2024-10-15 13:36:06       _redirectable: [Circular *1],
2024-10-15 13:36:06       [Symbol(kCapture)]: false,
2024-10-15 13:36:06       [Symbol(kBytesWritten)]: 0,
2024-10-15 13:36:06       [Symbol(kNeedDrain)]: false,
2024-10-15 13:36:06       [Symbol(corked)]: 0,
2024-10-15 13:36:06       [Symbol(kOutHeaders)]: [Object: null prototype],
2024-10-15 13:36:06       [Symbol(errored)]: null,
2024-10-15 13:36:06       [Symbol(kHighWaterMark)]: 16384,
2024-10-15 13:36:06       [Symbol(kRejectNonStandardBodyWrites)]: false,
2024-10-15 13:36:06       [Symbol(kUniqueHeaders)]: null
2024-10-15 13:36:06     },
2024-10-15 13:36:06     _currentUrl: 'https://api.nfl.com/identity/v3/token/refresh',
2024-10-15 13:36:06     [Symbol(kCapture)]: false
2024-10-15 13:36:06   },
2024-10-15 13:36:06   cause: Error: getaddrinfo EAI_AGAIN api.nfl.com
2024-10-15 13:36:06       at GetAddrInfoReqWrap.onlookup [as oncomplete] (node:dns:107:26) {
2024-10-15 13:36:06     errno: -3001,
2024-10-15 13:36:06     code: 'EAI_AGAIN',
2024-10-15 13:36:06     syscall: 'getaddrinfo',
2024-10-15 13:36:06     hostname: 'api.nfl.com'
2024-10-15 13:36:06   }
2024-10-15 13:36:06 }
2024-10-15 13:36:11 AxiosError: getaddrinfo EAI_AGAIN api.nfl.com
2024-10-15 13:36:11     at Function.AxiosError.from (/app/node_modules/axios/lib/core/AxiosError.js:89:14)
2024-10-15 13:36:11     at RedirectableRequest.handleRequestError (/app/node_modules/axios/lib/adapters/http.js:533:25)
2024-10-15 13:36:11     at RedirectableRequest.emit (node:events:517:28)
2024-10-15 13:36:11     at RedirectableRequest.emit (node:domain:489:12)
2024-10-15 13:36:11     at ClientRequest.eventHandlers.<computed> (/app/node_modules/follow-redirects/index.js:14:24)
2024-10-15 13:36:11     at ClientRequest.emit (node:events:517:28)
2024-10-15 13:36:11     at ClientRequest.emit (node:domain:489:12)
2024-10-15 13:36:11     at TLSSocket.socketErrorListener (node:_http_client:501:9)
2024-10-15 13:36:11     at TLSSocket.emit (node:events:517:28)
2024-10-15 13:36:11     at TLSSocket.emit (node:domain:489:12) {
2024-10-15 13:36:11   hostname: 'api.nfl.com',
2024-10-15 13:36:11   syscall: 'getaddrinfo',
2024-10-15 13:36:11   code: 'EAI_AGAIN',
2024-10-15 13:36:11   errno: -3001,
2024-10-15 13:36:11   config: {
2024-10-15 13:36:11     transitional: {
2024-10-15 13:36:11       silentJSONParsing: true,
2024-10-15 13:36:11       forcedJSONParsing: true,
2024-10-15 13:36:11       clarifyTimeoutError: false
2024-10-15 13:36:11     },
2024-10-15 13:36:11     adapter: [ 'xhr', 'http' ],
2024-10-15 13:36:11     transformRequest: [ [Function: transformRequest] ],
2024-10-15 13:36:11     transformResponse: [ [Function: transformResponse] ],
2024-10-15 13:36:11     timeout: 0,
2024-10-15 13:36:11     xsrfCookieName: 'XSRF-TOKEN',
2024-10-15 13:36:11     xsrfHeaderName: 'X-XSRF-TOKEN',
2024-10-15 13:36:11     maxContentLength: -1,
2024-10-15 13:36:11     maxBodyLength: -1,
2024-10-15 13:36:11     env: { FormData: [Function], Blob: [class Blob] },
2024-10-15 13:36:11     validateStatus: [Function: validateStatus],
2024-10-15 13:36:11     headers: AxiosHeaders {
2024-10-15 13:36:11       Accept: 'application/json, text/plain, */*',
2024-10-15 13:36:11       'Content-Type': 'application/json',
2024-10-15 13:36:11       'User-Agent': 'okhttp/4.11.0',
2024-10-15 13:36:11       'Content-Length': '854',
2024-10-15 13:36:11       'Accept-Encoding': 'gzip, compress, deflate, br'
2024-10-15 13:36:11     },
2024-10-15 13:36:11     method: 'post',
2024-10-15 13:36:11     url: 'https://api.nfl.com/identity/v3/token/refresh',
2024-10-15 13:36:11     data: '{"clientKey":"A3b74wOiSDMrhJKeXAEIqgRICBiBNo7o","clientSecret":"uoCyykyUwDbfQZr2","deviceId":"1758da2a-fb93-4818-83ce-9add9bd34313","deviceInfo":"eyJjYXBhYmlsaXRpZXMiOnt9LCJjdHZEZXZpY2UiOiJBbmRyb2lkVFYiLCJkaXNrQ2FwYWNpdHkiOjY5NjQxNDIwODAsImRpc3BsYXlIZWlnaHQiOjIxNjAsImRpc3BsYXlXaWR0aCI6Mzg0MCwiaWRmdiI6InVua25vd24iLCJpc0xvY2F0aW9uRW5hYmxlZCI6dHJ1ZSwibWFudWZhY3R1cmVyIjoib25uIiwibWVtb3J5IjoyMDYzNTgxMTg0LCJtb2RlbCI6Im9ubi4gNEsgU3RyZWFtaW5nIEJveCIsIm5ldHdvcmtUeXBlIjoid2lmaSIsIm9zTmFtZSI6IkFuZHJvaWQiLCJvc1ZlcnNpb24iOiIxMiIsInZlbmRvciI6Im9ubiIsInZlcnNpb24iOiJnb2xkZmlzaCIsInZlcnNpb25OYW1lIjoiMTguMC42NS4xMDEzODU3NzgifQ==","networkType":"wifi","refreshToken":"d276cd9c-5d3a-4ebf-b6b7-d7d0ce5d715c","uid":"42a5139fe7874561bbf8f02a3148f885","mvpdIdp":"cox","mvpdUUID":"43a76ac0-4cf3-11e9-b7ab-005056a73b9c","mvpdUserId":"910fbc20-aacb-11e7-ba06-14feb5d9357d"}'
2024-10-15 13:36:11   },
2024-10-15 13:36:11   request: <ref *1> Writable {
2024-10-15 13:36:11     _writableState: WritableState {
2024-10-15 13:36:11       objectMode: false,
2024-10-15 13:36:11       highWaterMark: 16384,
2024-10-15 13:36:11       finalCalled: false,
2024-10-15 13:36:11       needDrain: false,
2024-10-15 13:36:11       ending: false,
2024-10-15 13:36:11       ended: false,
2024-10-15 13:36:11       finished: false,
2024-10-15 13:36:11       destroyed: false,
2024-10-15 13:36:11       decodeStrings: true,
2024-10-15 13:36:11       defaultEncoding: 'utf8',
2024-10-15 13:36:11       length: 0,
2024-10-15 13:36:11       writing: false,
2024-10-15 13:36:11       corked: 0,
2024-10-15 13:36:11       sync: true,
2024-10-15 13:36:11       bufferProcessing: false,
2024-10-15 13:36:11       onwrite: [Function: bound onwrite],
2024-10-15 13:36:11       writecb: null,
2024-10-15 13:36:11       writelen: 0,
2024-10-15 13:36:11       afterWriteTickInfo: null,
2024-10-15 13:36:11       buffered: [],
2024-10-15 13:36:11       bufferedIndex: 0,
2024-10-15 13:36:11       allBuffers: true,
2024-10-15 13:36:11       allNoop: true,
2024-10-15 13:36:11       pendingcb: 0,
2024-10-15 13:36:11       constructed: true,
2024-10-15 13:36:11       prefinished: false,
2024-10-15 13:36:11       errorEmitted: false,
2024-10-15 13:36:11       emitClose: true,
2024-10-15 13:36:11       autoDestroy: true,
2024-10-15 13:36:11       errored: null,
2024-10-15 13:36:11       closed: false,
2024-10-15 13:36:11       closeEmitted: false,
2024-10-15 13:36:11       [Symbol(kOnFinished)]: []
2024-10-15 13:36:11     },
2024-10-15 13:36:11     _events: [Object: null prototype] {
2024-10-15 13:36:11       response: [Function: handleResponse],
2024-10-15 13:36:11       error: [Function: handleRequestError],
2024-10-15 13:36:11       socket: [Function: handleRequestSocket]
2024-10-15 13:36:11     },
2024-10-15 13:36:11     _eventsCount: 3,
2024-10-15 13:36:11     _maxListeners: undefined,
2024-10-15 13:36:11     _options: {
2024-10-15 13:36:11       maxRedirects: 21,
2024-10-15 13:36:11       maxBodyLength: Infinity,
2024-10-15 13:36:11       protocol: 'https:',
2024-10-15 13:36:11       path: '/identity/v3/token/refresh',
2024-10-15 13:36:11       method: 'POST',
2024-10-15 13:36:11       headers: [Object: null prototype],
2024-10-15 13:36:11       agents: [Object],
2024-10-15 13:36:11       auth: undefined,
2024-10-15 13:36:11       beforeRedirect: [Function: dispatchBeforeRedirect],
2024-10-15 13:36:11       beforeRedirects: [Object],
2024-10-15 13:36:11       hostname: 'api.nfl.com',
2024-10-15 13:36:11       port: '',
2024-10-15 13:36:11       agent: undefined,
2024-10-15 13:36:11       nativeProtocols: [Object],
2024-10-15 13:36:11       pathname: '/identity/v3/token/refresh'
2024-10-15 13:36:11     },
2024-10-15 13:36:11     _ended: false,
2024-10-15 13:36:11     _ending: true,
2024-10-15 13:36:11     _redirectCount: 0,
2024-10-15 13:36:11     _redirects: [],
2024-10-15 13:36:11     _requestBodyLength: 854,
2024-10-15 13:36:11     _requestBodyBuffers: [ [Object] ],
2024-10-15 13:36:11     _onNativeResponse: [Function (anonymous)],
2024-10-15 13:36:11     _currentRequest: ClientRequest {
2024-10-15 13:36:11       _events: [Object: null prototype],
2024-10-15 13:36:11       _eventsCount: 7,
2024-10-15 13:36:11       _maxListeners: undefined,
2024-10-15 13:36:11       outputData: [],
2024-10-15 13:36:11       outputSize: 0,
2024-10-15 13:36:11       writable: true,
2024-10-15 13:36:11       destroyed: false,
2024-10-15 13:36:11       _last: true,
2024-10-15 13:36:11       chunkedEncoding: false,
2024-10-15 13:36:11       shouldKeepAlive: false,
2024-10-15 13:36:06 Could not refresh token for NFL+
2024-10-15 13:36:11       maxRequestsOnConnectionReached: false,
2024-10-15 13:36:11       _defaultKeepAlive: true,
2024-10-15 13:36:11       useChunkedEncodingByDefault: true,
2024-10-15 13:36:11       sendDate: false,
2024-10-15 13:36:11       _removedConnection: false,
2024-10-15 13:36:11       _removedContLen: false,
2024-10-15 13:36:11       _removedTE: false,
2024-10-15 13:36:11       strictContentLength: false,
2024-10-15 13:36:11       _contentLength: '854',
2024-10-15 13:36:11       _hasBody: true,
2024-10-15 13:36:11       _trailer: '',
2024-10-15 13:36:11       finished: false,
2024-10-15 13:36:11       _headerSent: true,
2024-10-15 13:36:11       _closed: false,
2024-10-15 13:36:11       socket: [TLSSocket],
2024-10-15 13:36:11       _header: 'POST /identity/v3/token/refresh HTTP/1.1\r\n' +
2024-10-15 13:36:11         'Accept: application/json, text/plain, */*\r\n' +
2024-10-15 13:36:11         'Content-Type: application/json\r\n' +
2024-10-15 13:36:11         'User-Agent: okhttp/4.11.0\r\n' +
2024-10-15 13:36:11         'Content-Length: 854\r\n' +
2024-10-15 13:36:11         'Accept-Encoding: gzip, compress, deflate, br\r\n' +
2024-10-15 13:36:11         'Host: api.nfl.com\r\n' +
2024-10-15 13:36:11         'Connection: close\r\n' +
2024-10-15 13:36:11         '\r\n',
2024-10-15 13:36:11       _keepAliveTimeout: 0,
2024-10-15 13:36:11       _onPendingData: [Function: nop],
2024-10-15 13:36:11       agent: [Agent],
2024-10-15 13:36:11       socketPath: undefined,
2024-10-15 13:36:11       method: 'POST',
2024-10-15 13:36:11       maxHeaderSize: undefined,
2024-10-15 13:36:11       insecureHTTPParser: undefined,
2024-10-15 13:36:11       joinDuplicateHeaders: undefined,
2024-10-15 13:36:11       path: '/identity/v3/token/refresh',
2024-10-15 13:36:11       _ended: false,
2024-10-15 13:36:11       res: null,
2024-10-15 13:36:11       aborted: false,
2024-10-15 13:36:11       timeoutCb: null,
2024-10-15 13:36:11       upgradeOrConnect: false,
2024-10-15 13:36:11       parser: null,
2024-10-15 13:36:11       maxHeadersCount: null,
2024-10-15 13:36:11       reusedSocket: false,
2024-10-15 13:36:11       host: 'api.nfl.com',
2024-10-15 13:36:11       protocol: 'https:',
2024-10-15 13:36:11       _redirectable: [Circular *1],
2024-10-15 13:36:11       [Symbol(kCapture)]: false,
2024-10-15 13:36:11       [Symbol(kBytesWritten)]: 0,
2024-10-15 13:36:11       [Symbol(kNeedDrain)]: false,
2024-10-15 13:36:11       [Symbol(corked)]: 0,
2024-10-15 13:36:11       [Symbol(kOutHeaders)]: [Object: null prototype],
2024-10-15 13:36:11       [Symbol(errored)]: null,
2024-10-15 13:36:11       [Symbol(kHighWaterMark)]: 16384,
2024-10-15 13:36:11       [Symbol(kRejectNonStandardBodyWrites)]: false,
2024-10-15 13:36:11       [Symbol(kUniqueHeaders)]: null
2024-10-15 13:36:11     },
2024-10-15 13:36:11     _currentUrl: 'https://api.nfl.com/identity/v3/token/refresh',
2024-10-15 13:36:11     [Symbol(kCapture)]: false
2024-10-15 13:36:11   },
2024-10-15 13:36:11   cause: Error: getaddrinfo EAI_AGAIN api.nfl.com
2024-10-15 13:36:11       at GetAddrInfoReqWrap.onlookup [as oncomplete] (node:dns:107:26) {
2024-10-15 13:36:11     errno: -3001,
2024-10-15 13:36:11     code: 'EAI_AGAIN',
2024-10-15 13:36:11     syscall: 'getaddrinfo',
2024-10-15 13:36:11     hostname: 'api.nfl.com'
2024-10-15 13:36:11   }
2024-10-15 13:36:11 }
2024-10-15 13:36:11 Could not refresh token for NFL+
Here's the logs from after I deleted my token and started over...
2024-10-17 11:10:25 === E+TV v3.3.2 starting ===
2024-10-17 11:10:28 === NFL+ Auth ===
2024-10-17 11:10:28 Please open a browser window and go to: https://id.nfl.com/account/activate?regCode=92UA3JF1
2024-10-17 11:10:28 Enter code:  92UA3JF1
2024-10-17 11:10:28 App will continue when login has completed...
2024-10-17 11:10:43 === NFL+ Auth (TV Provider) ===
2024-10-17 11:10:43 Please open a browser window and go to: https://id.nfl.com/account/activate?regCode=D4WJ2HMW
2024-10-17 11:10:43 Enter code:  D4WJ2HMW
2024-10-17 11:10:43 App will continue when login has completed...
2024-10-17 11:11:20 === Getting events ===
2024-10-17 11:11:20 Looking for ESPN events
2024-10-17 11:11:22 Looking for FOX Sports events...
2024-10-17 11:11:22 Looking for NFL+ events...
2024-10-17 11:11:23 === Done getting events ===
2024-10-17 11:11:23 === Building the schedule ===
2024-10-17 11:11:23 === Done building the schedule ===
2024-10-17 11:11:23 === Starting Server ===
2024-10-17 11:11:23 Server started on port 8000
2024-10-17 11:11:49 Channel #90830 has an active event (Good Morning Football). Going to start the stream.
2024-10-17 11:12:00 AxiosError: Request failed with status code 403
2024-10-17 11:12:00     at settle (/app/node_modules/axios/lib/core/settle.js:19:12)
2024-10-17 11:12:00     at IncomingMessage.handleStreamEnd (/app/node_modules/axios/lib/adapters/http.js:512:11)
2024-10-17 11:12:00     at IncomingMessage.emit (node:events:529:35)
2024-10-17 11:12:00     at IncomingMessage.emit (node:domain:489:12)
2024-10-17 11:12:00     at endReadableNT (node:internal/streams/readable:1400:12)
2024-10-17 11:12:00     at processTicksAndRejections (node:internal/process/task_queues:82:21) {
2024-10-17 11:12:00   code: 'ERR_BAD_REQUEST',
2024-10-17 11:12:00   config: {
2024-10-17 11:12:00     transitional: {
2024-10-17 11:12:00       silentJSONParsing: true,
2024-10-17 11:12:00       forcedJSONParsing: true,
2024-10-17 11:12:00       clarifyTimeoutError: false
2024-10-17 11:12:00     },
2024-10-17 11:12:00     adapter: [ 'xhr', 'http' ],
2024-10-17 11:12:00     transformRequest: [ [Function: transformRequest] ],
2024-10-17 11:12:00     transformResponse: [ [Function: transformResponse] ],
2024-10-17 11:12:00     timeout: 0,
2024-10-17 11:12:00     xsrfCookieName: 'XSRF-TOKEN',
2024-10-17 11:12:00     xsrfHeaderName: 'X-XSRF-TOKEN',
2024-10-17 11:12:00     maxContentLength: -1,
2024-10-17 11:12:00     maxBodyLength: -1,
2024-10-17 11:12:00     env: { FormData: [Function], Blob: [class Blob] },
2024-10-17 11:12:00     validateStatus: [Function: validateStatus],
2024-10-17 11:12:00     headers: AxiosHeaders {
2024-10-17 11:12:00       Accept: 'application/json, text/plain, */*',
2024-10-17 11:12:00       'Content-Type': 'application/json',
2024-10-17 11:12:00       'User-Agent': 'okhttp/4.11.0',
2024-10-17 11:12:00       authorization: 'Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJjbGllbnRJZCI6IjM2NTY3MmQwLTgzYjgtNDZlYy04ZWUwLTZlMTU0M2JjM2RlOSIsImNsaWVudEtleSI6IkEzYjc0d09pU0RNcmhKS2VYQUVJcWdSSUNCaUJObzdvIiwiaXNzIjoiTkZMIiwiZGV2aWNlSWQiOiI2MzA1N2U1NC03ZmRkLTQ5OGEtYjFiMi00YmJjYjRhNDA5NWMiLCJwbGFucyI6W3sicGxhbiI6ImZyZWUiLCJleHBpcmF0aW9uRGF0ZSI6IjIwMjUtMTAtMTciLCJzb3VyY2UiOiJORkwiLCJzdGFydERhdGUiOiIyMDI0LTEwLTE3Iiwic3RhdHVzIjoiQUNUSVZFIiwidHJpYWwiOmZhbHNlfV0sIkRpc3BsYXlOYW1lIjoiQ1RWX0FORFJPSURfQ1RWIiwiTm90ZXMiOiIiLCJmb3JtRmFjdG9yIjoiQ1RWIiwibHVyYUFwcEtleSI6IlNaczU3ZEJHUnhiTDcyOGxWcDdEWVEiLCJwbGF0Zm9ybSI6IkFORFJPSUQiLCJwcm9kdWN0TmFtZSI6IkNUViIsInJvbGVzIjpbImNvbnRlbnQiLCJleHBlcmllbmNlIiwiZm9vdGJhbGwiLCJ1dGlsaXRpZXMiLCJ0ZWFtcyIsInBsYXkiLCJsaXZlIiwiaWRlbnRpdHkiLCJuZ3Nfc3RhdHMiLCJwYXltZW50c19hcGkiLCJuZ3NfdHJhY2tpbmciLCJuZ3NfcGxhdGZvcm0iLCJuZ3NfY29udGVudCIsIm5nc19jb21iaW5lIiwibmdzX2FkdmFuY2VkX3N0YXRzIiwibmZsX3BybyIsImVjb21tIiwibmZsX2lkX2FwaSIsInV0aWxpdGllc19sb2NhdGlvbiIsImlkZW50aXR5X29pZGMiLCJmcmVlIl0sImNpdHkiOiJwcm92aWRlbmNlIiwiY291bnRyeUNvZGUiOiJVUyIsImRtYUNvZGUiOiI1MjEiLCJobWFUZWFtcyI6WyIxMDQwMzIwMC02OWFiLTllYTYtNWFmNS1lMjQwZmJjMDhiZWEiXSwicmVnaW9uIjoiUkkiLCJ6aXBDb2RlIjoiMDI5MDMiLCJicm93c2VyIjoiT3RoZXIiLCJjZWxsdWxhciI6ZmFsc2UsImVudmlyb25tZW50IjoicHJvZHVjdGlvbiIsInVpZCI6IjQyYTUxMzlmZTc4NzQ1NjFiYmY4ZjAyYTMxNDhmODg1IiwiZXhwIjoxNzI5MTgxNTEzfQ.HtBKwJV3Z_aQedJeGFdqsWV8P6LnsOvw4eDHDGuXL2M',
2024-10-17 11:12:00       'Content-Length': '133',
2024-10-17 11:12:00       'Accept-Encoding': 'gzip, compress, deflate, br'
2024-10-17 11:12:00     },
2024-10-17 11:12:00     method: 'post',
2024-10-17 11:12:00     url: 'https://api.nfl.com/play/v1/asset/IFAU2gruZ2yr_CKIcJzdOw',
2024-10-17 11:12:00     data: '{"idp":"cox","mvpdUUID":"43a76ac0-4cf3-11e9-b7ab-005056a73b9c","mvpdUserId":"910fbc20-aacb-11e7-ba06-14feb5d9357d","networks":"NFLN"}'
2024-10-17 11:12:00   },
2024-10-17 11:12:00   request: <ref *1> ClientRequest {
2024-10-17 11:12:00     _events: [Object: null prototype] {
2024-10-17 11:12:00       abort: [Function (anonymous)],
2024-10-17 11:12:00       aborted: [Function (anonymous)],
2024-10-17 11:12:00       connect: [Function (anonymous)],
2024-10-17 11:12:00       error: [Function (anonymous)],
2024-10-17 11:12:00       socket: [Function (anonymous)],
2024-10-17 11:12:00       timeout: [Function (anonymous)],
2024-10-17 11:12:00       finish: [Function: requestOnFinish]
2024-10-17 11:12:00     },
2024-10-17 11:12:00     _eventsCount: 7,
2024-10-17 11:12:00     _maxListeners: undefined,
2024-10-17 11:12:00     outputData: [],
2024-10-17 11:12:00     outputSize: 0,
2024-10-17 11:12:00     writable: true,
2024-10-17 11:12:00     destroyed: false,
2024-10-17 11:12:00     _last: true,
2024-10-17 11:12:00     chunkedEncoding: false,
2024-10-17 11:12:00     shouldKeepAlive: false,
2024-10-17 11:12:00     maxRequestsOnConnectionReached: false,
2024-10-17 11:12:00     _defaultKeepAlive: true,
2024-10-17 11:12:00     useChunkedEncodingByDefault: true,
2024-10-17 11:12:00     sendDate: false,
2024-10-17 11:12:00     _removedConnection: false,
2024-10-17 11:12:00     _removedContLen: false,
2024-10-17 11:12:00     _removedTE: false,
2024-10-17 11:12:00     strictContentLength: false,
2024-10-17 11:12:00     _contentLength: '133',
2024-10-17 11:12:00     _hasBody: true,
2024-10-17 11:12:00     _trailer: '',
2024-10-17 11:12:00     finished: true,
2024-10-17 11:12:00     _headerSent: true,
2024-10-17 11:12:00     _closed: false,
2024-10-17 11:12:00     socket: TLSSocket {
2024-10-17 11:12:00       _tlsOptions: [Object],
2024-10-17 11:12:00       _secureEstablished: true,
2024-10-17 11:12:00       _securePending: false,
2024-10-17 11:12:00       _newSessionPending: false,
2024-10-17 11:12:00       _controlReleased: true,
2024-10-17 11:12:00       secureConnecting: false,
2024-10-17 11:12:00       _SNICallback: null,
2024-10-17 11:12:00       servername: 'api.nfl.com',
2024-10-17 11:12:00       alpnProtocol: false,
2024-10-17 11:12:00       authorized: true,
2024-10-17 11:12:00       authorizationError: null,
2024-10-17 11:12:00       encrypted: true,
2024-10-17 11:12:00       _events: [Object: null prototype],
2024-10-17 11:12:00       _eventsCount: 10,
2024-10-17 11:12:00       connecting: false,
2024-10-17 11:12:00       _hadError: false,
2024-10-17 11:12:00       _parent: null,
2024-10-17 11:12:00       _host: 'api.nfl.com',
2024-10-17 11:12:00       _closeAfterHandlingError: false,
2024-10-17 11:12:00       _readableState: [ReadableState],
2024-10-17 11:12:00       _maxListeners: undefined,
2024-10-17 11:12:00       _writableState: [WritableState],
2024-10-17 11:12:00       allowHalfOpen: false,
2024-10-17 11:12:00       _sockname: null,
2024-10-17 11:12:00       _pendingData: null,
2024-10-17 11:12:00       _pendingEncoding: '',
2024-10-17 11:12:00       server: undefined,
2024-10-17 11:12:00       _server: null,
2024-10-17 11:12:00       ssl: [TLSWrap],
2024-10-17 11:12:00       _requestCert: true,
2024-10-17 11:12:00       _rejectUnauthorized: true,
2024-10-17 11:12:00       parser: null,
2024-10-17 11:12:00       _httpMessage: [Circular *1],
2024-10-17 11:12:00       [Symbol(alpncallback)]: null,
2024-10-17 11:12:00       [Symbol(res)]: [TLSWrap],
2024-10-17 11:12:00       [Symbol(verified)]: true,
2024-10-17 11:12:00       [Symbol(pendingSession)]: null,
2024-10-17 11:12:00       [Symbol(async_id_symbol)]: 3847,
2024-10-17 11:12:00       [Symbol(kHandle)]: [TLSWrap],
2024-10-17 11:12:00       [Symbol(lastWriteQueueSize)]: 0,
2024-10-17 11:12:00       [Symbol(timeout)]: null,
2024-10-17 11:12:00       [Symbol(kBuffer)]: null,
2024-10-17 11:12:00       [Symbol(kBufferCb)]: null,
2024-10-17 11:12:00       [Symbol(kBufferGen)]: null,
2024-10-17 11:12:00       [Symbol(kCapture)]: false,
2024-10-17 11:12:00       [Symbol(kSetNoDelay)]: false,
2024-10-17 11:12:00       [Symbol(kSetKeepAlive)]: true,
2024-10-17 11:12:00       [Symbol(kSetKeepAliveInitialDelay)]: 60,
2024-10-17 11:12:00       [Symbol(kBytesRead)]: 0,
2024-10-17 11:12:00       [Symbol(kBytesWritten)]: 0,
2024-10-17 11:12:00       [Symbol(connect-options)]: [Object]
2024-10-17 11:12:00     },
2024-10-17 11:12:00     _header: 'POST /play/v1/asset/IFAU2gruZ2yr_CKIcJzdOw HTTP/1.1\r\n' +
2024-10-17 11:12:00       'Accept: application/json, text/plain, */*\r\n' +
2024-10-17 11:12:00       'Content-Type: application/json\r\n' +
2024-10-17 11:12:00       'User-Agent: okhttp/4.11.0\r\n' +
2024-10-17 11:12:00       'authorization: Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJjbGllbnRJZCI6IjM2NTY3MmQwLTgzYjgtNDZlYy04ZWUwLTZlMTU0M2JjM2RlOSIsImNsaWVudEtleSI6IkEzYjc0d09pU0RNcmhKS2VYQUVJcWdSSUNCaUJObzdvIiwiaXNzIjoiTkZMIiwiZGV2aWNlSWQiOiI2MzA1N2U1NC03ZmRkLTQ5OGEtYjFiMi00YmJjYjRhNDA5NWMiLCJwbGFucyI6W3sicGxhbiI6ImZyZWUiLCJleHBpcmF0aW9uRGF0ZSI6IjIwMjUtMTAtMTciLCJzb3VyY2UiOiJORkwiLCJzdGFydERhdGUiOiIyMDI0LTEwLTE3Iiwic3RhdHVzIjoiQUNUSVZFIiwidHJpYWwiOmZhbHNlfV0sIkRpc3BsYXlOYW1lIjoiQ1RWX0FORFJPSURfQ1RWIiwiTm90ZXMiOiIiLCJmb3JtRmFjdG9yIjoiQ1RWIiwibHVyYUFwcEtleSI6IlNaczU3ZEJHUnhiTDcyOGxWcDdEWVEiLCJwbGF0Zm9ybSI6IkFORFJPSUQiLCJwcm9kdWN0TmFtZSI6IkNUViIsInJvbGVzIjpbImNvbnRlbnQiLCJleHBlcmllbmNlIiwiZm9vdGJhbGwiLCJ1dGlsaXRpZXMiLCJ0ZWFtcyIsInBsYXkiLCJsaXZlIiwiaWRlbnRpdHkiLCJuZ3Nfc3RhdHMiLCJwYXltZW50c19hcGkiLCJuZ3NfdHJhY2tpbmciLCJuZ3NfcGxhdGZvcm0iLCJuZ3NfY29udGVudCIsIm5nc19jb21iaW5lIiwibmdzX2FkdmFuY2VkX3N0YXRzIiwibmZsX3BybyIsImVjb21tIiwibmZsX2lkX2FwaSIsInV0aWxpdGllc19sb2NhdGlvbiIsImlkZW50aXR5X29pZGMiLCJmcmVlIl0sImNpdHkiOiJwcm92aWRlbmNlIiwiY291bnRyeUNvZGUiOiJVUyIsImRtYUNvZGUiOiI1MjEiLCJobWFUZWFtcyI6WyIxMDQwMzIwMC02OWFiLTllYTYtNWFmNS1lMjQwZmJjMDhiZWEiXSwicmVnaW9uIjoiUkkiLCJ6aXBDb2RlIjoiMDI5MDMiLCJicm93c2VyIjoiT3RoZXIiLCJjZWxsdWxhciI6ZmFsc2UsImVudmlyb25tZW50IjoicHJvZHVjdGlvbiIsInVpZCI6IjQyYTUxMzlmZTc4NzQ1NjFiYmY4ZjAyYTMxNDhmODg1IiwiZXhwIjoxNzI5MTgxNTEzfQ.HtBKwJV3Z_aQedJeGFdqsWV8P6LnsOvw4eDHDGuXL2M\r\n' +
2024-10-17 11:12:00       'Content-Length: 133\r\n' +
2024-10-17 11:12:00       'Accept-Encoding: gzip, compress, deflate, br\r\n' +
2024-10-17 11:12:00       'Host: api.nfl.com\r\n' +
2024-10-17 11:12:00       'Connection: close\r\n' +
2024-10-17 11:12:00       '\r\n',
2024-10-17 11:12:00     _keepAliveTimeout: 0,
2024-10-17 11:12:00     _onPendingData: [Function: nop],
2024-10-17 11:12:00     agent: Agent {
2024-10-17 11:12:00       _events: [Object: null prototype],
2024-10-17 11:12:00       _eventsCount: 2,
2024-10-17 11:12:00       _maxListeners: undefined,
2024-10-17 11:12:00       defaultPort: 443,
2024-10-17 11:12:00       protocol: 'https:',
2024-10-17 11:12:00       options: [Object: null prototype],
2024-10-17 11:12:00       requests: [Object: null prototype] {},
2024-10-17 11:12:00       sockets: [Object: null prototype],
2024-10-17 11:12:00       freeSockets: [Object: null prototype] {},
2024-10-17 11:12:00       keepAliveMsecs: 1000,
2024-10-17 11:12:00       keepAlive: false,
2024-10-17 11:12:00       maxSockets: Infinity,
2024-10-17 11:12:00       maxFreeSockets: 256,
2024-10-17 11:12:00       scheduling: 'lifo',
2024-10-17 11:12:00       maxTotalSockets: Infinity,
2024-10-17 11:12:00       totalSocketCount: 1,
2024-10-17 11:12:00       maxCachedSessions: 100,
2024-10-17 11:12:00       _sessionCache: [Object],
2024-10-17 11:12:00       [Symbol(kCapture)]: false
2024-10-17 11:12:00     },
2024-10-17 11:12:00     socketPath: undefined,
2024-10-17 11:12:00     method: 'POST',
2024-10-17 11:12:00     maxHeaderSize: undefined,
2024-10-17 11:12:00     insecureHTTPParser: undefined,
2024-10-17 11:12:00     joinDuplicateHeaders: undefined,
2024-10-17 11:12:00     path: '/play/v1/asset/IFAU2gruZ2yr_CKIcJzdOw',
2024-10-17 11:12:00     _ended: true,
2024-10-17 11:12:00     res: IncomingMessage {
2024-10-17 11:12:00       _readableState: [ReadableState],
2024-10-17 11:12:00       _events: [Object: null prototype],
2024-10-17 11:12:00       _eventsCount: 4,
2024-10-17 11:12:00       _maxListeners: undefined,
2024-10-17 11:12:00       socket: [TLSSocket],
2024-10-17 11:12:00       httpVersionMajor: 1,
2024-10-17 11:12:00       httpVersionMinor: 1,
2024-10-17 11:12:00       httpVersion: '1.1',
2024-10-17 11:12:00       complete: true,
2024-10-17 11:12:00       rawHeaders: [Array],
2024-10-17 11:12:00       rawTrailers: [],
2024-10-17 11:12:00       joinDuplicateHeaders: undefined,
2024-10-17 11:12:00       aborted: false,
2024-10-17 11:12:00       upgrade: false,
2024-10-17 11:12:00       url: '',
2024-10-17 11:12:00       method: null,
2024-10-17 11:12:00       statusCode: 403,
2024-10-17 11:12:00       statusMessage: 'Forbidden',
2024-10-17 11:12:00       client: [TLSSocket],
2024-10-17 11:12:00       _consuming: true,
2024-10-17 11:12:00       _dumped: false,
2024-10-17 11:12:00       req: [Circular *1],
2024-10-17 11:12:00       responseUrl: 'https://api.nfl.com/play/v1/asset/IFAU2gruZ2yr_CKIcJzdOw',
2024-10-17 11:12:00       redirects: [],
2024-10-17 11:12:00       [Symbol(kCapture)]: false,
2024-10-17 11:12:00       [Symbol(kHeaders)]: [Object],
2024-10-17 11:12:00       [Symbol(kHeadersCount)]: 30,
2024-10-17 11:12:00       [Symbol(kTrailers)]: null,
2024-10-17 11:12:00       [Symbol(kTrailersCount)]: 0
2024-10-17 11:12:00     },
2024-10-17 11:12:00     aborted: false,
2024-10-17 11:12:00     timeoutCb: null,
2024-10-17 11:12:00     upgradeOrConnect: false,
2024-10-17 11:12:00     parser: null,
2024-10-17 11:12:00     maxHeadersCount: null,
2024-10-17 11:12:00     reusedSocket: false,
2024-10-17 11:12:00     host: 'api.nfl.com',
2024-10-17 11:12:00     protocol: 'https:',
2024-10-17 11:12:00     _redirectable: Writable {
2024-10-17 11:12:00       _writableState: [WritableState],
2024-10-17 11:12:00       _events: [Object: null prototype],
2024-10-17 11:12:00       _eventsCount: 3,
2024-10-17 11:12:00       _maxListeners: undefined,
2024-10-17 11:12:00       _options: [Object],
2024-10-17 11:12:00       _ended: true,
2024-10-17 11:12:00       _ending: true,
2024-10-17 11:12:00       _redirectCount: 0,
2024-10-17 11:12:00       _redirects: [],
2024-10-17 11:12:00       _requestBodyLength: 133,
2024-10-17 11:12:00       _requestBodyBuffers: [],
2024-10-17 11:12:00       _onNativeResponse: [Function (anonymous)],
2024-10-17 11:12:00       _currentRequest: [Circular *1],
2024-10-17 11:12:00       _currentUrl: 'https://api.nfl.com/play/v1/asset/IFAU2gruZ2yr_CKIcJzdOw',
2024-10-17 11:12:00       [Symbol(kCapture)]: false
2024-10-17 11:12:00     },
2024-10-17 11:12:00     [Symbol(kCapture)]: false,
2024-10-17 11:12:00     [Symbol(kBytesWritten)]: 0,
2024-10-17 11:12:00     [Symbol(kNeedDrain)]: false,
2024-10-17 11:12:00     [Symbol(corked)]: 0,
2024-10-17 11:12:00     [Symbol(kOutHeaders)]: [Object: null prototype] {
2024-10-17 11:12:00       accept: [Array],
2024-10-17 11:12:00       'content-type': [Array],
2024-10-17 11:12:00       'user-agent': [Array],
2024-10-17 11:12:00       authorization: [Array],
2024-10-17 11:12:00       'content-length': [Array],
2024-10-17 11:12:00       'accept-encoding': [Array],
2024-10-17 11:12:00       host: [Array]
2024-10-17 11:12:00     },
2024-10-17 11:12:00     [Symbol(errored)]: null,
2024-10-17 11:12:00     [Symbol(kHighWaterMark)]: 16384,
2024-10-17 11:12:00     [Symbol(kRejectNonStandardBodyWrites)]: false,
2024-10-17 11:12:00     [Symbol(kUniqueHeaders)]: null
2024-10-17 11:12:00   },
2024-10-17 11:12:00   response: {
2024-10-17 11:12:00     status: 403,
2024-10-17 11:12:00     statusText: 'Forbidden',
2024-10-17 11:12:00     headers: AxiosHeaders {
2024-10-17 11:12:00       connection: 'close',
2024-10-17 11:12:00       'content-length': '962',
2024-10-17 11:12:00       'accept-ranges': 'bytes',
2024-10-17 11:12:00       via: '1.1 varnish, 1.1 varnish, 1.1 varnish',
2024-10-17 11:12:00       server: 'be-play-token',
2024-10-17 11:12:00       'content-type': 'application/json',
2024-10-17 11:12:00       'cache-control': 'private',
2024-10-17 11:12:00       date: 'Thu, 17 Oct 2024 15:12:00 GMT',
2024-10-17 11:12:00       'x-served-by': 'cache-bur-kbur8200081-BUR, cache-bur-kbur8200081-BUR, cache-lga21944-LGA',
2024-10-17 11:12:00       'x-cache': 'MISS, MISS, MISS',
2024-10-17 11:12:00       'x-cache-hits': '0, 0, 0',
2024-10-17 11:12:00       'x-timer': 'S1729177920.353504,VS0,VE175',
2024-10-17 11:12:00       'access-control-allow-origin': '*',
2024-10-17 11:12:00       'access-control-allow-methods': 'PUT,POST,OPTIONS,GET,PATCH,DELETE',
2024-10-17 11:12:00       'access-control-allow-headers': 'Authorization,Content-Type,Cache-Control,nfl_session'
2024-10-17 11:12:00     },
2024-10-17 11:12:00     config: {
2024-10-17 11:12:00       transitional: [Object],
2024-10-17 11:12:00       adapter: [Array],
2024-10-17 11:12:00       transformRequest: [Array],
2024-10-17 11:12:00       transformResponse: [Array],
2024-10-17 11:12:00       timeout: 0,
2024-10-17 11:12:00       xsrfCookieName: 'XSRF-TOKEN',
2024-10-17 11:12:00       xsrfHeaderName: 'X-XSRF-TOKEN',
2024-10-17 11:12:00       maxContentLength: -1,
2024-10-17 11:12:00       maxBodyLength: -1,
2024-10-17 11:12:00       env: [Object],
2024-10-17 11:12:00       validateStatus: [Function: validateStatus],
2024-10-17 11:12:00       headers: [AxiosHeaders],
2024-10-17 11:12:00       method: 'post',
2024-10-17 11:12:00       url: 'https://api.nfl.com/play/v1/asset/IFAU2gruZ2yr_CKIcJzdOw',
2024-10-17 11:12:00       data: '{"idp":"cox","mvpdUUID":"43a76ac0-4cf3-11e9-b7ab-005056a73b9c","mvpdUserId":"910fbc20-aacb-11e7-ba06-14feb5d9357d","networks":"NFLN"}'
2024-10-17 11:12:00     },
2024-10-17 11:12:00     request: <ref *1> ClientRequest {
2024-10-17 11:12:00       _events: [Object: null prototype],
2024-10-17 11:12:00       _eventsCount: 7,
2024-10-17 11:12:00       _maxListeners: undefined,
2024-10-17 11:12:00       outputData: [],
2024-10-17 11:12:00       outputSize: 0,
2024-10-17 11:12:00       writable: true,
2024-10-17 11:12:00       destroyed: false,
2024-10-17 11:12:00       _last: true,
2024-10-17 11:12:00       chunkedEncoding: false,
2024-10-17 11:12:00       shouldKeepAlive: false,
2024-10-17 11:12:00       maxRequestsOnConnectionReached: false,
2024-10-17 11:12:00       _defaultKeepAlive: true,
2024-10-17 11:12:00       useChunkedEncodingByDefault: true,
2024-10-17 11:12:00       sendDate: false,
2024-10-17 11:12:00       _removedConnection: false,
2024-10-17 11:12:00       _removedContLen: false,
2024-10-17 11:12:00       _removedTE: false,
2024-10-17 11:12:00       strictContentLength: false,
2024-10-17 11:12:00       _contentLength: '133',
2024-10-17 11:12:00       _hasBody: true,
2024-10-17 11:12:00       _trailer: '',
2024-10-17 11:12:00       finished: true,
2024-10-17 11:12:00       _headerSent: true,
2024-10-17 11:12:00       _closed: false,
2024-10-17 11:12:00       socket: [TLSSocket],
2024-10-17 11:12:00       _header: 'POST /play/v1/asset/IFAU2gruZ2yr_CKIcJzdOw HTTP/1.1\r\n' +
2024-10-17 11:12:00         'Accept: application/json, text/plain, */*\r\n' +
2024-10-17 11:12:00         'Content-Type: application/json\r\n' +
2024-10-17 11:12:00         'User-Agent: okhttp/4.11.0\r\n' +
2024-10-17 11:12:00         'authorization: Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJjbGllbnRJZCI6IjM2NTY3MmQwLTgzYjgtNDZlYy04ZWUwLTZlMTU0M2JjM2RlOSIsImNsaWVudEtleSI6IkEzYjc0d09pU0RNcmhKS2VYQUVJcWdSSUNCaUJObzdvIiwiaXNzIjoiTkZMIiwiZGV2aWNlSWQiOiI2MzA1N2U1NC03ZmRkLTQ5OGEtYjFiMi00YmJjYjRhNDA5NWMiLCJwbGFucyI6W3sicGxhbiI6ImZyZWUiLCJleHBpcmF0aW9uRGF0ZSI6IjIwMjUtMTAtMTciLCJzb3VyY2UiOiJORkwiLCJzdGFydERhdGUiOiIyMDI0LTEwLTE3Iiwic3RhdHVzIjoiQUNUSVZFIiwidHJpYWwiOmZhbHNlfV0sIkRpc3BsYXlOYW1lIjoiQ1RWX0FORFJPSURfQ1RWIiwiTm90ZXMiOiIiLCJmb3JtRmFjdG9yIjoiQ1RWIiwibHVyYUFwcEtleSI6IlNaczU3ZEJHUnhiTDcyOGxWcDdEWVEiLCJwbGF0Zm9ybSI6IkFORFJPSUQiLCJwcm9kdWN0TmFtZSI6IkNUViIsInJvbGVzIjpbImNvbnRlbnQiLCJleHBlcmllbmNlIiwiZm9vdGJhbGwiLCJ1dGlsaXRpZXMiLCJ0ZWFtcyIsInBsYXkiLCJsaXZlIiwiaWRlbnRpdHkiLCJuZ3Nfc3RhdHMiLCJwYXltZW50c19hcGkiLCJuZ3NfdHJhY2tpbmciLCJuZ3NfcGxhdGZvcm0iLCJuZ3NfY29udGVudCIsIm5nc19jb21iaW5lIiwibmdzX2FkdmFuY2VkX3N0YXRzIiwibmZsX3BybyIsImVjb21tIiwibmZsX2lkX2FwaSIsInV0aWxpdGllc19sb2NhdGlvbiIsImlkZW50aXR5X29pZGMiLCJmcmVlIl0sImNpdHkiOiJwcm92aWRlbmNlIiwiY291bnRyeUNvZGUiOiJVUyIsImRtYUNvZGUiOiI1MjEiLCJobWFUZWFtcyI6WyIxMDQwMzIwMC02OWFiLTllYTYtNWFmNS1lMjQwZmJjMDhiZWEiXSwicmVnaW9uIjoiUkkiLCJ6aXBDb2RlIjoiMDI5MDMiLCJicm93c2VyIjoiT3RoZXIiLCJjZWxsdWxhciI6ZmFsc2UsImVudmlyb25tZW50IjoicHJvZHVjdGlvbiIsInVpZCI6IjQyYTUxMzlmZTc4NzQ1NjFiYmY4ZjAyYTMxNDhmODg1IiwiZXhwIjoxNzI5MTgxNTEzfQ.HtBKwJV3Z_aQedJeGFdqsWV8P6LnsOvw4eDHDGuXL2M\r\n' +
2024-10-17 11:12:00         'Content-Length: 133\r\n' +
2024-10-17 11:12:00         'Accept-Encoding: gzip, compress, deflate, br\r\n' +
2024-10-17 11:12:00         'Host: api.nfl.com\r\n' +
2024-10-17 11:12:00         'Connection: close\r\n' +
2024-10-17 11:12:00         '\r\n',
2024-10-17 11:12:00       _keepAliveTimeout: 0,
2024-10-17 11:12:00       _onPendingData: [Function: nop],
2024-10-17 11:12:00       agent: [Agent],
2024-10-17 11:12:00       socketPath: undefined,
2024-10-17 11:12:00       method: 'POST',
2024-10-17 11:12:00       maxHeaderSize: undefined,
2024-10-17 11:12:00       insecureHTTPParser: undefined,
2024-10-17 11:12:00       joinDuplicateHeaders: undefined,
2024-10-17 11:12:00       path: '/play/v1/asset/IFAU2gruZ2yr_CKIcJzdOw',
2024-10-17 11:12:00       _ended: true,
2024-10-17 11:12:00       res: [IncomingMessage],
2024-10-17 11:12:00       aborted: false,
2024-10-17 11:12:00       timeoutCb: null,
2024-10-17 11:12:00       upgradeOrConnect: false,
2024-10-17 11:12:00       parser: null,
2024-10-17 11:12:00       maxHeadersCount: null,
2024-10-17 11:12:00       reusedSocket: false,
2024-10-17 11:12:00       host: 'api.nfl.com',
2024-10-17 11:12:00       protocol: 'https:',
2024-10-17 11:12:00       _redirectable: [Writable],
2024-10-17 11:12:00       [Symbol(kCapture)]: false,
2024-10-17 11:12:00       [Symbol(kBytesWritten)]: 0,
2024-10-17 11:12:00       [Symbol(kNeedDrain)]: false,
2024-10-17 11:12:00       [Symbol(corked)]: 0,
2024-10-17 11:12:00       [Symbol(kOutHeaders)]: [Object: null prototype],
2024-10-17 11:12:00       [Symbol(errored)]: null,
2024-10-17 11:12:00       [Symbol(kHighWaterMark)]: 16384,
2024-10-17 11:12:00       [Symbol(kRejectNonStandardBodyWrites)]: false,
2024-10-17 11:12:00       [Symbol(kUniqueHeaders)]: null
2024-10-17 11:12:00     },
2024-10-17 11:12:00     data: {
2024-10-17 11:12:00       errorCode: 403,
2024-10-17 11:12:00       errorReason: 'Forbidden',
2024-10-17 11:12:00       id: '19fc2e18-642c-46ac-851e-6a1de22f6433',
2024-10-17 11:12:00       message: 'Error in asset request',
2024-10-17 11:12:00       decoration: [Object]
2024-10-17 11:12:00     }
2024-10-17 11:12:00   }
2024-10-17 11:12:00 }
2024-10-17 11:12:00 Could not start playback
2024-10-17 11:12:00 Failed to parse the stream
2024-10-17 11:12:00 Could not get a playlist for channel #90830. Please make sure there is an event scheduled and you have access to it.
2024-10-17 11:12:00 Channel #90830 has an active event (Good Morning Football). Going to start the stream.

No, they cap it out at 1080p30, while games are at 720p30

It's using TVE so it shouldn't effect anything

I'll look at this - I typically don't leave it running for long periods of time while I'm developing it

I am having the issue with nfl network also disappearing. For what it is worth using xfinity login with 2fa

Okay, I got the issue fixed on the new version - the way the NFL handles token refreshes is kind of interesting. Found out that if you request a new one before it expires it doesn't always include all the existing data you need. So I adjusted when to grab new tokens.

2 Likes

Awesome! Just to be safe, I deleted my old token before upgrading and got a new one. So far, NFL Network started up with no issue. I'll let you know if I run into anything over the next few days!

1 Like

Is Thursday night football a option?

2 Likes

With NFL+ or if you use NFL and linking your Amazon prime account

1 Like

seems to only be the alt stream tonight. logs say "Channel #xxxxx was setup improperly... Removing." for the main stream

restarted the container fixed it.

Eventually it can be if m0ngr3l decides to add Amazon prime it will also work, but it will take a bit of coding and that's if he chooses to do it. Check out the other thread. Otherwise you need NFL+

I got down voted :expressionless: obviously m0ngr3l is under no obligation to add new stuff to his ccepg but here is to hoping. He has really come through with some awesome stuff.

Wow, that's super cool, I love multiview. I'm curious, which client app are you using there? Also, was there any time delay between two broadcasts, standard and Prime Vision?

1 Like

You got downvoted because TNF already works with an NFL account (you don't need NFL+ subscription, all you have to do is link Prime to a free NFL account. I do this now and get all of my local NFL games on Sunday plus Prime games). Thread is not about the ccepg, you already have a thread for that.

2 Likes

In that pic I was using QuadStream but started messing around with TiviMax for up to nine screens.
As for delay, there is a slight delay which is even noticeable in the picture but nothing out of normal with streaming

3 Likes

That I didn't know! Cool to know. That's the main reason to watch prime live events, if I remember correctly there are other prime events so there is still potential for doing it, but definitely more optimal to watch using this extension for sure.

Does it work for peacock/cbs too?

Update: Well, apparently you can't, so ccEPG is going to be needed afterall

1 Like

Peacock NFL works, you need to read the latest. CBS NFL works also.

It doesn't work with free account see above

What do you mean read the latest? I can access without nfl+ For 7 bucks a month