ESPN+ & FOX Sports with Custom Channels via EPlusTV

Basically there is a variable that keeps track of what channels are being played back - that will include things like the headers needed to make requests or the m3u8 stream url. Hitting that button just clears all that and will kill any playback that you currently have.

It's useful if you have a channel that gets into a funny state and you don't want to have to restart your container

@m0ngr31 any progress regarding getting SNY working? They advertised something about how SNY is being offered as a standalone subscription this year for the first time and how it's going to be integrated with MLB.tv, no idea how that's going to work yet. I have been logging in using TV Provider credentials and forced to use the Chrome Capture on a dedicated PC to record previously.

SNY should allow you to log in with a provider on mlb.tv this year now. I plan on trying this when it all comes online opening day.

1 Like

Just pushed a new version. Added support for LOVB Live and PWHL games

Going to work on Victory+ next (and then SNY if I can get some credentials)

1 Like

I just noticed ESPN 3 content wasn't working anymore for me. I get this error in docker when I click to enable ESPN 3

2025-03-04 01:57:45.739496809	TypeError: Cannot read properties of undefined (reading 'id')
2025-03-04 01:57:45.739513549	Could not check ISP access
2025-03-04 01:57:45.739543871	at EspnHandler.<anonymous> (/app/services/espn-handler.ts:1250:35)
2025-03-04 01:57:45.739550292	at Generator.next (<anonymous>)
2025-03-04 01:57:45.739553315	at fulfilled (/app/services/espn-handler.ts:5:58)
2025-03-04 01:57:45.739556049	at processTicksAndRejections (node:internal/process/task_queues:95:5)
2025-03-04 01:57:45.741745582	Looking for ESPN+ events...

It had been working last time I checked.

I just submitted a pull request to fix it, but it should work if you toggle it again tomorrow morning.

1 Like

Thank you

Still not staying toggled. I'm using YTTV for authorization if that matters.

2025-03-04 07:15:18 Could not check ISP access
2025-03-04 07:15:18 AxiosError: Request failed with status code 403
2025-03-04 07:15:18     at settle (/app/node_modules/axios/lib/core/settle.js:19:12)
2025-03-04 07:15:18     at Unzip.handleStreamEnd (/app/node_modules/axios/lib/adapters/http.js:512:11)
2025-03-04 07:15:18     at Unzip.emit (node:events:529:35)
2025-03-04 07:15:18     at Unzip.emit (node:domain:489:12)
2025-03-04 07:15:18     at endReadableNT (node:internal/streams/readable:1400:12)
2025-03-04 07:15:18     at processTicksAndRejections (node:internal/process/task_queues:82:21) {
2025-03-04 07:15:18   code: 'ERR_BAD_REQUEST',
2025-03-04 07:15:18   config: {
2025-03-04 07:15:18     transitional: {
2025-03-04 07:15:18       silentJSONParsing: true,
2025-03-04 07:15:18       forcedJSONParsing: true,
2025-03-04 07:15:18       clarifyTimeoutError: false
2025-03-04 07:15:18     },
2025-03-04 07:15:18     adapter: [ 'xhr', 'http' ],
2025-03-04 07:15:18     transformRequest: [ [Function: transformRequest] ],
2025-03-04 07:15:18     transformResponse: [ [Function: transformResponse] ],
2025-03-04 07:15:18     timeout: 60000,
2025-03-04 07:15:18     xsrfCookieName: 'XSRF-TOKEN',
2025-03-04 07:15:18     xsrfHeaderName: 'X-XSRF-TOKEN',
2025-03-04 07:15:18     maxContentLength: -1,
2025-03-04 07:15:18     maxBodyLength: -1,
2025-03-04 07:15:18     env: { FormData: [Function [FormData]], Blob: [class Blob] },
2025-03-04 07:15:18     validateStatus: [Function: validateStatus],
2025-03-04 07:15:18     headers: AxiosHeaders {
2025-03-04 07:15:18       Accept: 'application/json, text/plain, */*',
2025-03-04 07:15:18       'Content-Type': 'application/json',
2025-03-04 07:15:18       'User-Agent': 'axios/1.2.2',
2025-03-04 07:15:18       'Content-Length': '97',
2025-03-04 07:15:18       'Accept-Encoding': 'gzip, compress, deflate, br'
2025-03-04 07:15:18     },
2025-03-04 07:15:18     method: 'post',
2025-03-04 07:15:18     url: 'https://watch.auth.api.espn.com/video/auth/media/aaa9ad1b-1729-4602-a00d-00d49718cbcd/asset?apikey=uiqlbgzdwuru14v627vdusswb',
2025-03-04 07:15:18     data: '{"headers":{"User-Agent":"Mozilla/5.0 (X11; Linux i686; rv:133.0) Gecko/20100101 Firefox/133.0"}}'
2025-03-04 07:15:18   },
2025-03-04 07:15:18   request: <ref *1> ClientRequest {
2025-03-04 07:15:18     _events: [Object: null prototype] {
2025-03-04 07:15:18       abort: [Function (anonymous)],
2025-03-04 07:15:18       aborted: [Function (anonymous)],
2025-03-04 07:15:18       connect: [Function (anonymous)],
2025-03-04 07:15:18       error: [Function (anonymous)],
2025-03-04 07:15:18       socket: [Function (anonymous)],
2025-03-04 07:15:18       timeout: [Function (anonymous)],
2025-03-04 07:15:18       finish: [Function: requestOnFinish]
2025-03-04 07:15:18     },
2025-03-04 07:15:18     _eventsCount: 7,
2025-03-04 07:15:18     _maxListeners: undefined,
2025-03-04 07:15:18     outputData: [],
2025-03-04 07:15:18     outputSize: 0,
2025-03-04 07:15:18     writable: true,
2025-03-04 07:15:18     destroyed: true,
2025-03-04 07:15:18     _last: true,
2025-03-04 07:15:18     chunkedEncoding: false,
2025-03-04 07:15:18     shouldKeepAlive: false,
2025-03-04 07:15:18     maxRequestsOnConnectionReached: false,
2025-03-04 07:15:18     _defaultKeepAlive: true,
2025-03-04 07:15:18     useChunkedEncodingByDefault: true,
2025-03-04 07:15:18     sendDate: false,
2025-03-04 07:15:18     _removedConnection: false,
2025-03-04 07:15:18     _removedContLen: false,
2025-03-04 07:15:18     _removedTE: false,
2025-03-04 07:15:18     strictContentLength: false,
2025-03-04 07:15:18     _contentLength: '97',
2025-03-04 07:15:18     _hasBody: true,
2025-03-04 07:15:18     _trailer: '',
2025-03-04 07:15:18     finished: true,
2025-03-04 07:15:18     _headerSent: true,
2025-03-04 07:15:18     _closed: true,
2025-03-04 07:15:18     socket: TLSSocket {
2025-03-04 07:15:18       _tlsOptions: [Object],
2025-03-04 07:15:18       _secureEstablished: true,
2025-03-04 07:15:18       _securePending: false,
2025-03-04 07:15:18       _newSessionPending: false,
2025-03-04 07:15:18       _controlReleased: true,
2025-03-04 07:15:18       secureConnecting: false,
2025-03-04 07:15:18       _SNICallback: null,
2025-03-04 07:15:18       servername: 'watch.auth.api.espn.com',
2025-03-04 07:15:18       alpnProtocol: false,
2025-03-04 07:15:18       authorized: true,
2025-03-04 07:15:18       authorizationError: null,
2025-03-04 07:15:18       encrypted: true,
2025-03-04 07:15:18       _events: [Object: null prototype],
2025-03-04 07:15:18       _eventsCount: 9,
2025-03-04 07:15:18       connecting: false,
2025-03-04 07:15:18       _hadError: false,
2025-03-04 07:15:18       _parent: null,
2025-03-04 07:15:18       _host: 'watch.auth.api.espn.com',
2025-03-04 07:15:18       _closeAfterHandlingError: false,
2025-03-04 07:15:18       _readableState: [ReadableState],
2025-03-04 07:15:18       _maxListeners: undefined,
2025-03-04 07:15:18       _writableState: [WritableState],
2025-03-04 07:15:18       allowHalfOpen: false,
2025-03-04 07:15:18       _sockname: null,
2025-03-04 07:15:18       _pendingData: null,
2025-03-04 07:15:18       _pendingEncoding: '',
2025-03-04 07:15:18       server: undefined,
2025-03-04 07:15:18       _server: null,
2025-03-04 07:15:18       ssl: null,
2025-03-04 07:15:18       _requestCert: true,
2025-03-04 07:15:18       _rejectUnauthorized: true,
2025-03-04 07:15:18       parser: null,
2025-03-04 07:15:18       _httpMessage: [Circular *1],
2025-03-04 07:15:18       timeout: 60000,
2025-03-04 07:15:18       [Symbol(alpncallback)]: null,
2025-03-04 07:15:18       [Symbol(res)]: null,
2025-03-04 07:15:18       [Symbol(verified)]: true,
2025-03-04 07:15:18       [Symbol(pendingSession)]: null,
2025-03-04 07:15:18       [Symbol(async_id_symbol)]: 26967,
2025-03-04 07:15:18       [Symbol(kHandle)]: null,
2025-03-04 07:15:18       [Symbol(lastWriteQueueSize)]: 0,
2025-03-04 07:15:18       [Symbol(timeout)]: Timeout {
2025-03-04 07:15:18         _idleTimeout: -1,
2025-03-04 07:15:18         _idlePrev: null,
2025-03-04 07:15:18         _idleNext: null,
2025-03-04 07:15:18         _idleStart: 1550744,
2025-03-04 07:15:18         _onTimeout: null,
2025-03-04 07:15:18         _timerArgs: undefined,
2025-03-04 07:15:18         _repeat: null,
2025-03-04 07:15:18         _destroyed: true,
2025-03-04 07:15:18         [Symbol(refed)]: false,
2025-03-04 07:15:18         [Symbol(kHasPrimitive)]: false,
2025-03-04 07:15:18         [Symbol(asyncId)]: 26975,
2025-03-04 07:15:18         [Symbol(triggerId)]: 26970
2025-03-04 07:15:18       },
2025-03-04 07:15:18       [Symbol(kBuffer)]: null,
2025-03-04 07:15:18       [Symbol(kBufferCb)]: null,
2025-03-04 07:15:18       [Symbol(kBufferGen)]: null,
2025-03-04 07:15:18       [Symbol(kCapture)]: false,
2025-03-04 07:15:18       [Symbol(kSetNoDelay)]: false,
2025-03-04 07:15:18       [Symbol(kSetKeepAlive)]: true,
2025-03-04 07:15:18       [Symbol(kSetKeepAliveInitialDelay)]: 60,
2025-03-04 07:15:18       [Symbol(kBytesRead)]: 527,
2025-03-04 07:15:18       [Symbol(kBytesWritten)]: 424,
2025-03-04 07:15:18       [Symbol(connect-options)]: [Object]
2025-03-04 07:15:18     },
2025-03-04 07:15:18     _header: 'POST /video/auth/media/aaa9ad1b-1729-4602-a00d-00d49718cbcd/asset?apikey=uiqlbgzdwuru14v627vdusswb HTTP/1.1\r\n' +
2025-03-04 07:15:18       'Accept: application/json, text/plain, */*\r\n' +
2025-03-04 07:15:18       'Content-Type: application/json\r\n' +
2025-03-04 07:15:18       'User-Agent: axios/1.2.2\r\n' +
2025-03-04 07:15:18       'Content-Length: 97\r\n' +
2025-03-04 07:15:18       'Accept-Encoding: gzip, compress, deflate, br\r\n' +
2025-03-04 07:15:18       'Host: watch.auth.api.espn.com\r\n' +
2025-03-04 07:15:18       'Connection: close\r\n' +
2025-03-04 07:15:18       '\r\n',
2025-03-04 07:15:18     _keepAliveTimeout: 0,
2025-03-04 07:15:18     _onPendingData: [Function: nop],
2025-03-04 07:15:18     agent: Agent {
2025-03-04 07:15:18       _events: [Object: null prototype],
2025-03-04 07:15:18       _eventsCount: 2,
2025-03-04 07:15:18       _maxListeners: undefined,
2025-03-04 07:15:18       defaultPort: 443,
2025-03-04 07:15:18       protocol: 'https:',
2025-03-04 07:15:18       options: [Object: null prototype],
2025-03-04 07:15:18       requests: [Object: null prototype] {},
2025-03-04 07:15:18       sockets: [Object: null prototype] {},
2025-03-04 07:15:18       freeSockets: [Object: null prototype] {},
2025-03-04 07:15:18       keepAliveMsecs: 1000,
2025-03-04 07:15:18       keepAlive: false,
2025-03-04 07:15:18       maxSockets: Infinity,
2025-03-04 07:15:18       maxFreeSockets: 256,
2025-03-04 07:15:18       scheduling: 'lifo',
2025-03-04 07:15:18       maxTotalSockets: Infinity,
2025-03-04 07:15:18       totalSocketCount: 0,
2025-03-04 07:15:18       maxCachedSessions: 100,
2025-03-04 07:15:18       _sessionCache: [Object],
2025-03-04 07:15:18       [Symbol(kCapture)]: false
2025-03-04 07:15:18     },
2025-03-04 07:15:18     socketPath: undefined,
2025-03-04 07:15:18     method: 'POST',
2025-03-04 07:15:18     maxHeaderSize: undefined,
2025-03-04 07:15:18     insecureHTTPParser: undefined,
2025-03-04 07:15:18     joinDuplicateHeaders: undefined,
2025-03-04 07:15:18     path: '/video/auth/media/aaa9ad1b-1729-4602-a00d-00d49718cbcd/asset?apikey=uiqlbgzdwuru14v627vdusswb',
2025-03-04 07:15:18     _ended: true,
2025-03-04 07:15:18     res: IncomingMessage {
2025-03-04 07:15:18       _readableState: [ReadableState],
2025-03-04 07:15:18       _events: [Object: null prototype],
2025-03-04 07:15:18       _eventsCount: 4,
2025-03-04 07:15:18       _maxListeners: undefined,
2025-03-04 07:15:18       socket: [TLSSocket],
2025-03-04 07:15:18       httpVersionMajor: 1,
2025-03-04 07:15:18       httpVersionMinor: 1,
2025-03-04 07:15:18       httpVersion: '1.1',
2025-03-04 07:15:18       complete: true,
2025-03-04 07:15:18       rawHeaders: [Array],
2025-03-04 07:15:18       rawTrailers: [],
2025-03-04 07:15:18       joinDuplicateHeaders: undefined,
2025-03-04 07:15:18       aborted: false,
2025-03-04 07:15:18       upgrade: false,
2025-03-04 07:15:18       url: '',
2025-03-04 07:15:18       method: null,
2025-03-04 07:15:18       statusCode: 403,
2025-03-04 07:15:18       statusMessage: 'Forbidden',
2025-03-04 07:15:18       client: [TLSSocket],
2025-03-04 07:15:18       _consuming: true,
2025-03-04 07:15:18       _dumped: false,
2025-03-04 07:15:18       req: [Circular *1],
2025-03-04 07:15:18       responseUrl: 'https://watch.auth.api.espn.com/video/auth/media/aaa9ad1b-1729-4602-a00d-00d49718cbcd/asset?apikey=uiqlbgzdwuru14v627vdusswb',
2025-03-04 07:15:18       redirects: [],
2025-03-04 07:15:18       [Symbol(kCapture)]: false,
2025-03-04 07:15:18       [Symbol(kHeaders)]: [Object],
2025-03-04 07:15:18       [Symbol(kHeadersCount)]: 20,
2025-03-04 07:15:18       [Symbol(kTrailers)]: null,
2025-03-04 07:15:18       [Symbol(kTrailersCount)]: 0
2025-03-04 07:15:18     },
2025-03-04 07:15:18     aborted: false,
2025-03-04 07:15:18     timeoutCb: null,
2025-03-04 07:15:18     upgradeOrConnect: false,
2025-03-04 07:15:18     parser: null,
2025-03-04 07:15:18     maxHeadersCount: null,
2025-03-04 07:15:18     reusedSocket: false,
2025-03-04 07:15:18     host: 'watch.auth.api.espn.com',
2025-03-04 07:15:18     protocol: 'https:',
2025-03-04 07:15:18     _redirectable: Writable {
2025-03-04 07:15:18       _writableState: [WritableState],
2025-03-04 07:15:18       _events: [Object: null prototype],
2025-03-04 07:15:18       _eventsCount: 3,
2025-03-04 07:15:18       _maxListeners: undefined,
2025-03-04 07:15:18       _options: [Object],
2025-03-04 07:15:18       _ended: true,
2025-03-04 07:15:18       _ending: true,
2025-03-04 07:15:18       _redirectCount: 0,
2025-03-04 07:15:18       _redirects: [],
2025-03-04 07:15:18       _requestBodyLength: 97,
2025-03-04 07:15:18       _requestBodyBuffers: [],
2025-03-04 07:15:18       _onNativeResponse: [Function (anonymous)],
2025-03-04 07:15:18       _currentRequest: [Circular *1],
2025-03-04 07:15:18       _currentUrl: 'https://watch.auth.api.espn.com/video/auth/media/aaa9ad1b-1729-4602-a00d-00d49718cbcd/asset?apikey=uiqlbgzdwuru14v627vdusswb',
2025-03-04 07:15:18       _timeout: null,
2025-03-04 07:15:18       [Symbol(kCapture)]: false
2025-03-04 07:15:18     },
2025-03-04 07:15:18     [Symbol(kCapture)]: false,
2025-03-04 07:15:18     [Symbol(kBytesWritten)]: 0,
2025-03-04 07:15:18     [Symbol(kNeedDrain)]: false,
2025-03-04 07:15:18     [Symbol(corked)]: 0,
2025-03-04 07:15:18     [Symbol(kOutHeaders)]: [Object: null prototype] {
2025-03-04 07:15:18       accept: [Array],
2025-03-04 07:15:18       'content-type': [Array],
2025-03-04 07:15:18       'user-agent': [Array],
2025-03-04 07:15:18       'content-length': [Array],
2025-03-04 07:15:18       'accept-encoding': [Array],
2025-03-04 07:15:18       host: [Array]
2025-03-04 07:15:18     },
2025-03-04 07:15:18     [Symbol(errored)]: null,
2025-03-04 07:15:18     [Symbol(kHighWaterMark)]: 16384,
2025-03-04 07:15:18     [Symbol(kRejectNonStandardBodyWrites)]: false,
2025-03-04 07:15:18     [Symbol(kUniqueHeaders)]: null
2025-03-04 07:15:18   },
2025-03-04 07:15:18   response: {
2025-03-04 07:15:18     status: 403,
2025-03-04 07:15:18     statusText: 'Forbidden',
2025-03-04 07:15:18     headers: AxiosHeaders {
2025-03-04 07:15:18       date: 'Tue, 04 Mar 2025 12:15:18 GMT',
2025-03-04 07:15:18       'content-type': 'application/json',
2025-03-04 07:15:18       'transfer-encoding': 'chunked',
2025-03-04 07:15:18       connection: 'close',
2025-03-04 07:15:18       'cache-control': 'max-age=0, no-cache, no-store, must-revalidate',
2025-03-04 07:15:18       pragma: 'no-cache',
2025-03-04 07:15:18       expires: '0',
2025-03-04 07:15:18       via: '1.1 varnish (Varnish/6.0)',
2025-03-04 07:15:18       vary: 'Accept-Encoding'
2025-03-04 07:15:18     },
2025-03-04 07:15:18     config: {
2025-03-04 07:15:18       transitional: [Object],
2025-03-04 07:15:18       adapter: [Array],
2025-03-04 07:15:18       transformRequest: [Array],
2025-03-04 07:15:18       transformResponse: [Array],
2025-03-04 07:15:18       timeout: 60000,
2025-03-04 07:15:18       xsrfCookieName: 'XSRF-TOKEN',
2025-03-04 07:15:18       xsrfHeaderName: 'X-XSRF-TOKEN',
2025-03-04 07:15:18       maxContentLength: -1,
2025-03-04 07:15:18       maxBodyLength: -1,
2025-03-04 07:15:18       env: [Object],
2025-03-04 07:15:18       validateStatus: [Function: validateStatus],
2025-03-04 07:15:18       headers: [AxiosHeaders],
2025-03-04 07:15:18       method: 'post',
2025-03-04 07:15:18       url: 'https://watch.auth.api.espn.com/video/auth/media/aaa9ad1b-1729-4602-a00d-00d49718cbcd/asset?apikey=uiqlbgzdwuru14v627vdusswb',
2025-03-04 07:15:18       data: '{"headers":{"User-Agent":"Mozilla/5.0 (X11; Linux i686; rv:133.0) Gecko/20100101 Firefox/133.0"}}'
2025-03-04 07:15:18     },
2025-03-04 07:15:18     request: <ref *1> ClientRequest {
2025-03-04 07:15:18       _events: [Object: null prototype],
2025-03-04 07:15:18       _eventsCount: 7,
2025-03-04 07:15:18       _maxListeners: undefined,
2025-03-04 07:15:18       outputData: [],
2025-03-04 07:15:18       outputSize: 0,
2025-03-04 07:15:18       writable: true,
2025-03-04 07:15:18       destroyed: true,
2025-03-04 07:15:18       _last: true,
2025-03-04 07:15:18       chunkedEncoding: false,
2025-03-04 07:15:18       shouldKeepAlive: false,
2025-03-04 07:15:18       maxRequestsOnConnectionReached: false,
2025-03-04 07:15:18       _defaultKeepAlive: true,
2025-03-04 07:15:18       useChunkedEncodingByDefault: true,
2025-03-04 07:15:18       sendDate: false,
2025-03-04 07:15:18       _removedConnection: false,
2025-03-04 07:15:18       _removedContLen: false,
2025-03-04 07:15:18       _removedTE: false,
2025-03-04 07:15:18       strictContentLength: false,
2025-03-04 07:15:18       _contentLength: '97',
2025-03-04 07:15:18       _hasBody: true,
2025-03-04 07:15:18       _trailer: '',
2025-03-04 07:15:18       finished: true,
2025-03-04 07:15:18       _headerSent: true,
2025-03-04 07:15:18       _closed: true,
2025-03-04 07:15:18       socket: [TLSSocket],
2025-03-04 07:15:18       _header: 'POST /video/auth/media/aaa9ad1b-1729-4602-a00d-00d49718cbcd/asset?apikey=uiqlbgzdwuru14v627vdusswb HTTP/1.1\r\n' +
2025-03-04 07:15:18         'Accept: application/json, text/plain, */*\r\n' +
2025-03-04 07:15:18         'Content-Type: application/json\r\n' +
2025-03-04 07:15:18         'User-Agent: axios/1.2.2\r\n' +
2025-03-04 07:15:18         'Content-Length: 97\r\n' +
2025-03-04 07:15:18         'Accept-Encoding: gzip, compress, deflate, br\r\n' +
2025-03-04 07:15:18         'Host: watch.auth.api.espn.com\r\n' +
2025-03-04 07:15:18         'Connection: close\r\n' +
2025-03-04 07:15:18         '\r\n',
2025-03-04 07:15:18       _keepAliveTimeout: 0,
2025-03-04 07:15:18       _onPendingData: [Function: nop],
2025-03-04 07:15:18       agent: [Agent],
2025-03-04 07:15:18       socketPath: undefined,
2025-03-04 07:15:18       method: 'POST',
2025-03-04 07:15:18       maxHeaderSize: undefined,
2025-03-04 07:15:18       insecureHTTPParser: undefined,
2025-03-04 07:15:18       joinDuplicateHeaders: undefined,
2025-03-04 07:15:18       path: '/video/auth/media/aaa9ad1b-1729-4602-a00d-00d49718cbcd/asset?apikey=uiqlbgzdwuru14v627vdusswb',
2025-03-04 07:15:18       _ended: true,
2025-03-04 07:15:18       res: [IncomingMessage],
2025-03-04 07:15:18       aborted: false,
2025-03-04 07:15:18       timeoutCb: null,
2025-03-04 07:15:18       upgradeOrConnect: false,
2025-03-04 07:15:18       parser: null,
2025-03-04 07:15:18       maxHeadersCount: null,
2025-03-04 07:15:18       reusedSocket: false,
2025-03-04 07:15:18       host: 'watch.auth.api.espn.com',
2025-03-04 07:15:18       protocol: 'https:',
2025-03-04 07:15:18       _redirectable: [Writable],
2025-03-04 07:15:18       [Symbol(kCapture)]: false,
2025-03-04 07:15:18       [Symbol(kBytesWritten)]: 0,
2025-03-04 07:15:18       [Symbol(kNeedDrain)]: false,
2025-03-04 07:15:18       [Symbol(corked)]: 0,
2025-03-04 07:15:18       [Symbol(kOutHeaders)]: [Object: null prototype],
2025-03-04 07:15:18       [Symbol(errored)]: null,
2025-03-04 07:15:18       [Symbol(kHighWaterMark)]: 16384,
2025-03-04 07:15:18       [Symbol(kRejectNonStandardBodyWrites)]: false,
2025-03-04 07:15:18       [Symbol(kUniqueHeaders)]: null
2025-03-04 07:15:18     },
2025-03-04 07:15:18     data: {
2025-03-04 07:15:18       timestamp: 1741090518568,
2025-03-04 07:15:18       status: 403,
2025-03-04 07:15:18       error: 'Forbidden',
2025-03-04 07:15:18       exception: 'com.espn.watch.auth.model.security.AccessDeniedException',
2025-03-04 07:15:18       message: 'Valid token required',
2025-03-04 07:15:18       path: '/video/auth/media/aaa9ad1b-1729-4602-a00d-00d49718cbcd/asset'
2025-03-04 07:15:18     }
2025-03-04 07:15:18   }
2025-03-04 07:15:18 }

Are you only toggling ESPN3, or the main ESPN toggle? If the former, could you try retoggling the main? It will still log an error when you toggle it on but I think you should still be able to proceed with the activate link.

The main ESPN toggle works fine. It activates fine too. The ESPN 3 check box does not have a check. When it is checked and refresh the page, it reverts back to unchecked. None of the ESPN 3 feeds are displayed in Channels. Everything else works as expected. When the ESPN 3 box is checked the successfully activated conformation pops up.

The log I posted was when I check the Espn3 box. Everything else ESPN related works fine and stays checked and shows in the m3u.

Thanks for the detailed info. I think I found the problem and opened a PR with the fix. Look for another Docker image update soon.

Edit: Docker image updated now, let me know if the problem persists!

1 Like

I'm now getting this in the log and still not retaining the check mark. I pulled the new image and I re-authorized the ESPN login and token.

2025-03-04 13:27:06 Did not detect ISP access

When I get home today, I'll log in with my sons YTTV credentials and see if it is just my login having this issue. Thanks

Even changing to my sons YTTV login, the ESPN 3 continues to not retain the click and gives the ISP access log entry.

Update now and it should finally work again with YTV! You will still see the log message about ISP access but the toggle should stick and the events should populate.

1 Like

That did it. Thanks man...

Is 4.6.0 still the latest?

1 Like

It is. The latest has the changes he made to it without adjusting the version number.

1 Like

Gotcha. Is a pull request required if you aren't currently experiencing any issues with ESPN3?

I need to bump the version numbers, but if you aren't having any issues no need to pull

1 Like