ESPN+ & FOX Sports with Custom Channels via EPlusTV

Do you have a TV provider that you can use to sign in?

I do, but the login flow does not work (it times out)

getting the following error on espn hd deportes and abc on espn

       chunkedEncoding: false,
    shouldKeepAlive: false,
    maxRequestsOnConnectionReached: false,
    _defaultKeepAlive: true,
    useChunkedEncodingByDefault: false,
    sendDate: false,
    _removedConnection: false,
    _removedContLen: false,
    _removedTE: false,
    strictContentLength: false,
    _contentLength: 0,
    _hasBody: true,
    _trailer: '',
    finished: true,
    _headerSent: true,
    _closed: true,
    socket: TLSSocket {
      _tlsOptions: [Object],
      _secureEstablished: true,
      _securePending: false,
      _newSessionPending: false,
      _controlReleased: true,
      secureConnecting: false,
      _SNICallback: null,
      servername: 'api.auth.adobe.com',
      alpnProtocol: false,
      authorized: true,
      authorizationError: null,
      encrypted: true,
      _events: [Object: null prototype],
      _eventsCount: 9,
      connecting: false,
      _hadError: false,
      _parent: null,
      _host: 'api.auth.adobe.com',
      _closeAfterHandlingError: false,
      _readableState: [ReadableState],
      _maxListeners: undefined,
      _writableState: [WritableState],
      allowHalfOpen: false,
      _sockname: null,
      _pendingData: null,
      _pendingEncoding: '',
      server: undefined,
      _server: null,
      ssl: null,
      _requestCert: true,
      _rejectUnauthorized: true,
      parser: null,
      _httpMessage: [Circular *1],
      timeout: 60000,
      write: [Function: writeAfterFIN],
      [Symbol(alpncallback)]: null,
      [Symbol(res)]: null,
      [Symbol(verified)]: true,
      [Symbol(pendingSession)]: null,
      [Symbol(async_id_symbol)]: 13801,
      [Symbol(kHandle)]: null,
      [Symbol(lastWriteQueueSize)]: 0,
      [Symbol(timeout)]: Timeout {
        _idleTimeout: -1,
        _idlePrev: null,
        _idleNext: null,
        _idleStart: 563173,
        _onTimeout: null,
        _timerArgs: undefined,
        _repeat: null,
        _destroyed: true,
        [Symbol(refed)]: false,
        [Symbol(kHasPrimitive)]: false,
        [Symbol(asyncId)]: 13809,
        [Symbol(triggerId)]: 13804
      },
      [Symbol(kBuffer)]: null,
      [Symbol(kBufferCb)]: null,
      [Symbol(kBufferGen)]: null,
      [Symbol(kCapture)]: false,
      [Symbol(kSetNoDelay)]: false,
      [Symbol(kSetKeepAlive)]: true,
      [Symbol(kSetKeepAliveInitialDelay)]: 60,
      [Symbol(kBytesRead)]: 893,
      [Symbol(kBytesWritten)]: 1448,
      [Symbol(connect-options)]: [Object]
    },
    _header: 'GET /api/v1/authorize?requestor=ESPN&deviceId=undefined&resource=%3Crss%20version%3D%272.0%27%20xmlns%3Amedia%3D%27http%3A%2F%2Fsearch.yahoo.com%2Fmrss%2F%27%3E%3Cchannel%3E%3Ctitle%3Eespndeportes%3C%2Ftitle%3E%3Citem%3E%3Ctitle%3EEn%20EspaolSevilla%20FC%20vs%20RCD%20Mallorca%20LALIGA%3C%2Ftitle%3E%3Cguid%3E4004ce20-6af3-422b-a1c0-b911e67254a6%3C%2Fguid%3E%3Cmedia%3Arating%20scheme%3D%27urn%3Av-chip%27%3E%3C%2Fmedia%3Arating%3E%3C%2Fitem%3E%3C%2Fchannel%3E%3C%2Frss%3E HTTP/1.1\r\n' +
      'Accept: application/json, text/plain, */*\r\n' +
      "Authorization: GET requestor_id=ESPN, nonce=23f42946737e43ffb7d068a05eebbb09, signature_method=HMAC-SHA1, request_time=1760794778261, request_uri=https://api.auth.adobe.com/api/v1/authorize?requestor=ESPN&deviceId=undefined&resource=%3Crss%20version%3D'2.0'%20xmlns%3Amedia%3D'http%3A%2F%2Fsearch.yahoo.com%2Fmrss%2F'%3E%3Cchannel%3E%3Ctitle%3Eespndeportes%3C%2Ftitle%3E%3Citem%3E%3Ctitle%3EEn%20EspaolSevilla%20FC%20vs%20RCD%20Mallorca%20LALIGA%3C%2Ftitle%3E%3Cguid%3E4004ce20-6af3-422b-a1c0-b911e67254a6%3C%2Fguid%3E%3Cmedia%3Arating%20scheme%3D'urn%3Av-chip'%3E%3C%2Fmedia%3Arating%3E%3C%2Fitem%3E%3C%2Fchannel%3E%3C%2Frss%3E, public_key=yKpsHYd8TOITdTMJHmkJOVmgbb2DykNK, signature=vNDyOuxrqVSsFKHtELsR/L9yqO0=\r\n" +
      'User-Agent: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.0.0 Safari/537.3\r\n' +
      'Accept-Encoding: gzip, compress, deflate, br\r\n' +
      'Host: api.auth.adobe.com\r\n' +
      'Connection: close\r\n' +
      '\r\n',
    _keepAliveTimeout: 0,
    _onPendingData: [Function: nop],
    agent: Agent {
      _events: [Object: null prototype],
      _eventsCount: 2,
      _maxListeners: undefined,
      defaultPort: 443,
      protocol: 'https:',
      options: [Object: null prototype],
      requests: [Object: null prototype] {},
      sockets: [Object: null prototype] {},
      freeSockets: [Object: null prototype] {},
      keepAliveMsecs: 1000,
      keepAlive: false,
      maxSockets: Infinity,
      maxFreeSockets: 256,
      scheduling: 'lifo',
      maxTotalSockets: Infinity,
      totalSocketCount: 0,
      maxCachedSessions: 100,
      _sessionCache: [Object],
      [Symbol(kCapture)]: false
    },
    socketPath: undefined,
    method: 'GET',
    maxHeaderSize: undefined,
    insecureHTTPParser: undefined,
    joinDuplicateHeaders: undefined,
    path: '/api/v1/authorize?requestor=ESPN&deviceId=undefined&resource=%3Crss%20version%3D%272.0%27%20xmlns%3Amedia%3D%27http%3A%2F%2Fsearch.yahoo.com%2Fmrss%2F%27%3E%3Cchannel%3E%3Ctitle%3Eespndeportes%3C%2Ftitle%3E%3Citem%3E%3Ctitle%3EEn%20EspaolSevilla%20FC%20vs%20RCD%20Mallorca%20LALIGA%3C%2Ftitle%3E%3Cguid%3E4004ce20-6af3-422b-a1c0-b911e67254a6%3C%2Fguid%3E%3Cmedia%3Arating%20scheme%3D%27urn%3Av-chip%27%3E%3C%2Fmedia%3Arating%3E%3C%2Fitem%3E%3C%2Fchannel%3E%3C%2Frss%3E',
    _ended: true,
    res: IncomingMessage {
      _readableState: [ReadableState],
      _events: [Object: null prototype],
      _eventsCount: 4,
      _maxListeners: undefined,
      socket: [TLSSocket],
      httpVersionMajor: 1,
      httpVersionMinor: 1,
      httpVersion: '1.1',
      complete: true,
      rawHeaders: [Array],
      rawTrailers: [],
      joinDuplicateHeaders: undefined,
      aborted: false,
      upgrade: false,
      url: '',
      method: null,
      statusCode: 403,
      statusMessage: 'Forbidden',
      client: [TLSSocket],
      _consuming: false,
      _dumped: false,
      req: [Circular *1],
      responseUrl: 'https://api.auth.adobe.com/api/v1/authorize?requestor=ESPN&deviceId=undefined&resource=%3Crss%20version%3D%272.0%27%20xmlns%3Amedia%3D%27http%3A%2F%2Fsearch.yahoo.com%2Fmrss%2F%27%3E%3Cchannel%3E%3Ctitle%3Eespndeportes%3C%2Ftitle%3E%3Citem%3E%3Ctitle%3EEn%20EspaolSevilla%20FC%20vs%20RCD%20Mallorca%20LALIGA%3C%2Ftitle%3E%3Cguid%3E4004ce20-6af3-422b-a1c0-b911e67254a6%3C%2Fguid%3E%3Cmedia%3Arating%20scheme%3D%27urn%3Av-chip%27%3E%3C%2Fmedia%3Arating%3E%3C%2Fitem%3E%3C%2Fchannel%3E%3C%2Frss%3E',
      redirects: [],
      [Symbol(kCapture)]: false,
      [Symbol(kHeaders)]: [Object],
      [Symbol(kHeadersCount)]: 28,
      [Symbol(kTrailers)]: null,
      [Symbol(kTrailersCount)]: 0
    },
    aborted: false,
    timeoutCb: null,
    upgradeOrConnect: false,
    parser: null,
    maxHeadersCount: null,
    reusedSocket: false,
    host: 'api.auth.adobe.com',
    protocol: 'https:',
    _redirectable: Writable {
      _writableState: [WritableState],
      _events: [Object: null prototype],
      _eventsCount: 3,
      _maxListeners: undefined,
      _options: [Object],
      _ended: true,
      _ending: true,
      _redirectCount: 0,
      _redirects: [],
      _requestBodyLength: 0,
      _requestBodyBuffers: [],
      _onNativeResponse: [Function (anonymous)],
      _currentRequest: [Circular *1],
      _currentUrl: 'https://api.auth.adobe.com/api/v1/authorize?requestor=ESPN&deviceId=undefined&resource=%3Crss%20version%3D%272.0%27%20xmlns%3Amedia%3D%27http%3A%2F%2Fsearch.yahoo.com%2Fmrss%2F%27%3E%3Cchannel%3E%3Ctitle%3Eespndeportes%3C%2Ftitle%3E%3Citem%3E%3Ctitle%3EEn%20EspaolSevilla%20FC%20vs%20RCD%20Mallorca%20LALIGA%3C%2Ftitle%3E%3Cguid%3E4004ce20-6af3-422b-a1c0-b911e67254a6%3C%2Fguid%3E%3Cmedia%3Arating%20scheme%3D%27urn%3Av-chip%27%3E%3C%2Fmedia%3Arating%3E%3C%2Fitem%3E%3C%2Fchannel%3E%3C%2Frss%3E',
      _timeout: null,
      [Symbol(kCapture)]: false
    },
    [Symbol(kCapture)]: false,
    [Symbol(kBytesWritten)]: 0,
    [Symbol(kNeedDrain)]: false,
    [Symbol(corked)]: 0,
    [Symbol(kOutHeaders)]: [Object: null prototype] {
      accept: [Array],
      authorization: [Array],
      'user-agent': [Array],
      'accept-encoding': [Array],
      host: [Array]
    },
    [Symbol(errored)]: null,
    [Symbol(kHighWaterMark)]: 16384,
    [Symbol(kRejectNonStandardBodyWrites)]: false,
    [Symbol(kUniqueHeaders)]: null
  },
  response: {
    status: 403,
    statusText: 'Forbidden',
    headers: AxiosHeaders {
      date: 'Sat, 18 Oct 2025 13:39:39 GMT',
      'content-type': 'application/json;charset=UTF-8',
      server: 'adobe',
      'access-control-expose-headers': 'pass_sfp',
      'cache-control': 'No-Cache',
      'access-control-allow-methods': 'POST,GET,OPTIONS,DELETE',
      'access-control-allow-credentials': 'true',
      p3p: 'CP="NOI DSP COR CURa ADMa DEVa OUR BUS IND UNI COM NAV STA"',
      'access-control-allow-headers': 'ap_11,ap_42,ap_z,ap_19,ap_23,authorization,pass_sfp,AP-Session-Identifier,AP-Device-Identifier,AP-SDK-Identifier,X-Device-Info',
      'strict-transport-security': 'max-age=60; includeSubDomains; preload',
      'x-request-id': 'd8014436-33fd-4541-a540-479b08ebbf1c',
      connection: 'close',
      'transfer-encoding': 'chunked'
    },
    config: {
      transitional: [Object],
      adapter: [Array],
      transformRequest: [Array],
      transformResponse: [Array],
      timeout: 60000,
      xsrfCookieName: 'XSRF-TOKEN',
      xsrfHeaderName: 'X-XSRF-TOKEN',
      maxContentLength: -1,
      maxBodyLength: -1,
      env: [Object],
      validateStatus: [Function: validateStatus],
      headers: [AxiosHeaders],
      method: 'get',
      url: "https://api.auth.adobe.com/api/v1/authorize?requestor=ESPN&deviceId=undefined&resource=%3Crss%20version%3D'2.0'%20xmlns%3Amedia%3D'http%3A%2F%2Fsearch.yahoo.com%2Fmrss%2F'%3E%3Cchannel%3E%3Ctitle%3Eespndeportes%3C%2Ftitle%3E%3Citem%3E%3Ctitle%3EEn%20EspaolSevilla%20FC%20vs%20RCD%20Mallorca%20LALIGA%3C%2Ftitle%3E%3Cguid%3E4004ce20-6af3-422b-a1c0-b911e67254a6%3C%2Fguid%3E%3Cmedia%3Arating%20scheme%3D'urn%3Av-chip'%3E%3C%2Fmedia%3Arating%3E%3C%2Fitem%3E%3C%2Fchannel%3E%3C%2Frss%3E",
      data: undefined
    },
    request: <ref *1> ClientRequest {
      _events: [Object: null prototype],
      _eventsCount: 7,
      _maxListeners: undefined,
      outputData: [],
      outputSize: 0,
      writable: true,
      destroyed: true,
      _last: true,
      chunkedEncoding: false,
      shouldKeepAlive: false,
      maxRequestsOnConnectionReached: false,
      _defaultKeepAlive: true,
      useChunkedEncodingByDefault: false,
      sendDate: false,
      _removedConnection: false,
      _removedContLen: false,
      _removedTE: false,
      strictContentLength: false,
      _contentLength: 0,
      _hasBody: true,
      _trailer: '',
      finished: true,
      _headerSent: true,
      _closed: true,
      socket: [TLSSocket],
      _header: 'GET /api/v1/authorize?requestor=ESPN&deviceId=undefined&resource=%3Crss%20version%3D%272.0%27%20xmlns%3Amedia%3D%27http%3A%2F%2Fsearch.yahoo.com%2Fmrss%2F%27%3E%3Cchannel%3E%3Ctitle%3Eespndeportes%3C%2Ftitle%3E%3Citem%3E%3Ctitle%3EEn%20EspaolSevilla%20FC%20vs%20RCD%20Mallorca%20LALIGA%3C%2Ftitle%3E%3Cguid%3E4004ce20-6af3-422b-a1c0-b911e67254a6%3C%2Fguid%3E%3Cmedia%3Arating%20scheme%3D%27urn%3Av-chip%27%3E%3C%2Fmedia%3Arating%3E%3C%2Fitem%3E%3C%2Fchannel%3E%3C%2Frss%3E HTTP/1.1\r\n' +
        'Accept: application/json, text/plain, */*\r\n' +
        "Authorization: GET requestor_id=ESPN, nonce=23f42946737e43ffb7d068a05eebbb09, signature_method=HMAC-SHA1, request_time=1760794778261, request_uri=https://api.auth.adobe.com/api/v1/authorize?requestor=ESPN&deviceId=undefined&resource=%3Crss%20version%3D'2.0'%20xmlns%3Amedia%3D'http%3A%2F%2Fsearch.yahoo.com%2Fmrss%2F'%3E%3Cchannel%3E%3Ctitle%3Eespndeportes%3C%2Ftitle%3E%3Citem%3E%3Ctitle%3EEn%20EspaolSevilla%20FC%20vs%20RCD%20Mallorca%20LALIGA%3C%2Ftitle%3E%3Cguid%3E4004ce20-6af3-422b-a1c0-b911e67254a6%3C%2Fguid%3E%3Cmedia%3Arating%20scheme%3D'urn%3Av-chip'%3E%3C%2Fmedia%3Arating%3E%3C%2Fitem%3E%3C%2Fchannel%3E%3C%2Frss%3E, public_key=yKpsHYd8TOITdTMJHmkJOVmgbb2DykNK, signature=vNDyOuxrqVSsFKHtELsR/L9yqO0=\r\n" +
        'User-Agent: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.0.0 Safari/537.3\r\n' +
        'Accept-Encoding: gzip, compress, deflate, br\r\n' +
        'Host: api.auth.adobe.com\r\n' +
        'Connection: close\r\n' +
        '\r\n',
      _keepAliveTimeout: 0,
      _onPendingData: [Function: nop],
      agent: [Agent],
      socketPath: undefined,
      method: 'GET',
      maxHeaderSize: undefined,
      insecureHTTPParser: undefined,
      joinDuplicateHeaders: undefined,
      path: '/api/v1/authorize?requestor=ESPN&deviceId=undefined&resource=%3Crss%20version%3D%272.0%27%20xmlns%3Amedia%3D%27http%3A%2F%2Fsearch.yahoo.com%2Fmrss%2F%27%3E%3Cchannel%3E%3Ctitle%3Eespndeportes%3C%2Ftitle%3E%3Citem%3E%3Ctitle%3EEn%20EspaolSevilla%20FC%20vs%20RCD%20Mallorca%20LALIGA%3C%2Ftitle%3E%3Cguid%3E4004ce20-6af3-422b-a1c0-b911e67254a6%3C%2Fguid%3E%3Cmedia%3Arating%20scheme%3D%27urn%3Av-chip%27%3E%3C%2Fmedia%3Arating%3E%3C%2Fitem%3E%3C%2Fchannel%3E%3C%2Frss%3E',
      _ended: true,
      res: [IncomingMessage],
      aborted: false,
      timeoutCb: null,
      upgradeOrConnect: false,
      parser: null,
      maxHeadersCount: null,
      reusedSocket: false,
      host: 'api.auth.adobe.com',
      protocol: 'https:',
      _redirectable: [Writable],
      [Symbol(kCapture)]: false,
      [Symbol(kBytesWritten)]: 0,
      [Symbol(kNeedDrain)]: false,
      [Symbol(corked)]: 0,
      [Symbol(kOutHeaders)]: [Object: null prototype],
      [Symbol(errored)]: null,
      [Symbol(kHighWaterMark)]: 16384,
      [Symbol(kRejectNonStandardBodyWrites)]: false,
      [Symbol(kUniqueHeaders)]: null
    },
    data: {
      status: 403,
      message: 'noAuthz',
      details: ' Access to this program is not included in your Spectrum TV subscription. To learn more about adding this program, visit https://www.spectrum.net or call (855) 757-7328.'
    }
  }
}
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:529:35)
    at Unzip.emit (node:domain:489:12)
    at endReadableNT (node:internal/streams/readable:1400:12)
    at processTicksAndRejections (node:internal/process/task_queues:82:21) {
  code: 'ERR_BAD_REQUEST',
  config: {
    transitional: {
      silentJSONParsing: true,
      forcedJSONParsing: true,
      clarifyTimeoutError: false
    },
    adapter: [ 'xhr', 'http' ],
    transformRequest: [ [Function: transformRequest] ],
    transformResponse: [ [Function: transformResponse] ],
    timeout: 60000,
    xsrfCookieName: 'XSRF-TOKEN',
    xsrfHeaderName: 'X-XSRF-TOKEN',
    maxContentLength: -1,
    maxBodyLength: -1,
    env: { FormData: [Function [FormData]], Blob: [class Blob] },
    validateStatus: [Function: validateStatus],
    headers: AxiosHeaders {
      Accept: 'application/json, text/plain, */*',
      Authorization: "GET requestor_id=ESPN, nonce=2718d64a85aa4ac98b82c1b36185e6db, signature_method=HMAC-SHA1, request_time=1760794779197, request_uri=https://api.auth.adobe.com/api/v1/mediatoken?requestor=ESPN&deviceId=undefined&resource=%3Crss%20version%3D'2.0'%20xmlns%3Amedia%3D'http%3A%2F%2Fsearch.yahoo.com%2Fmrss%2F'%3E%3Cchannel%3E%3Ctitle%3Eespndeportes%3C%2Ftitle%3E%3Citem%3E%3Ctitle%3EEn%20EspaolSevilla%20FC%20vs%20RCD%20Mallorca%20LALIGA%3C%2Ftitle%3E%3Cguid%3E4004ce20-6af3-422b-a1c0-b911e67254a6%3C%2Fguid%3E%3Cmedia%3Arating%20scheme%3D'urn%3Av-chip'%3E%3C%2Fmedia%3Arating%3E%3C%2Fitem%3E%3C%2Fchannel%3E%3C%2Frss%3E, public_key=yKpsHYd8TOITdTMJHmkJOVmgbb2DykNK, signature=4XGSxwVxMpw1ZO+MHPxZKDDoXaE=",
      'User-Agent': 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.0.0 Safari/537.3',
      'Accept-Encoding': 'gzip, compress, deflate, br'
    },
    method: 'get',
    url: "https://api.auth.adobe.com/api/v1/mediatoken?requestor=ESPN&deviceId=undefined&resource=%3Crss%20version%3D'2.0'%20xmlns%3Amedia%3D'http%3A%2F%2Fsearch.yahoo.com%2Fmrss%2F'%3E%3Cchannel%3E%3Ctitle%3Eespndeportes%3C%2Ftitle%3E%3Citem%3E%3Ctitle%3EEn%20EspaolSevilla%20FC%20vs%20RCD%20Mallorca%20LALIGA%3C%2Ftitle%3E%3Cguid%3E4004ce20-6af3-422b-a1c0-b911e67254a6%3C%2Fguid%3E%3Cmedia%3Arating%20scheme%3D'urn%3Av-chip'%3E%3C%2Fmedia%3Arating%3E%3C%2Fitem%3E%3C%2Fchannel%3E%3C%2Frss%3E",
    data: undefined
  },
  request: <ref *1> ClientRequest {
    _events: [Object: null prototype] {
      abort: [Function (anonymous)],
      aborted: [Function (anonymous)],
      connect: [Function (anonymous)],
      error: [Function (anonymous)],
could not get mediatoken
      socket: [Function (anonymous)],
      timeout: [Function (anonymous)],
      finish: [Function: requestOnFinish]
    },
    _eventsCount: 7,
    _maxListeners: undefined,
    outputData: [],
    outputSize: 0,
    writable: true,
    destroyed: true,
    _last: true,
    chunkedEncoding: false,
    shouldKeepAlive: false,
    maxRequestsOnConnectionReached: false,
    _defaultKeepAlive: true,
    useChunkedEncodingByDefault: false,
    sendDate: false,
    _removedConnection: false,
    _removedContLen: false,
    _removedTE: false,
    strictContentLength: false,
    _contentLength: 0,
    _hasBody: true,
    _trailer: '',
    finished: true,
    _headerSent: true,
    _closed: true,
    socket: TLSSocket {
      _tlsOptions: [Object],
      _secureEstablished: true,
      _securePending: false,
      _newSessionPending: false,
      _controlReleased: true,
      secureConnecting: false,
      _SNICallback: null,
      servername: 'api.auth.adobe.com',
      alpnProtocol: false,
      authorized: true,
      authorizationError: null,
      encrypted: true,
      _events: [Object: null prototype],
      _eventsCount: 9,
      connecting: false,
      _hadError: false,
      _parent: null,
      _host: 'api.auth.adobe.com',
      _closeAfterHandlingError: false,
      _readableState: [ReadableState],
      _maxListeners: undefined,
      _writableState: [WritableState],
      allowHalfOpen: false,
      _sockname: null,
      _pendingData: null,
      _pendingEncoding: '',
      server: undefined,
      _server: null,
      ssl: null,
      _requestCert: true,
      _rejectUnauthorized: true,
      parser: null,
      _httpMessage: [Circular *1],
      timeout: 60000,
      [Symbol(alpncallback)]: null,
      [Symbol(res)]: null,
      [Symbol(verified)]: true,
      [Symbol(pendingSession)]: null,
      [Symbol(async_id_symbol)]: 13837,
      [Symbol(kHandle)]: null,
      [Symbol(lastWriteQueueSize)]: 0,
      [Symbol(timeout)]: Timeout {
        _idleTimeout: -1,
        _idlePrev: null,
        _idleNext: null,
        _idleStart: 563455,
        _onTimeout: null,
        _timerArgs: undefined,
        _repeat: null,
        _destroyed: true,
        [Symbol(refed)]: false,
        [Symbol(kHasPrimitive)]: false,
        [Symbol(asyncId)]: 13845,
        [Symbol(triggerId)]: 13840
      },
      [Symbol(kBuffer)]: null,
      [Symbol(kBufferCb)]: null,
      [Symbol(kBufferGen)]: null,
      [Symbol(kCapture)]: false,
      [Symbol(kSetNoDelay)]: false,
      [Symbol(kSetKeepAlive)]: true,
      [Symbol(kSetKeepAliveInitialDelay)]: 60,
      [Symbol(kBytesRead)]: 776,
      [Symbol(kBytesWritten)]: 1450,
      [Symbol(connect-options)]: [Object]
    },
    _header: 'GET /api/v1/mediatoken?requestor=ESPN&deviceId=undefined&resource=%3Crss%20version%3D%272.0%27%20xmlns%3Amedia%3D%27http%3A%2F%2Fsearch.yahoo.com%2Fmrss%2F%27%3E%3Cchannel%3E%3Ctitle%3Eespndeportes%3C%2Ftitle%3E%3Citem%3E%3Ctitle%3EEn%20EspaolSevilla%20FC%20vs%20RCD%20Mallorca%20LALIGA%3C%2Ftitle%3E%3Cguid%3E4004ce20-6af3-422b-a1c0-b911e67254a6%3C%2Fguid%3E%3Cmedia%3Arating%20scheme%3D%27urn%3Av-chip%27%3E%3C%2Fmedia%3Arating%3E%3C%2Fitem%3E%3C%2Fchannel%3E%3C%2Frss%3E HTTP/1.1\r\n' +
      'Accept: application/json, text/plain, */*\r\n' +
      "Authorization: GET requestor_id=ESPN, nonce=2718d64a85aa4ac98b82c1b36185e6db, signature_method=HMAC-SHA1, request_time=1760794779197, request_uri=https://api.auth.adobe.com/api/v1/mediatoken?requestor=ESPN&deviceId=undefined&resource=%3Crss%20version%3D'2.0'%20xmlns%3Amedia%3D'http%3A%2F%2Fsearch.yahoo.com%2Fmrss%2F'%3E%3Cchannel%3E%3Ctitle%3Eespndeportes%3C%2Ftitle%3E%3Citem%3E%3Ctitle%3EEn%20EspaolSevilla%20FC%20vs%20RCD%20Mallorca%20LALIGA%3C%2Ftitle%3E%3Cguid%3E4004ce20-6af3-422b-a1c0-b911e67254a6%3C%2Fguid%3E%3Cmedia%3Arating%20scheme%3D'urn%3Av-chip'%3E%3C%2Fmedia%3Arating%3E%3C%2Fitem%3E%3C%2Fchannel%3E%3C%2Frss%3E, public_key=yKpsHYd8TOITdTMJHmkJOVmgbb2DykNK, signature=4XGSxwVxMpw1ZO+MHPxZKDDoXaE=\r\n" +
      'User-Agent: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.0.0 Safari/537.3\r\n' +
      'Accept-Encoding: gzip, compress, deflate, br\r\n' +
      'Host: api.auth.adobe.com\r\n' +
      'Connection: close\r\n' +
      '\r\n',
    _keepAliveTimeout: 0,
    _onPendingData: [Function: nop],
    agent: Agent {
      _events: [Object: null prototype],
      _eventsCount: 2,
      _maxListeners: undefined,
      defaultPort: 443,
      protocol: 'https:',
      options: [Object: null prototype],
      requests: [Object: null prototype] {},
      sockets: [Object: null prototype] {},
      freeSockets: [Object: null prototype] {},
      keepAliveMsecs: 1000,
      keepAlive: false,
      maxSockets: Infinity,
      maxFreeSockets: 256,
      scheduling: 'lifo',
      maxTotalSockets: Infinity,
      totalSocketCount: 0,
      maxCachedSessions: 100,
      _sessionCache: [Object],
      [Symbol(kCapture)]: false
    },
    socketPath: undefined,
    method: 'GET',
    maxHeaderSize: undefined,
    insecureHTTPParser: undefined,
    joinDuplicateHeaders: undefined,
    path: '/api/v1/mediatoken?requestor=ESPN&deviceId=undefined&resource=%3Crss%20version%3D%272.0%27%20xmlns%3Amedia%3D%27http%3A%2F%2Fsearch.yahoo.com%2Fmrss%2F%27%3E%3Cchannel%3E%3Ctitle%3Eespndeportes%3C%2Ftitle%3E%3Citem%3E%3Ctitle%3EEn%20EspaolSevilla%20FC%20vs%20RCD%20Mallorca%20LALIGA%3C%2Ftitle%3E%3Cguid%3E4004ce20-6af3-422b-a1c0-b911e67254a6%3C%2Fguid%3E%3Cmedia%3Arating%20scheme%3D%27urn%3Av-chip%27%3E%3C%2Fmedia%3Arating%3E%3C%2Fitem%3E%3C%2Fchannel%3E%3C%2Frss%3E',
    _ended: true,
    res: IncomingMessage {
      _readableState: [ReadableState],
      _events: [Object: null prototype],
      _eventsCount: 4,
      _maxListeners: undefined,
      socket: [TLSSocket],
      httpVersionMajor: 1,
      httpVersionMinor: 1,
      httpVersion: '1.1',
      complete: true,
      rawHeaders: [Array],
      rawTrailers: [],
      joinDuplicateHeaders: undefined,
      aborted: false,
      upgrade: false,
      url: '',
      method: null,
      statusCode: 403,
      statusMessage: 'Forbidden',
      client: [TLSSocket],
      _consuming: false,
      _dumped: false,
      req: [Circular *1],
      responseUrl: 'https://api.auth.adobe.com/api/v1/mediatoken?requestor=ESPN&deviceId=undefined&resource=%3Crss%20version%3D%272.0%27%20xmlns%3Amedia%3D%27http%3A%2F%2Fsearch.yahoo.com%2Fmrss%2F%27%3E%3Cchannel%3E%3Ctitle%3Eespndeportes%3C%2Ftitle%3E%3Citem%3E%3Ctitle%3EEn%20EspaolSevilla%20FC%20vs%20RCD%20Mallorca%20LALIGA%3C%2Ftitle%3E%3Cguid%3E4004ce20-6af3-422b-a1c0-b911e67254a6%3C%2Fguid%3E%3Cmedia%3Arating%20scheme%3D%27urn%3Av-chip%27%3E%3C%2Fmedia%3Arating%3E%3C%2Fitem%3E%3C%2Fchannel%3E%3C%2Frss%3E',
      redirects: [],
      [Symbol(kCapture)]: false,
      [Symbol(kHeaders)]: [Object],
      [Symbol(kHeadersCount)]: 28,
      [Symbol(kTrailers)]: null,
      [Symbol(kTrailersCount)]: 0
    },
    aborted: false,
    timeoutCb: null,
    upgradeOrConnect: false,
    parser: null,
    maxHeadersCount: null,
    reusedSocket: false,
    host: 'api.auth.adobe.com',
    protocol: 'https:',
    _redirectable: Writable {
      _writableState: [WritableState],
      _events: [Object: null prototype],
      _eventsCount: 3,
      _maxListeners: undefined,
      _options: [Object],
      _ended: true,
      _ending: true,
      _redirectCount: 0,
      _redirects: [],
      _requestBodyLength: 0,
      _requestBodyBuffers: [],
      _onNativeResponse: [Function (anonymous)],
      _currentRequest: [Circular *1],
      _currentUrl: 'https://api.auth.adobe.com/api/v1/mediatoken?requestor=ESPN&deviceId=undefined&resource=%3Crss%20version%3D%272.0%27%20xmlns%3Amedia%3D%27http%3A%2F%2Fsearch.yahoo.com%2Fmrss%2F%27%3E%3Cchannel%3E%3Ctitle%3Eespndeportes%3C%2Ftitle%3E%3Citem%3E%3Ctitle%3EEn%20EspaolSevilla%20FC%20vs%20RCD%20Mallorca%20LALIGA%3C%2Ftitle%3E%3Cguid%3E4004ce20-6af3-422b-a1c0-b911e67254a6%3C%2Fguid%3E%3Cmedia%3Arating%20scheme%3D%27urn%3Av-chip%27%3E%3C%2Fmedia%3Arating%3E%3C%2Fitem%3E%3C%2Fchannel%3E%3C%2Frss%3E',
      _timeout: null,
      [Symbol(kCapture)]: false
    },
    [Symbol(kCapture)]: false,
    [Symbol(kBytesWritten)]: 0,
    [Symbol(kNeedDrain)]: false,
    [Symbol(corked)]: 0,
    [Symbol(kOutHeaders)]: [Object: null prototype] {
      accept: [Array],
      authorization: [Array],
      'user-agent': [Array],
      'accept-encoding': [Array],
      host: [Array]
    },
    [Symbol(errored)]: null,
    [Symbol(kHighWaterMark)]: 16384,
    [Symbol(kRejectNonStandardBodyWrites)]: false,
    [Symbol(kUniqueHeaders)]: null
  },
  response: {
    status: 403,
    statusText: 'Forbidden',
    headers: AxiosHeaders {
      date: 'Sat, 18 Oct 2025 13:39:39 GMT',
      'content-type': 'application/json;charset=UTF-8',
      server: 'adobe',
      'access-control-expose-headers': 'pass_sfp',
      'cache-control': 'No-Cache',
      'access-control-allow-methods': 'POST,GET,OPTIONS,DELETE',
      'access-control-allow-credentials': 'true',
      p3p: 'CP="NOI DSP COR CURa ADMa DEVa OUR BUS IND UNI COM NAV STA"',
      'access-control-allow-headers': 'ap_11,ap_42,ap_z,ap_19,ap_23,authorization,pass_sfp,AP-Session-Identifier,AP-Device-Identifier,AP-SDK-Identifier,X-Device-Info',
      'strict-transport-security': 'max-age=60; includeSubDomains; preload',
      'x-request-id': 'ed22fdab-db55-475f-ba54-234f669500a8',
      connection: 'close',
      'transfer-encoding': 'chunked'
    },
    config: {
      transitional: [Object],
      adapter: [Array],
      transformRequest: [Array],
      transformResponse: [Array],
      timeout: 60000,
      xsrfCookieName: 'XSRF-TOKEN',
      xsrfHeaderName: 'X-XSRF-TOKEN',
      maxContentLength: -1,
      maxBodyLength: -1,
      env: [Object],
      validateStatus: [Function: validateStatus],
      headers: [AxiosHeaders],
      method: 'get',
      url: "https://api.auth.adobe.com/api/v1/mediatoken?requestor=ESPN&deviceId=undefined&resource=%3Crss%20version%3D'2.0'%20xmlns%3Amedia%3D'http%3A%2F%2Fsearch.yahoo.com%2Fmrss%2F'%3E%3Cchannel%3E%3Ctitle%3Eespndeportes%3C%2Ftitle%3E%3Citem%3E%3Ctitle%3EEn%20EspaolSevilla%20FC%20vs%20RCD%20Mallorca%20LALIGA%3C%2Ftitle%3E%3Cguid%3E4004ce20-6af3-422b-a1c0-b911e67254a6%3C%2Fguid%3E%3Cmedia%3Arating%20scheme%3D'urn%3Av-chip'%3E%3C%2Fmedia%3Arating%3E%3C%2Fitem%3E%3C%2Fchannel%3E%3C%2Frss%3E",
      data: undefined
    },
    request: <ref *1> ClientRequest {
      _events: [Object: null prototype],
      _eventsCount: 7,
      _maxListeners: undefined,
      outputData: [],
      outputSize: 0,
      writable: true,
      destroyed: true,
      _last: true,
      chunkedEncoding: false,
      shouldKeepAlive: false,
      maxRequestsOnConnectionReached: false,
      _defaultKeepAlive: true,
      useChunkedEncodingByDefault: false,
      sendDate: false,
      _removedConnection: false,
      _removedContLen: false,
      _removedTE: false,
      strictContentLength: false,
      _contentLength: 0,
      _hasBody: true,
      _trailer: '',
      finished: true,
      _headerSent: true,
      _closed: true,
      socket: [TLSSocket],
      _header: 'GET /api/v1/mediatoken?requestor=ESPN&deviceId=undefined&resource=%3Crss%20version%3D%272.0%27%20xmlns%3Amedia%3D%27http%3A%2F%2Fsearch.yahoo.com%2Fmrss%2F%27%3E%3Cchannel%3E%3Ctitle%3Eespndeportes%3C%2Ftitle%3E%3Citem%3E%3Ctitle%3EEn%20EspaolSevilla%20FC%20vs%20RCD%20Mallorca%20LALIGA%3C%2Ftitle%3E%3Cguid%3E4004ce20-6af3-422b-a1c0-b911e67254a6%3C%2Fguid%3E%3Cmedia%3Arating%20scheme%3D%27urn%3Av-chip%27%3E%3C%2Fmedia%3Arating%3E%3C%2Fitem%3E%3C%2Fchannel%3E%3C%2Frss%3E HTTP/1.1\r\n' +
        'Accept: application/json, text/plain, */*\r\n' +
        "Authorization: GET requestor_id=ESPN, nonce=2718d64a85aa4ac98b82c1b36185e6db, signature_method=HMAC-SHA1, request_time=1760794779197, request_uri=https://api.auth.adobe.com/api/v1/mediatoken?requestor=ESPN&deviceId=undefined&resource=%3Crss%20version%3D'2.0'%20xmlns%3Amedia%3D'http%3A%2F%2Fsearch.yahoo.com%2Fmrss%2F'%3E%3Cchannel%3E%3Ctitle%3Eespndeportes%3C%2Ftitle%3E%3Citem%3E%3Ctitle%3EEn%20EspaolSevilla%20FC%20vs%20RCD%20Mallorca%20LALIGA%3C%2Ftitle%3E%3Cguid%3E4004ce20-6af3-422b-a1c0-b911e67254a6%3C%2Fguid%3E%3Cmedia%3Arating%20scheme%3D'urn%3Av-chip'%3E%3C%2Fmedia%3Arating%3E%3C%2Fitem%3E%3C%2Fchannel%3E%3C%2Frss%3E, public_key=yKpsHYd8TOITdTMJHmkJOVmgbb2DykNK, signature=4XGSxwVxMpw1ZO+MHPxZKDDoXaE=\r\n" +
        'User-Agent: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.0.0 Safari/537.3\r\n' +
        'Accept-Encoding: gzip, compress, deflate, br\r\n' +
        'Host: api.auth.adobe.com\r\n' +
        'Connection: close\r\n' +
        '\r\n',
      _keepAliveTimeout: 0,
      _onPendingData: [Function: nop],
      agent: [Agent],
      socketPath: undefined,
      method: 'GET',
      maxHeaderSize: undefined,
      insecureHTTPParser: undefined,
      joinDuplicateHeaders: undefined,
      path: '/api/v1/mediatoken?requestor=ESPN&deviceId=undefined&resource=%3Crss%20version%3D%272.0%27%20xmlns%3Amedia%3D%27http%3A%2F%2Fsearch.yahoo.com%2Fmrss%2F%27%3E%3Cchannel%3E%3Ctitle%3Eespndeportes%3C%2Ftitle%3E%3Citem%3E%3Ctitle%3EEn%20EspaolSevilla%20FC%20vs%20RCD%20Mallorca%20LALIGA%3C%2Ftitle%3E%3Cguid%3E4004ce20-6af3-422b-a1c0-b911e67254a6%3C%2Fguid%3E%3Cmedia%3Arating%20scheme%3D%27urn%3Av-chip%27%3E%3C%2Fmedia%3Arating%3E%3C%2Fitem%3E%3C%2Fchannel%3E%3C%2Frss%3E',
      _ended: true,
      res: [IncomingMessage],
      aborted: false,
      timeoutCb: null,
      upgradeOrConnect: false,
      parser: null,
      maxHeadersCount: null,
      reusedSocket: false,
      host: 'api.auth.adobe.com',
      protocol: 'https:',
      _redirectable: [Writable],
      [Symbol(kCapture)]: false,
      [Symbol(kBytesWritten)]: 0,
      [Symbol(kNeedDrain)]: false,
      [Symbol(corked)]: 0,
      [Symbol(kOutHeaders)]: [Object: null prototype],
      [Symbol(errored)]: null,
      [Symbol(kHighWaterMark)]: 16384,
      [Symbol(kRejectNonStandardBodyWrites)]: false,
      [Symbol(kUniqueHeaders)]: null
    },
    data: { status: 403, message: 'User not authorized' }
  }
}
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:529:35)
    at Unzip.emit (node:domain:489:12)
    at endReadableNT (node:internal/streams/readable:1400:12)
    at processTicksAndRejections (node:internal/process/task_queues:82:21) {
  code: 'ERR_BAD_REQUEST',
  config: {
    transitional: {
      silentJSONParsing: true,
      forcedJSONParsing: true,
      clarifyTimeoutError: false
    },
    adapter: [ 'xhr', 'http' ],
    transformRequest: [ [Function: transformRequest] ],
    transformResponse: [ [Function: transformResponse] ],
    timeout: 60000,
    xsrfCookieName: 'XSRF-TOKEN',
    xsrfHeaderName: 'X-XSRF-TOKEN',
    maxContentLength: -1,
    maxBodyLength: -1,
    env: { FormData: [Function [FormData]], Blob: [class Blob] },
    validateStatus: [Function: validateStatus],
    headers: AxiosHeaders {
      Accept: 'application/json, text/plain, */*',
      'User-Agent': 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.0.0 Safari/537.3',
      'Accept-Encoding': 'gzip, compress, deflate, br'
    },
    method: 'get',
    url: 'https://broadband.espn.com/espn3/auth/watchespn/startSession?channel=espndeportes&simulcastAiringId=120190299&partner=watchespn&playbackScenario=HTTP_CLOUD_HIGH&platform=chromecast_uplynk&v=2.0.0&token=undefined&tokenType=DEVICE&resource=PHJzcyB2ZXJzaW9uPScyLjAnIHhtbG5zOm1lZGlhPSdodHRwOi8vc2VhcmNoLnlhaG9vLmNvbS9tcnNzLyc+PGNoYW5uZWw+PHRpdGxlPmVzcG5kZXBvcnRlczwvdGl0bGU+PGl0ZW0+PHRpdGxlPkVuIEVzcGFvbFNldmlsbGEgRkMgdnMgUkNEIE1hbGxvcmNhIExBTElHQTwvdGl0bGU+PGd1aWQ+NDAwNGNlMjAtNmFmMy00MjJiLWExYzAtYjkxMWU2NzI1NGE2PC9ndWlkPjxtZWRpYTpyYXRpbmcgc2NoZW1lPSd1cm46di1jaGlwJz48L21lZGlhOnJhdGluZz48L2l0ZW0+PC9jaGFubmVsPjwvcnNzPg==',
    data: undefined
  },
  request: <ref *1> ClientRequest {
    _events: [Object: null prototype] {
      abort: [Function (anonymous)],
      aborted: [Function (anonymous)],
      connect: [Function (anonymous)],
      error: [Function (anonymous)],
      socket: [Function (anonymous)],
      timeout: [Function (anonymous)],
      finish: [Function: requestOnFinish]
    },
    _eventsCount: 7,
    _maxListeners: undefined,
    outputData: [],
    outputSize: 0,
    writable: true,
    destroyed: true,
Could not get stream data. Event might be upcoming, ended, or in blackout...
    _last: true,
    chunkedEncoding: false,
    shouldKeepAlive: false,
    maxRequestsOnConnectionReached: false,
    _defaultKeepAlive: true,
    useChunkedEncodingByDefault: false,
    sendDate: false,
    _removedConnection: false,
    _removedContLen: false,
    _removedTE: false,
    strictContentLength: false,
    _contentLength: 0,
    _hasBody: true,
    _trailer: '',
    finished: true,
    _headerSent: true,
    _closed: true,
    socket: TLSSocket {
      _tlsOptions: [Object],
      _secureEstablished: true,
      _securePending: false,
      _newSessionPending: false,
      _controlReleased: true,
      secureConnecting: false,
      _SNICallback: null,
      servername: 'broadband.espn.com',
      alpnProtocol: false,
      authorized: true,
      authorizationError: null,
      encrypted: true,
      _events: [Object: null prototype],
      _eventsCount: 9,
      connecting: false,
      _hadError: false,
      _parent: null,
      _host: 'broadband.espn.com',
      _closeAfterHandlingError: false,
      _readableState: [ReadableState],
      _maxListeners: undefined,
      _writableState: [WritableState],
      allowHalfOpen: false,
      _sockname: null,
      _pendingData: null,
      _pendingEncoding: '',
      server: undefined,
      _server: null,
      ssl: null,
      _requestCert: true,
      _rejectUnauthorized: true,
      parser: null,
      _httpMessage: [Circular *1],
      timeout: 60000,
      write: [Function: writeAfterFIN],
      [Symbol(alpncallback)]: null,
      [Symbol(res)]: null,
      [Symbol(verified)]: true,
      [Symbol(pendingSession)]: null,
      [Symbol(async_id_symbol)]: 13871,
      [Symbol(kHandle)]: null,
      [Symbol(lastWriteQueueSize)]: 0,
      [Symbol(timeout)]: Timeout {
        _idleTimeout: -1,
        _idlePrev: null,
        _idleNext: null,
        _idleStart: 563737,
        _onTimeout: null,
        _timerArgs: undefined,
        _repeat: null,
        _destroyed: true,
        [Symbol(refed)]: false,
        [Symbol(kHasPrimitive)]: false,
        [Symbol(asyncId)]: 13879,
        [Symbol(triggerId)]: 13874
      },
      [Symbol(kBuffer)]: null,
      [Symbol(kBufferCb)]: null,
      [Symbol(kBufferGen)]: null,
      [Symbol(kCapture)]: false,
      [Symbol(kSetNoDelay)]: false,
      [Symbol(kSetKeepAlive)]: true,
      [Symbol(kSetKeepAliveInitialDelay)]: 60,
      [Symbol(kBytesRead)]: 452,
      [Symbol(kBytesWritten)]: 857,
      [Symbol(connect-options)]: [Object]
    },
    _header: 'GET /espn3/auth/watchespn/startSession?channel=espndeportes&simulcastAiringId=120190299&partner=watchespn&playbackScenario=HTTP_CLOUD_HIGH&platform=chromecast_uplynk&v=2.0.0&token=undefined&tokenType=DEVICE&resource=PHJzcyB2ZXJzaW9uPScyLjAnIHhtbG5zOm1lZGlhPSdodHRwOi8vc2VhcmNoLnlhaG9vLmNvbS9tcnNzLyc+PGNoYW5uZWw+PHRpdGxlPmVzcG5kZXBvcnRlczwvdGl0bGU+PGl0ZW0+PHRpdGxlPkVuIEVzcGFvbFNldmlsbGEgRkMgdnMgUkNEIE1hbGxvcmNhIExBTElHQTwvdGl0bGU+PGd1aWQ+NDAwNGNlMjAtNmFmMy00MjJiLWExYzAtYjkxMWU2NzI1NGE2PC9ndWlkPjxtZWRpYTpyYXRpbmcgc2NoZW1lPSd1cm46di1jaGlwJz48L21lZGlhOnJhdGluZz48L2l0ZW0+PC9jaGFubmVsPjwvcnNzPg== HTTP/1.1\r\n' +
      'Accept: application/json, text/plain, */*\r\n' +
      'User-Agent: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.0.0 Safari/537.3\r\n' +
      'Accept-Encoding: gzip, compress, deflate, br\r\n' +
      'Host: broadband.espn.com\r\n' +
      'Connection: close\r\n' +
      '\r\n',
    _keepAliveTimeout: 0,
    _onPendingData: [Function: nop],
    agent: Agent {
      _events: [Object: null prototype],
      _eventsCount: 2,
      _maxListeners: undefined,
      defaultPort: 443,
      protocol: 'https:',
      options: [Object: null prototype],
      requests: [Object: null prototype] {},
      sockets: [Object: null prototype] {},
      freeSockets: [Object: null prototype] {},
      keepAliveMsecs: 1000,
      keepAlive: false,
      maxSockets: Infinity,
      maxFreeSockets: 256,
      scheduling: 'lifo',
      maxTotalSockets: Infinity,
      totalSocketCount: 0,
      maxCachedSessions: 100,
      _sessionCache: [Object],
      [Symbol(kCapture)]: false
    },
    socketPath: undefined,
    method: 'GET',
    maxHeaderSize: undefined,
    insecureHTTPParser: undefined,
    joinDuplicateHeaders: undefined,
    path: '/espn3/auth/watchespn/startSession?channel=espndeportes&simulcastAiringId=120190299&partner=watchespn&playbackScenario=HTTP_CLOUD_HIGH&platform=chromecast_uplynk&v=2.0.0&token=undefined&tokenType=DEVICE&resource=PHJzcyB2ZXJzaW9uPScyLjAnIHhtbG5zOm1lZGlhPSdodHRwOi8vc2VhcmNoLnlhaG9vLmNvbS9tcnNzLyc+PGNoYW5uZWw+PHRpdGxlPmVzcG5kZXBvcnRlczwvdGl0bGU+PGl0ZW0+PHRpdGxlPkVuIEVzcGFvbFNldmlsbGEgRkMgdnMgUkNEIE1hbGxvcmNhIExBTElHQTwvdGl0bGU+PGd1aWQ+NDAwNGNlMjAtNmFmMy00MjJiLWExYzAtYjkxMWU2NzI1NGE2PC9ndWlkPjxtZWRpYTpyYXRpbmcgc2NoZW1lPSd1cm46di1jaGlwJz48L21lZGlhOnJhdGluZz48L2l0ZW0+PC9jaGFubmVsPjwvcnNzPg==',
    _ended: true,
    res: IncomingMessage {
      _readableState: [ReadableState],
      _events: [Object: null prototype],
      _eventsCount: 4,
      _maxListeners: undefined,
      socket: [TLSSocket],
      httpVersionMajor: 1,
      httpVersionMinor: 1,
      httpVersion: '1.1',
      complete: true,
      rawHeaders: [Array],
      rawTrailers: [],
      joinDuplicateHeaders: undefined,
      aborted: false,
      upgrade: false,
      url: '',
      method: null,
      statusCode: 403,
      statusMessage: 'Forbidden',
      client: [TLSSocket],
      _consuming: false,
      _dumped: false,
      req: [Circular *1],
      responseUrl: 'https://broadband.espn.com/espn3/auth/watchespn/startSession?channel=espndeportes&simulcastAiringId=120190299&partner=watchespn&playbackScenario=HTTP_CLOUD_HIGH&platform=chromecast_uplynk&v=2.0.0&token=undefined&tokenType=DEVICE&resource=PHJzcyB2ZXJzaW9uPScyLjAnIHhtbG5zOm1lZGlhPSdodHRwOi8vc2VhcmNoLnlhaG9vLmNvbS9tcnNzLyc+PGNoYW5uZWw+PHRpdGxlPmVzcG5kZXBvcnRlczwvdGl0bGU+PGl0ZW0+PHRpdGxlPkVuIEVzcGFvbFNldmlsbGEgRkMgdnMgUkNEIE1hbGxvcmNhIExBTElHQTwvdGl0bGU+PGd1aWQ+NDAwNGNlMjAtNmFmMy00MjJiLWExYzAtYjkxMWU2NzI1NGE2PC9ndWlkPjxtZWRpYTpyYXRpbmcgc2NoZW1lPSd1cm46di1jaGlwJz48L21lZGlhOnJhdGluZz48L2l0ZW0+PC9jaGFubmVsPjwvcnNzPg==',
      redirects: [],
      [Symbol(kCapture)]: false,
      [Symbol(kHeaders)]: [Object],
      [Symbol(kHeadersCount)]: 20,
      [Symbol(kTrailers)]: null,
      [Symbol(kTrailersCount)]: 0
    },
    aborted: false,
    timeoutCb: null,
    upgradeOrConnect: false,
    parser: null,
    maxHeadersCount: null,
    reusedSocket: false,
    host: 'broadband.espn.com',
    protocol: 'https:',
    _redirectable: Writable {
      _writableState: [WritableState],
      _events: [Object: null prototype],
      _eventsCount: 3,
      _maxListeners: undefined,
      _options: [Object],
      _ended: true,
      _ending: true,
      _redirectCount: 0,
      _redirects: [],
      _requestBodyLength: 0,
      _requestBodyBuffers: [],
      _onNativeResponse: [Function (anonymous)],
      _currentRequest: [Circular *1],
      _currentUrl: 'https://broadband.espn.com/espn3/auth/watchespn/startSession?channel=espndeportes&simulcastAiringId=120190299&partner=watchespn&playbackScenario=HTTP_CLOUD_HIGH&platform=chromecast_uplynk&v=2.0.0&token=undefined&tokenType=DEVICE&resource=PHJzcyB2ZXJzaW9uPScyLjAnIHhtbG5zOm1lZGlhPSdodHRwOi8vc2VhcmNoLnlhaG9vLmNvbS9tcnNzLyc+PGNoYW5uZWw+PHRpdGxlPmVzcG5kZXBvcnRlczwvdGl0bGU+PGl0ZW0+PHRpdGxlPkVuIEVzcGFvbFNldmlsbGEgRkMgdnMgUkNEIE1hbGxvcmNhIExBTElHQTwvdGl0bGU+PGd1aWQ+NDAwNGNlMjAtNmFmMy00MjJiLWExYzAtYjkxMWU2NzI1NGE2PC9ndWlkPjxtZWRpYTpyYXRpbmcgc2NoZW1lPSd1cm46di1jaGlwJz48L21lZGlhOnJhdGluZz48L2l0ZW0+PC9jaGFubmVsPjwvcnNzPg==',
      _timeout: null,
      [Symbol(kCapture)]: false
    },
    [Symbol(kCapture)]: false,
    [Symbol(kBytesWritten)]: 0,
    [Symbol(kNeedDrain)]: false,
    [Symbol(corked)]: 0,
    [Symbol(kOutHeaders)]: [Object: null prototype] {
      accept: [Array],
      'user-agent': [Array],
      'accept-encoding': [Array],
      host: [Array]
    },
    [Symbol(errored)]: null,
    [Symbol(kHighWaterMark)]: 16384,
    [Symbol(kRejectNonStandardBodyWrites)]: false,
    [Symbol(kUniqueHeaders)]: null
  },
  response: {
    status: 403,
    statusText: 'Forbidden',
    headers: AxiosHeaders {
      date: 'Sat, 18 Oct 2025 13:39:39 GMT',
      'content-type': 'application/json',
      'content-length': '145',
      connection: 'close',
      'cache-control': 'max-age=0, no-cache, no-store, must-revalidate',
      pragma: 'no-cache',
      expires: '0',
      via: '1.1 varnish (Varnish/6.0)',
      vary: 'Accept-Encoding'
    },
    config: {
      transitional: [Object],
      adapter: [Array],
      transformRequest: [Array],
      transformResponse: [Array],
      timeout: 60000,
      xsrfCookieName: 'XSRF-TOKEN',
      xsrfHeaderName: 'X-XSRF-TOKEN',
      maxContentLength: -1,
      maxBodyLength: -1,
      env: [Object],
      validateStatus: [Function: validateStatus],
      headers: [AxiosHeaders],
      method: 'get',
      url: 'https://broadband.espn.com/espn3/auth/watchespn/startSession?channel=espndeportes&simulcastAiringId=120190299&partner=watchespn&playbackScenario=HTTP_CLOUD_HIGH&platform=chromecast_uplynk&v=2.0.0&token=undefined&tokenType=DEVICE&resource=PHJzcyB2ZXJzaW9uPScyLjAnIHhtbG5zOm1lZGlhPSdodHRwOi8vc2VhcmNoLnlhaG9vLmNvbS9tcnNzLyc+PGNoYW5uZWw+PHRpdGxlPmVzcG5kZXBvcnRlczwvdGl0bGU+PGl0ZW0+PHRpdGxlPkVuIEVzcGFvbFNldmlsbGEgRkMgdnMgUkNEIE1hbGxvcmNhIExBTElHQTwvdGl0bGU+PGd1aWQ+NDAwNGNlMjAtNmFmMy00MjJiLWExYzAtYjkxMWU2NzI1NGE2PC9ndWlkPjxtZWRpYTpyYXRpbmcgc2NoZW1lPSd1cm46di1jaGlwJz48L21lZGlhOnJhdGluZz48L2l0ZW0+PC9jaGFubmVsPjwvcnNzPg==',
Failed to parse the stream
      data: undefined
    },
    request: <ref *1> ClientRequest {
      _events: [Object: null prototype],
      _eventsCount: 7,
      _maxListeners: undefined,
      outputData: [],
      outputSize: 0,
      writable: true,
      destroyed: true,
      _last: true,
      chunkedEncoding: false,
      shouldKeepAlive: false,
      maxRequestsOnConnectionReached: false,
      _defaultKeepAlive: true,
      useChunkedEncodingByDefault: false,
      sendDate: false,
      _removedConnection: false,
      _removedContLen: false,
      _removedTE: false,
      strictContentLength: false,
      _contentLength: 0,
      _hasBody: true,
      _trailer: '',
      finished: true,
      _headerSent: true,
      _closed: true,
      socket: [TLSSocket],
      _header: 'GET /espn3/auth/watchespn/startSession?channel=espndeportes&simulcastAiringId=120190299&partner=watchespn&playbackScenario=HTTP_CLOUD_HIGH&platform=chromecast_uplynk&v=2.0.0&token=undefined&tokenType=DEVICE&resource=PHJzcyB2ZXJzaW9uPScyLjAnIHhtbG5zOm1lZGlhPSdodHRwOi8vc2VhcmNoLnlhaG9vLmNvbS9tcnNzLyc+PGNoYW5uZWw+PHRpdGxlPmVzcG5kZXBvcnRlczwvdGl0bGU+PGl0ZW0+PHRpdGxlPkVuIEVzcGFvbFNldmlsbGEgRkMgdnMgUkNEIE1hbGxvcmNhIExBTElHQTwvdGl0bGU+PGd1aWQ+NDAwNGNlMjAtNmFmMy00MjJiLWExYzAtYjkxMWU2NzI1NGE2PC9ndWlkPjxtZWRpYTpyYXRpbmcgc2NoZW1lPSd1cm46di1jaGlwJz48L21lZGlhOnJhdGluZz48L2l0ZW0+PC9jaGFubmVsPjwvcnNzPg== HTTP/1.1\r\n' +
        'Accept: application/json, text/plain, */*\r\n' +
        'User-Agent: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.0.0 Safari/537.3\r\n' +
        'Accept-Encoding: gzip, compress, deflate, br\r\n' +
        'Host: broadband.espn.com\r\n' +
        'Connection: close\r\n' +
        '\r\n',
      _keepAliveTimeout: 0,
      _onPendingData: [Function: nop],
      agent: [Agent],
      socketPath: undefined,
Could not get a playlist for channel #306. Please make sure there is an event scheduled and you have access to it.
      method: 'GET',
      maxHeaderSize: undefined,
      insecureHTTPParser: undefined,
      joinDuplicateHeaders: undefined,
      path: '/espn3/auth/watchespn/startSession?channel=espndeportes&simulcastAiringId=120190299&partner=watchespn&playbackScenario=HTTP_CLOUD_HIGH&platform=chromecast_uplynk&v=2.0.0&token=undefined&tokenType=DEVICE&resource=PHJzcyB2ZXJzaW9uPScyLjAnIHhtbG5zOm1lZGlhPSdodHRwOi8vc2VhcmNoLnlhaG9vLmNvbS9tcnNzLyc+PGNoYW5uZWw+PHRpdGxlPmVzcG5kZXBvcnRlczwvdGl0bGU+PGl0ZW0+PHRpdGxlPkVuIEVzcGFvbFNldmlsbGEgRkMgdnMgUkNEIE1hbGxvcmNhIExBTElHQTwvdGl0bGU+PGd1aWQ+NDAwNGNlMjAtNmFmMy00MjJiLWExYzAtYjkxMWU2NzI1NGE2PC9ndWlkPjxtZWRpYTpyYXRpbmcgc2NoZW1lPSd1cm46di1jaGlwJz48L21lZGlhOnJhdGluZz48L2l0ZW0+PC9jaGFubmVsPjwvcnNzPg==',
      _ended: true,
      res: [IncomingMessage],
      aborted: false,
      timeoutCb: null,
      upgradeOrConnect: false,
      parser: null,
      maxHeadersCount: null,
      reusedSocket: false,
      host: 'broadband.espn.com',
      protocol: 'https:',
      _redirectable: [Writable],
      [Symbol(kCapture)]: false,
      [Symbol(kBytesWritten)]: 0,
      [Symbol(kNeedDrain)]: false,
      [Symbol(corked)]: 0,
      [Symbol(kOutHeaders)]: [Object: null prototype],
      [Symbol(errored)]: null,
      [Symbol(kHighWaterMark)]: 16384,
      [Symbol(kRejectNonStandardBodyWrites)]: false,
      [Symbol(kUniqueHeaders)]: null
    },
    data: {
      status: 'error',
      timestamp: 'October 18, 2025 13:39:39 PM UTC',
      message: '',
      code: 403,
      abbreviation: 'CORRUPT_FORMAT',
      type: 'authorization'
    }
  }
}

Could not get a playlist for channel #307. Please make sure there is an event scheduled and you have access to it.

This is the relevant error from your log, at least for ESPN Deportes -- it's not included with every TV provider:

details: ' Access to this program is not included in your Spectrum TV subscription. To learn more about adding this program, visit https://www.spectrum.net or call (855) 757-7328.

I wish I could auto-detect a user's entitlements but I haven't figured out how to do that.

As for ESPN on ABC, note that it's not a true linear channel of 24/7 programming -- it's just the ESPN sporting events that air on ABC. There's nothing on it until 12 noon EDT today. If you have issues with those events, go ahead and share the log again. EDIT: Turns out live ESPN on ABC events may be only for ESPN account subscribers, with DRM. I will remove it in the next update.

Hey Tony -
I've been working on implementing an update that could grab the URL for the ESPN+ Events and push to a different M3U for Chrome Capture support. I am struggling following how the API calls work for ESPN (m0ngr was quite the programmer). I built a small scraper that hits the website and it's kind of clunky, but works... Was hoping if you could perhaps explain the ESPN API calls if you got your arms wrapped around it at all?

Don't see guide data for this. Do you guys have issues?

I would like to note that its also on ESPN3, but it makes it easier to find if something is on abc.

Also espn deportes has guide data but no output

Also this event lags every 3 seconds or so

and this shows

but wont play

Hey Tony thanks for all your work on this.

Everything works great with the container but I continually have issues with 4k events. I get "Could not fetch playlist" and "Failed to download segment" here's an example from the game at noon today. Any ideas on how I can fix this?

2025/10/18 12:03:00.563140 [SNR] Buffer statistics for "TV\Big Noon Kickoff\Big Noon Kickoff 2025-10-18-1148.mpg": buf=0% drop=0%
2025/10/18 12:03:00.563140 [SNR] Streaming statistics for "TV\Big Noon Kickoff\Big Noon Kickoff 2025-10-18-1148.mpg": timeouts=2 segment_timeouts=0 playlist_timeouts=2
2025/10/18 12:03:00.570462 [MTS] Statistics for "TV\Big Noon Kickoff\Big Noon Kickoff 2025-10-18-1148.mpg": discontinuity_detected=1 transport_errors=0 saw_pcr=true saw_pmt=true highest_pts=7383.403767
2025/10/18 12:03:00.570986 [TNR] Closed connection to M3U-etv for ch9002 EPlusTV 3
2025/10/18 12:03:00.570986 [DVR] Error running job 1760802480-ch9002 Big Noon Kickoff: Could not fetch playlist from 127.0.0.1:8000: GET: http://127.0.0.1:8000/chunklist/3/Fcn4w92x.m3u8: 404 Not Found
2025/10/18 12:03:01.572861 [DVR] Starting job 1760802480-ch9002 Big Noon Kickoff on ch=[9002]
2025/10/18 12:03:01.572861 [DBG] Scheduling wake timer for scheduled recording in 23h58m30s

Here's the other error message I get "Failed to download segment"

2025/10/18 12:34:33.345801 [SNR] Buffer statistics for "TV\College Football - Washington at Michigan\College Football - Washington at Michigan 2025-10-18-1200.mpg": buf=0% drop=0%
2025/10/18 12:34:33.345801 [SNR] Streaming statistics for "TV\College Football - Washington at Michigan\College Football - Washington at Michigan 2025-10-18-1200.mpg": timeouts=0 segment_timeouts=0 playlist_timeouts=0
2025/10/18 12:34:33.353080 [MTS] Statistics for "TV\College Football - Washington at Michigan\College Football - Washington at Michigan 2025-10-18-1200.mpg": discontinuity_detected=19 transport_errors=0 saw_pcr=true saw_pmt=true highest_pts=2072.513200
2025/10/18 12:34:33.353599 [TNR] Closed connection to M3U-etv for ch9007 EPlusTV 8
2025/10/18 12:34:33.353599 [DVR] Error running job 1760803200-ch9007 College Football - Washington at Michigan: Failed to download segment 535: http://127.0.0.1:8000/channels/8/8-segment-x1Feo8zn.ts: GET: http://127.0.0.1:8000/channels/8/8-segment-x1Feo8zn.ts: 404 Not Found

Looks like ESPN on ABC might not work after all. It worked in my testing on a recent replay, but the live event today appears to required an ESPN account (not TV provider) and it's DRM.

Deportes is still working here. Can you log in and watch it at the ESPN site?

1 Like

I missed that particular event, but those small colleges sometimes have host site technical issues. Another ARC event is playing fine for me right now.

1 Like

That is an odd message as spectrum does not service my area. I am paying for espn unlimited directly from espn so I would think I would get it.

To troubleshoot, you'll need to share the EPlusTV log from these times. Do you have "Enable UHD/HDR events?" checked under the Fox Sports provider in EPlusTV? Does the non-4K stream play if you uncheck that?

I just caught the end of this game and it seemed to load in 4K for me, although I didn't watch it long. I know there can be playback issues around the ad insertions because they aren't in 4K.

In EPlusTV, the ESPN linears only have TV provider support, not ESPN account support. I guess that Spectrum thing might be the default message if it fails to find a supported TV provider.

Also note that ESPN on ABC may not work live, even with a TV provider -- see a few posts up.

Last night I tried to watch the Fox game through EplusTV and it would kick out at commercials (the game was 720/1080 and the commercials were 720/1080). I thought there were only issues when the game was 4K and the commercials were 720/1080. Apparently not :\

1 Like

Yet I get espn and espn2 via my espn account in eplustv. when I disable my espn account I cant get them.

edit: something borked espn2 in the latest build espn still works.

edit2: just repulled espn2 is up again.

Thanks I just submitted the logs "8b651ac7-bd17-4e7f-943e-ad2eb6b68ce0"

I do have UHD/HDR events enabled for Fox and their non-4K streams fine if I uncheck it.

You'll need to post the snippet of your EPlusTV Docker container log here in this thread. Whatever messages or error messages (and they can be long) that occurred when you tried to load the 4K stream.

Some events are ESPN Unlimited channel skycam. I assume DRM?

If ESPN Unlimited streams work for networks not working right and are non drm I can create a python script to pull channels.

Okay here's some of the docker container logs. It was really long and it's Greek to me but I do see "Error: Cached segment or key failed to resolve!" a few times.

Thanks. Did it completely fail to load, or did it just die during the stream? If the latter, could you tell where it died based on the recording?