ESPN+ & FOX Sports with Custom Channels via EPlusTV

Pull latest pulls 207 for me and verified working again

Second try worked. Thanks for your help.

On the latest version getting Could not parse chunklist properly for any ESPN TVE stream and FS1 streams are crashing the container. ESPN+ and NBC Sports working fine.

Okay, sorry about that! Should be fixed on 2.0.8!

I've got EPlusTV working with ESPN+ and Channels, and displaying through the Channels AppleTV app, but I'm having some difficulty using the ** START_CHANNEL** environmental variable.

I'd like to start my ESPN+ channels at 7000 or 8000 so that they appear after the YouTubeTV channels in the Channels "All Channels" Guide view. If I don't set this value, I wind up with 150 ESPN+ channels (many of them useless) on this view, and I'm not sure how to get rid of them.

When I set this environmental variable, and restart my docker container, the channels do begin on that number, but there doesn't seem to be any guide data that matches these channels. If I leave the number starting at 1 (not setting the environmental variable) I do get guide data for these channels.

Has anyone else seen this issue, or have a solution? Is there any way for me to exclude the ESPN+ channels from the "All Channels" Guide screen? Starting them at 7000 is more of a workaround to "hide" them from view, but maybe I'm missing something.

If I try to access the channel, I get an error saying:

Could not fetch playlist: :: get http://:/channels/7000.m3u8: 404 Not Found

Change the settings under the source to ignore channel number from m3u while removing the start_channel from the environments. Then reload the m3u and guide data This will usually put them after tve.. It’s 9000’s for me. I would recommend creating an automatic channel collection and add only espn+ to it with the sports tag and exclude all other sources. Then when you select that collection it will only show currently playing channels and none of the empty channels.

3 Likes

@Rice Thank you! That worked well. The only part I don't have working yet is I can't seem to get my automatic channel collection showing in the drop-down list at the top of the Guide screen on my devices, the way you're showing "ESPN PLUS+" in your screen-grab.

I tried toggling this setting on, thinking perhaps this is what was needed, but I still don't see the choice in that drop-down on my devices.

698C0B5A-129C-4A3C-B3CB-1C28F48483CB

Your screenshots look like it’s set up correctly. Does your client only show “all” and “favorites” channel collections now? (Just those two and not the original 4 or 5?). You could try removing the global setting and instead force the collection thru the clients tab gear.


@chDVRuser you might want to split this off to it’s own topic

@Rice All working properly now. Adding that "Server Side Only" setting was the necessary fix. Thanks for your help.

So I am able to login to ESPN+ on my browser and watch live anything. I setup EPlusTV and when it asks me to activate I am able to do so for everything except ESPN+ does not get a valid BAM Access Token. I have verified that I can most certainly login to ESPN+ and watch live programming without issue. The other providers, ESPN, Fox Sports, NBC all work fine authenticating against my HULU account.

My ESPN+ access is through my Disney+ account if that makes a difference.

I have deleted the tokens.json and retried multiple times.

See below please. Thank you!

== ESPN+ Auth ==
Please open a browser window and go to: https://www.espn.com/watch/activate
Enter code:  PJMSHR
Refreshing device token (ESPN+)
TypeError: Cannot read properties of undefined (reading 'services')
    at EspnHandler.<anonymous> (/app/services/espn-handler.ts:892:62)
    at Generator.next (<anonymous>)
    at /app/services/espn-handler.ts:8:71
    at new Promise (<anonymous>)
    at __awaiter (/app/services/espn-handler.ts:4:12)
    at EspnHandler.createDeviceGrant (/app/services/espn-handler.ts:889:42)
    at EspnHandler.<anonymous> (/app/services/espn-handler.ts:929:16)
    at Generator.next (<anonymous>)
    at /app/services/espn-handler.ts:8:71
    at new Promise (<anonymous>)
Could not get device grant
TypeError: Cannot read properties of undefined (reading 'services')
    at EspnHandler.<anonymous> (/app/services/espn-handler.ts:933:71)
    at Generator.next (<anonymous>)
    at fulfilled (/app/services/espn-handler.ts:5:58)
    at processTicksAndRejections (node:internal/process/task_queues:96:5)
Could not get device token exchange
Refreshing device refresh token (ESPN+)
TypeError: Cannot read properties of undefined (reading 'services')
    at EspnHandler.<anonymous> (/app/services/espn-handler.ts:892:62)
    at Generator.next (<anonymous>)
    at /app/services/espn-handler.ts:8:71
    at new Promise (<anonymous>)
    at __awaiter (/app/services/espn-handler.ts:4:12)
    at EspnHandler.createDeviceGrant (/app/services/espn-handler.ts:889:42)
    at EspnHandler.<anonymous> (/app/services/espn-handler.ts:929:16)
    at Generator.next (<anonymous>)
    at /app/services/espn-handler.ts:8:71
    at new Promise (<anonymous>)
Could not get device grant
TypeError: Cannot read properties of undefined (reading 'services')
    at EspnHandler.<anonymous> (/app/services/espn-handler.ts:933:71)
    at Generator.next (<anonymous>)
    at fulfilled (/app/services/espn-handler.ts:5:58)
    at processTicksAndRejections (node:internal/process/task_queues:96:5)
Could not get device token exchange
TypeError: Cannot read properties of undefined (reading 'services')
    at EspnHandler.<anonymous> (/app/services/espn-handler.ts:956:70)
    at Generator.next (<anonymous>)
    at fulfilled (/app/services/espn-handler.ts:5:58)
    at processTicksAndRejections (node:internal/process/task_queues:96:5)
Could not get device token exchange
Refreshing BAM access token (ESPN+)
TypeError: Cannot read properties of undefined (reading 'services')
    at EspnHandler.<anonymous> (/app/services/espn-handler.ts:892:62)
    at Generator.next (<anonymous>)
    at /app/services/espn-handler.ts:8:71
    at new Promise (<anonymous>)
    at __awaiter (/app/services/espn-handler.ts:4:12)
    at EspnHandler.createDeviceGrant (/app/services/espn-handler.ts:889:42)
    at EspnHandler.<anonymous> (/app/services/espn-handler.ts:929:16)
    at Generator.next (<anonymous>)
    at /app/services/espn-handler.ts:8:71
    at new Promise (<anonymous>)
Could not get device grant
TypeError: Cannot read properties of undefined (reading 'services')
    at EspnHandler.<anonymous> (/app/services/espn-handler.ts:933:71)
    at Generator.next (<anonymous>)
    at fulfilled (/app/services/espn-handler.ts:5:58)
    at processTicksAndRejections (node:internal/process/task_queues:96:5)
Could not get device token exchange
TypeError: Cannot read properties of undefined (reading 'services')
    at EspnHandler.<anonymous> (/app/services/espn-handler.ts:956:70)
    at Generator.next (<anonymous>)
    at fulfilled (/app/services/espn-handler.ts:5:58)
    at processTicksAndRejections (node:internal/process/task_queues:96:5)
Could not get device token exchange
TypeError: Cannot read properties of undefined (reading 'services')
    at EspnHandler.<anonymous> (/app/services/espn-handler.ts:913:26)
    at Generator.next (<anonymous>)
    at fulfilled (/app/services/espn-handler.ts:5:58)
    at processTicksAndRejections (node:internal/process/task_queues:96:5)
Could not get account grant
TypeError: Cannot read properties of undefined (reading 'services')
    at EspnHandler.<anonymous> (/app/services/espn-handler.ts:978:63)
    at Generator.next (<anonymous>)
    at fulfilled (/app/services/espn-handler.ts:5:58)
    at processTicksAndRejections (node:internal/process/task_queues:96:5)
Could not get BAM access token
1 Like

I am also seeing this on first open of the log on Unraid

      agent: undefined,
      nativeProtocols: [Object],
      pathname: '/bam-sdk/v2.0/espn-a9b93989/browser/v3.4/linux/chrome/prod.json'
    },
    _ended: true,
    _ending: true,
    _redirectCount: 0,
    _redirects: [],
    _requestBodyLength: 0,
    _requestBodyBuffers: [],
    _onNativeResponse: [Function (anonymous)],
    _currentRequest: ClientRequest {
      _events: [Object: null prototype],
      _eventsCount: 7,
      _maxListeners: undefined,
      outputData: [],
      outputSize: 0,
      writable: true,
      destroyed: false,
      _last: true,
      chunkedEncoding: false,
      shouldKeepAlive: false,
      maxRequestsOnConnectionReached: false,
      _defaultKeepAlive: true,
      useChunkedEncodingByDefault: false,
      sendDate: false,
      _removedConnection: false,
      _removedContLen: false,
      _removedTE: false,
      _contentLength: 0,
      _hasBody: true,
      _trailer: '',
      finished: true,
      _headerSent: true,
      _closed: false,
      socket: [TLSSocket],
      _header: 'GET /bam-sdk/v2.0/espn-a9b93989/browser/v3.4/linux/chrome/prod.json HTTP/1.1\r\n' +
        'Accept: application/json, text/plain, */*\r\n' +
        'User-Agent: axios/1.2.2\r\n' +
        'Accept-Encoding: gzip, compress, deflate, br\r\n' +
        'Host: bam-sdk-configs.bamgrid.com\r\n' +
        'Connection: close\r\n' +
        '\r\n',
      _keepAliveTimeout: 0,
      _onPendingData: [Function: nop],
      agent: [Agent],
      socketPath: undefined,
      method: 'GET',
      maxHeaderSize: undefined,
      insecureHTTPParser: undefined,
      path: '/bam-sdk/v2.0/espn-a9b93989/browser/v3.4/linux/chrome/prod.json',
      _ended: false,
      res: null,
      aborted: false,
      timeoutCb: null,
      upgradeOrConnect: false,
      parser: null,
      maxHeadersCount: null,
      reusedSocket: false,
      host: 'bam-sdk-configs.bamgrid.com',
      protocol: 'https:',
      _redirectable: [Circular *1],
      [Symbol(kCapture)]: false,
      [Symbol(kNeedDrain)]: false,
      [Symbol(corked)]: 0,
      [Symbol(kOutHeaders)]: [Object: null prototype],
      [Symbol(kUniqueHeaders)]: null
    },
    _currentUrl: 'https://bam-sdk-configs.bamgrid.com/bam-sdk/v2.0/espn-a9b93989/browser/v3.4/linux/chrome/prod.json',
    [Symbol(kCapture)]: false
  },
  cause: Error: Client network socket disconnected before secure TLS connection was established
      at connResetException (node:internal/errors:704:14)
      at TLSSocket.onConnectEnd (node:_tls_wrap:1590:19)
      at TLSSocket.emit (node:events:525:35)
      at TLSSocket.emit (node:domain:489:12)
      at endReadableNT (node:internal/streams/readable:1358:12)
      at processTicksAndRejections (node:internal/process/task_queues:83:21) {
    code: 'ECONNRESET',
    path: null,
    host: 'bam-sdk-configs.bamgrid.com',
    port: 443,
    localAddress: undefined
  }
}
Could not load API app config
1 Like

Attached is screenshot of my Automatic Collection.

Issue:
College Women's softball games do not show in the On Now ESPN+ tab. They do show in the All tab.

Any ideas to get them to show?

1 Like

I think you need to remove all the genres since you can’t put softball in there.

I thought you might be able to use "softball" in the keywords field, but it doesn't look like the EPlusTV softball events have "softball" in any tags or the description.

Actually, the xml does have "softball", but I guess it's in a field that Channels' keyword search doesn't search.

Are you using a VPN by chance?

Good call, although not VPN, Unlocator DNS is the default on the unraid server. I manually added --dns="1.1.1.1" to the extra parameters and the errors are gone now!

2 Likes

You are correct. The meta data is there but we don’t have a softball tag. I'll play around with the filter and see what happens.

What am I doing wrong here? For the life of me, i can't get my ESPN+ source to be added to the guide for live sports.

You have ESPNPlus in the excluded sources box.

1 Like

Yeah, I just realized that after clearing all of the sources. Duh.

In my defense, every other list on that screen is inclusive.