Let me know. Had to do it blind since I don't have Gotham creds anymore
If anyone else has struggled with Peacock, I was finally able to link my account today. In the past, I couldn’t even link it at nfl.com, but today that worked, and so did setting it up in EPlusTV.
I got this up and running using the basic commands, but can someone explain it to me like I'm 5 or point me somewhere that'll help me learn how to update my password, change the ENV variables so that I can add some of the other providers, etc.. This thread has gotten really long, and the Github explains what can be done, I'm just a little lost on how. Is this basic Docker stuff? Is there a Docker for Dummies that I can look into?
Speaking of Peacock, they're going to have a Black Friday sale starting tomorrow where you can get a year of Premium (ad supported) for 20 bucks.
Getting 401 unauthorized on the ESPN MNF game tonight (NFL+), running 4.1.1. Was working fine last week.
2024-11-25 20:43:52 AxiosError: Request failed with status code 401
2024-11-25 20:43:52 at settle (/app/node_modules/axios/lib/core/settle.js:19:12)
2024-11-25 20:43:52 at IncomingMessage.handleStreamEnd (/app/node_modules/axios/lib/adapters/http.js:512:11)
2024-11-25 20:43:52 at IncomingMessage.emit (node:events:529:35)
2024-11-25 20:43:52 at IncomingMessage.emit (node:domain:489:12)
2024-11-25 20:43:52 at endReadableNT (node:internal/streams/readable:1400:12)
2024-11-25 20:43:52 at processTicksAndRejections (node:internal/process/task_queues:82:21) {
2024-11-25 20:43:52 code: 'ERR_BAD_REQUEST',
2024-11-25 20:43:52 config: {
2024-11-25 20:43:52 transitional: {
2024-11-25 20:43:52 silentJSONParsing: true,
2024-11-25 20:43:52 forcedJSONParsing: true,
2024-11-25 20:43:52 clarifyTimeoutError: false
2024-11-25 20:43:52 },
2024-11-25 20:43:52 adapter: [ 'xhr', 'http' ],
2024-11-25 20:43:52 transformRequest: [ [Function: transformRequest] ],
2024-11-25 20:43:52 transformResponse: [ [Function: transformResponse] ],
2024-11-25 20:43:52 timeout: 0,
2024-11-25 20:43:52 xsrfCookieName: 'XSRF-TOKEN',
2024-11-25 20:43:52 xsrfHeaderName: 'X-XSRF-TOKEN',
2024-11-25 20:43:52 maxContentLength: -1,
2024-11-25 20:43:52 maxBodyLength: -1,
2024-11-25 20:43:52 env: { FormData: [Function], Blob: [class Blob] },
2024-11-25 20:43:52 validateStatus: [Function: validateStatus],
2024-11-25 20:43:52 headers: AxiosHeaders {
2024-11-25 20:43:52 Accept: 'application/json, text/plain, */*',
2024-11-25 20:43:52 Authorization: 'Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJjbGllbnRJZCI6IjU0ZWZjYmUxLTBmYzgtNGQ0Ni1iYmFiLTRiNzIxYThjZmIwZiIsImNsaWVudEtleSI6IjBxMXA1S1NzdnR1MlZKZms1dlE1RWRwbU5OR3JDR1U3IiwiaXNzIjoiTkZMIiwiZGV2aWNlSWQiOiI5NDdmMWY5My04NTAyLTQ4OWYtOTNkMS0zN2I5Nzk1Y2U5ZGUiLCJwbGFucyI6W3sicGxhbiI6ImZyZWUiLCJleHBpcmF0aW9uRGF0ZSI6IjIwMjUtMTEtMjYiLCJzb3VyY2UiOiJORkwiLCJzdGFydERhdGUiOiIyMDI0LTExLTI2Iiwic3RhdHVzIjoiQUNUSVZFIiwidHJpYWwiOmZhbHNlfSx7InBsYW4iOiJBTUFaT05fUFJJTUUiLCJleHBpcmF0aW9uRGF0ZSI6IjIwMjQtMTItMjYiLCJzb3VyY2UiOiJzeW5hY29yIiwic3RhcnREYXRlIjoiMjAyNC0xMS0yNiIsInN0YXR1cyI6IkFDVElWRSIsInRyaWFsIjpmYWxzZX1dLCJEaXNwbGF5TmFtZSI6Ik1vYmlsZSA0IEFuZHJvaWQgTW9iaWxlIFBob25lIiwiTm90ZXMiOiIiLCJmb3JtRmFjdG9yIjoiTU9CSUxFX1BIT05FIiwibHVyYUFwcEtleSI6IlNaczU3ZEJHUnhiTDcyOGxWcDdEWVEiLCJwbGF0Zm9ybSI6IkFORFJPSUQiLCJwcm9kdWN0TmFtZSI6Ik5GTF9NT0JJTEUiLCJyb2xlcyI6WyJjb250ZW50IiwiZXhwZXJpZW5jZSIsImZvb3RiYWxsIiwidXRpbGl0aWVzIiwidGVhbXMiLCJwbGF5IiwibGl2ZSIsImlkZW50aXR5IiwibmdzX3N0YXRzIiwicGF5bWVudHNfYXBpIiwibmdzX3RyYWNraW5nIiwibmdzX3BsYXRmb3JtIiwibmdzX2NvbnRlbnQiLCJuZ3NfY29tYmluZSIsIm5nc19hZHZhbmNlZF9zdGF0cyIsIm5mbF9wcm8iLCJlY29tbSIsIm5mbF9pZF9hcGkiLCJ1dGlsaXRpZXNfbG9jYXRpb24iLCJpZGVudGl0eV9vaWRjIiwibmdzX3NzZSIsImZyZWUiLCJBTUFaT05fUFJJTUUiXSwiY2l0eSI6Im9ybW9uZCBiZWFjaCIsImNvdW50cnlDb2RlIjoiVVMiLCJkbWFDb2RlIjoiNTM0IiwiaG1hVGVhbXMiOlsiMTA0MDIyNTAtODlmZS03Yjg2LWVmOTgtOTA2MmNkMzU0MjU2IiwiMTA0MDI3MDAtMTY2Mi1kOGFkLWY0NWMtMGIwZWE0NjBkMDQ1IiwiMTA0MDQ5MDAtZDU5ZS1iNDQ5LWVmNzUtOTYxZTA5Y2EwMjdlIl0sInJlZ2lvbiI6IkZMIiwiemlwQ29kZSI6IjMyMTc0IiwiYnJvd3NlciI6Ik90aGVyIiwiY2VsbHVsYXIiOmZhbHNlLCJlbnZpcm9ubWVudCI6InByb2R1Y3Rpb24iLCJ1aWQiOiIzOTkxZWYyNzJkNGIxZTU3NDgxNTdjODQzOGY5ZTI5OSIsIm5ldHdvcmtzIjp7IkFCQyI6IkFCQyIsIkNCUyI6IkNCUyIsIkVTUE4iOiJFU1BOIiwiRk9YIjoiRk9YIiwiTkJDIjoiTkJDIiwiTkZMTiI6Ik5GTE4iLCJVTklWRVJTTyI6IlVOSVZFUlNPIn0sImV4cCI6MTczMjU4NTQzNn0.0h0ruIJjGGua-NvXO1lfWOxaqLGCY_1srB4z3Izk-YA',
2024-11-25 20:43:52 'User-Agent': 'axios/1.2.2',
2024-11-25 20:43:52 'Accept-Encoding': 'gzip, compress, deflate, br'
2024-11-25 20:43:52 },
2024-11-25 20:43:52 method: 'get',
2024-11-25 20:43:52 url: 'https://api.nfl.com/experience/v1/livestreams',
2024-11-25 20:43:52 data: undefined
2024-11-25 20:43:52 },
2024-11-25 20:43:52 request: <ref *1> ClientRequest {
2024-11-25 20:43:52 _events: [Object: null prototype] {
2024-11-25 20:43:52 abort: [Function (anonymous)],
2024-11-25 20:43:52 aborted: [Function (anonymous)],
2024-11-25 20:43:52 connect: [Function (anonymous)],
2024-11-25 20:43:52 error: [Function (anonymous)],
2024-11-25 20:43:52 socket: [Function (anonymous)],
2024-11-25 20:43:52 timeout: [Function (anonymous)],
2024-11-25 20:43:52 finish: [Function: requestOnFinish]
2024-11-25 20:43:52 },
2024-11-25 20:43:52 _eventsCount: 7,
2024-11-25 20:43:52 _maxListeners: undefined,
2024-11-25 20:43:52 outputData: [],
2024-11-25 20:43:52 outputSize: 0,
2024-11-25 20:43:52 writable: true,
2024-11-25 20:43:52 destroyed: false,
2024-11-25 20:43:52 _last: true,
2024-11-25 20:43:52 chunkedEncoding: false,
2024-11-25 20:43:52 shouldKeepAlive: false,
2024-11-25 20:43:52 maxRequestsOnConnectionReached: false,
2024-11-25 20:43:52 _defaultKeepAlive: true,
2024-11-25 20:43:52 useChunkedEncodingByDefault: false,
2024-11-25 20:43:52 sendDate: false,
2024-11-25 20:43:52 _removedConnection: false,
2024-11-25 20:43:52 _removedContLen: false,
2024-11-25 20:43:52 _removedTE: false,
2024-11-25 20:43:52 strictContentLength: false,
2024-11-25 20:43:52 _contentLength: 0,
2024-11-25 20:43:52 _hasBody: true,
2024-11-25 20:43:52 _trailer: '',
2024-11-25 20:43:52 finished: true,
2024-11-25 20:43:52 _headerSent: true,
2024-11-25 20:43:52 _closed: false,
2024-11-25 20:43:52 socket: TLSSocket {
2024-11-25 20:43:52 _tlsOptions: [Object],
2024-11-25 20:43:52 _secureEstablished: true,
2024-11-25 20:43:52 _securePending: false,
2024-11-25 20:43:52 _newSessionPending: false,
2024-11-25 20:43:52 _controlReleased: true,
2024-11-25 20:43:52 secureConnecting: false,
2024-11-25 20:43:52 _SNICallback: null,
2024-11-25 20:43:52 servername: 'api.nfl.com',
2024-11-25 20:43:52 alpnProtocol: false,
2024-11-25 20:43:52 authorized: true,
2024-11-25 20:43:52 authorizationError: null,
2024-11-25 20:43:52 encrypted: true,
2024-11-25 20:43:52 _events: [Object: null prototype],
2024-11-25 20:43:52 _eventsCount: 10,
2024-11-25 20:43:52 connecting: false,
2024-11-25 20:43:52 _hadError: false,
2024-11-25 20:43:52 _parent: null,
2024-11-25 20:43:52 _host: 'api.nfl.com',
2024-11-25 20:43:52 _closeAfterHandlingError: false,
2024-11-25 20:43:52 _readableState: [ReadableState],
2024-11-25 20:43:52 _maxListeners: undefined,
2024-11-25 20:43:52 _writableState: [WritableState],
2024-11-25 20:43:52 allowHalfOpen: false,
2024-11-25 20:43:52 _sockname: null,
2024-11-25 20:43:52 _pendingData: null,
2024-11-25 20:43:52 _pendingEncoding: '',
2024-11-25 20:43:52 server: undefined,
2024-11-25 20:43:52 _server: null,
2024-11-25 20:43:52 ssl: [TLSWrap],
2024-11-25 20:43:52 _requestCert: true,
2024-11-25 20:43:52 _rejectUnauthorized: true,
2024-11-25 20:43:52 parser: null,
2024-11-25 20:43:52 _httpMessage: [Circular *1],
2024-11-25 20:43:52 [Symbol(alpncallback)]: null,
2024-11-25 20:43:52 [Symbol(res)]: [TLSWrap],
2024-11-25 20:43:52 [Symbol(verified)]: true,
2024-11-25 20:43:52 [Symbol(pendingSession)]: null,
2024-11-25 20:43:52 [Symbol(async_id_symbol)]: 663498,
2024-11-25 20:43:52 [Symbol(kHandle)]: [TLSWrap],
2024-11-25 20:43:52 [Symbol(lastWriteQueueSize)]: 0,
2024-11-25 20:43:52 [Symbol(timeout)]: null,
2024-11-25 20:43:52 [Symbol(kBuffer)]: null,
2024-11-25 20:43:52 [Symbol(kBufferCb)]: null,
2024-11-25 20:43:52 [Symbol(kBufferGen)]: null,
2024-11-25 20:43:52 [Symbol(kCapture)]: false,
2024-11-25 20:43:52 [Symbol(kSetNoDelay)]: false,
2024-11-25 20:43:52 [Symbol(kSetKeepAlive)]: true,
2024-11-25 20:43:52 [Symbol(kSetKeepAliveInitialDelay)]: 60,
2024-11-25 20:43:52 [Symbol(kBytesRead)]: 0,
2024-11-25 20:43:52 [Symbol(kBytesWritten)]: 0,
2024-11-25 20:43:52 [Symbol(connect-options)]: [Object]
2024-11-25 20:43:52 },
2024-11-25 20:43:52 _header: 'GET /experience/v1/livestreams HTTP/1.1\r\n' +
2024-11-25 20:43:52 'Accept: application/json, text/plain, */*\r\n' +
2024-11-25 20:43:52 'Authorization: Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJjbGllbnRJZCI6IjU0ZWZjYmUxLTBmYzgtNGQ0Ni1iYmFiLTRiNzIxYThjZmIwZiIsImNsaWVudEtleSI6IjBxMXA1S1NzdnR1MlZKZms1dlE1RWRwbU5OR3JDR1U3IiwiaXNzIjoiTkZMIiwiZGV2aWNlSWQiOiI5NDdmMWY5My04NTAyLTQ4OWYtOTNkMS0zN2I5Nzk1Y2U5ZGUiLCJwbGFucyI6W3sicGxhbiI6ImZyZWUiLCJleHBpcmF0aW9uRGF0ZSI6IjIwMjUtMTEtMjYiLCJzb3VyY2UiOiJORkwiLCJzdGFydERhdGUiOiIyMDI0LTExLTI2Iiwic3RhdHVzIjoiQUNUSVZFIiwidHJpYWwiOmZhbHNlfSx7InBsYW4iOiJBTUFaT05fUFJJTUUiLCJleHBpcmF0aW9uRGF0ZSI6IjIwMjQtMTItMjYiLCJzb3VyY2UiOiJzeW5hY29yIiwic3RhcnREYXRlIjoiMjAyNC0xMS0yNiIsInN0YXR1cyI6IkFDVElWRSIsInRyaWFsIjpmYWxzZX1dLCJEaXNwbGF5TmFtZSI6Ik1vYmlsZSA0IEFuZHJvaWQgTW9iaWxlIFBob25lIiwiTm90ZXMiOiIiLCJmb3JtRmFjdG9yIjoiTU9CSUxFX1BIT05FIiwibHVyYUFwcEtleSI6IlNaczU3ZEJHUnhiTDcyOGxWcDdEWVEiLCJwbGF0Zm9ybSI6IkFORFJPSUQiLCJwcm9kdWN0TmFtZSI6Ik5GTF9NT0JJTEUiLCJyb2xlcyI6WyJjb250ZW50IiwiZXhwZXJpZW5jZSIsImZvb3RiYWxsIiwidXRpbGl0aWVzIiwidGVhbXMiLCJwbGF5IiwibGl2ZSIsImlkZW50aXR5IiwibmdzX3N0YXRzIiwicGF5bWVudHNfYXBpIiwibmdzX3RyYWNraW5nIiwibmdzX3BsYXRmb3JtIiwibmdzX2NvbnRlbnQiLCJuZ3NfY29tYmluZSIsIm5nc19hZHZhbmNlZF9zdGF0cyIsIm5mbF9wcm8iLCJlY29tbSIsIm5mbF9pZF9hcGkiLCJ1dGlsaXRpZXNfbG9jYXRpb24iLCJpZGVudGl0eV9vaWRjIiwibmdzX3NzZSIsImZyZWUiLCJBTUFaT05fUFJJTUUiXSwiY2l0eSI6Im9ybW9uZCBiZWFjaCIsImNvdW50cnlDb2RlIjoiVVMiLCJkbWFDb2RlIjoiNTM0IiwiaG1hVGVhbXMiOlsiMTA0MDIyNTAtODlmZS03Yjg2LWVmOTgtOTA2MmNkMzU0MjU2IiwiMTA0MDI3MDAtMTY2Mi1kOGFkLWY0NWMtMGIwZWE0NjBkMDQ1IiwiMTA0MDQ5MDAtZDU5ZS1iNDQ5LWVmNzUtOTYxZTA5Y2EwMjdlIl0sInJlZ2lvbiI6IkZMIiwiemlwQ29kZSI6IjMyMTc0IiwiYnJvd3NlciI6Ik90aGVyIiwiY2VsbHVsYXIiOmZhbHNlLCJlbnZpcm9ubWVudCI6InByb2R1Y3Rpb24iLCJ1aWQiOiIzOTkxZWYyNzJkNGIxZTU3NDgxNTdjODQzOGY5ZTI5OSIsIm5ldHdvcmtzIjp7IkFCQyI6IkFCQyIsIkNCUyI6IkNCUyIsIkVTUE4iOiJFU1BOIiwiRk9YIjoiRk9YIiwiTkJDIjoiTkJDIiwiTkZMTiI6Ik5GTE4iLCJVTklWRVJTTyI6IlVOSVZFUlNPIn0sImV4cCI6MTczMjU4NTQzNn0.0h0ruIJjGGua-NvXO1lfWOxaqLGCY_1srB4z3Izk-YA\r\n' +
2024-11-25 20:43:52 'User-Agent: axios/1.2.2\r\n' +
2024-11-25 20:43:52 'Accept-Encoding: gzip, compress, deflate, br\r\n' +
2024-11-25 20:43:52 'Host: api.nfl.com\r\n' +
2024-11-25 20:43:52 'Connection: close\r\n' +
2024-11-25 20:43:52 '\r\n',
2024-11-25 20:43:52 _keepAliveTimeout: 0,
2024-11-25 20:43:52 _onPendingData: [Function: nop],
2024-11-25 20:43:52 agent: Agent {
2024-11-25 20:43:52 _events: [Object: null prototype],
2024-11-25 20:43:52 _eventsCount: 2,
2024-11-25 20:43:52 _maxListeners: undefined,
2024-11-25 20:43:52 defaultPort: 443,
2024-11-25 20:43:52 protocol: 'https:',
2024-11-25 20:43:52 options: [Object: null prototype],
2024-11-25 20:43:52 requests: [Object: null prototype] {},
2024-11-25 20:43:52 sockets: [Object: null prototype],
2024-11-25 20:43:52 freeSockets: [Object: null prototype] {},
2024-11-25 20:43:52 keepAliveMsecs: 1000,
2024-11-25 20:43:52 keepAlive: false,
2024-11-25 20:43:52 maxSockets: Infinity,
2024-11-25 20:43:52 maxFreeSockets: 256,
2024-11-25 20:43:52 scheduling: 'lifo',
2024-11-25 20:43:52 maxTotalSockets: Infinity,
2024-11-25 20:43:52 totalSocketCount: 1,
2024-11-25 20:43:52 maxCachedSessions: 100,
2024-11-25 20:43:52 _sessionCache: [Object],
2024-11-25 20:43:52 [Symbol(kCapture)]: false
2024-11-25 20:43:52 },
Does restarting the stream work?
No, I did a reauthorize on the tokens and after that it errored out saying channel 8000 didn't have an event scheduled. I didn't restart the container, I just started the recording on TVE directly from ESPN (not using E+ in other words).
Channels was constantly retrying the stream and it was not working with 401 for at least 30 minutes. This isn't the first time I've seen this, so there is some sort of authentication issue.
Hmm. Hopefully I have some time to investigate this this week
Okay, I found a few potential issues with the TNF and Gotham tokens. Hopefully they have been fixed!
I also added the Twitch TV stream for TNF as an option if you don't have Prime or want a backup
I'm going to be out and about tomorrow. Someone test the Twitch stream and let me know how it goes
How do you get the Twitch streams to appear?
I enabled it in the web interface, rebuilt the EPG, and even restarted the container, but I still only see the two Prime events in the XML feed.
Looks like no one replied to you — there is now a web interface to configure this, so no environment variables are required.
If you can just install and run the container, just load http://your.ip.address:8000 in a web browser. From there, you can toggle your providers and log in as necessary.
Ahh, I might have forgotten the run the schedule. But after restarting the container they popped up on my server
edit:
Just pushed an update to search for the schedule. Shows up for me
Working here too... I've set up a noon recording 
After updating, I see it now too -- thanks!
Hey, just a heads up: when I initially turned on the Twitch setting, the backend seemed to get stuck. When I reset the Container, everything went fine:
2024-11-29 13:43:52
2024-11-29 13:43:52 > [email protected] start
2024-11-29 13:43:52 > ts-node -r tsconfig-paths/register index.tsx
2024-11-29 13:43:52
2024-11-29 13:44:39 === E+TV v4.1.3 starting ===
2024-11-29 13:44:48 Server started on port 8000
2024-11-29 13:44:48 === Getting events ===
2024-11-29 13:44:48 Looking for ESPN events
2024-11-29 13:44:54 Looking for FOX Sports events...
2024-11-29 13:44:55 Adding event: NFL - FOX NFL Kickoff
2024-11-29 13:44:55 Looking for Mountain West events...
2024-11-29 13:44:55 Looking for NFL events...
2024-11-29 13:44:57 Adding event: Chicago Bears at Detroit Lions
2024-11-29 13:44:57 Adding event: New York Giants at Dallas Cowboys
2024-11-29 13:44:57 Adding event: Miami Dolphins at Green Bay Packers
2024-11-29 13:44:57 Adding event: Chicago Bears at Detroit Lions
2024-11-29 13:44:57 Adding event: Las Vegas Raiders at Kansas City Chiefs
2024-11-29 13:44:57 Adding event: Weekly Game Recaps: Bears vs. Lions highlights | Week 13
2024-11-29 13:44:57 Adding event: Weekly Game Recaps: Giants vs. Cowboys highlights | Week 13
2024-11-29 13:44:57 Adding event: Weekly Game Recaps: Dolphins vs. Packers highlights | Week 13
2024-11-29 13:44:57 Adding event: Weekly Game Recaps: Bears vs. Lions highlights | Week 13
2024-11-29 13:44:57 Adding event: Weekly Game Recaps: Giants vs. Cowboys highlights | Week 13
2024-11-29 13:44:57 Adding event: Weekly Game Recaps: Dolphins vs. Packers highlights | Week 13
2024-11-29 13:44:57 Adding event: Weekly Game Recaps
2024-11-29 13:44:57 Adding event: Weekly Game Recaps: Bears vs. Lions highlights | Week 13
2024-11-29 13:44:57 Looking for CBS Sports events...
2024-11-29 13:44:58 === Done getting events ===
2024-11-29 13:44:58 === Building the schedule ===
2024-11-29 13:44:58 Scheduling 1 entries...
2024-11-29 13:44:58 === Done building the schedule ===
2024-11-29 13:45:22 Looking for NFL events...
2024-11-29 13:49:46
2024-11-29 13:49:46 > [email protected] start
2024-11-29 13:49:46 > ts-node -r tsconfig-paths/register index.tsx
2024-11-29 13:49:46
2024-11-29 13:49:59 === E+TV v4.1.3 starting ===
2024-11-29 13:50:05 Server started on port 8000
2024-11-29 13:50:05 === Getting events ===
2024-11-29 13:50:05 Looking for ESPN events
2024-11-29 13:50:09 Looking for FOX Sports events...
2024-11-29 13:50:11 Looking for Mountain West events...
2024-11-29 13:50:11 Looking for NFL events...
2024-11-29 13:50:12 Adding event: Prime Vision with Next Gen Stats
2024-11-29 13:50:12 Adding event: Las Vegas Raiders at Kansas City Chiefs
2024-11-29 13:50:12 Adding event: Weekly Game Recaps: Bears vs. Lions highlights | Week 13
2024-11-29 13:50:12 Looking for CBS Sports events...
2024-11-29 13:50:13 === Done getting events ===
2024-11-29 13:50:13 === Building the schedule ===
2024-11-29 13:50:13 Scheduling 2 entries...
2024-11-29 13:50:13 === Done building the schedule ===
Just tried watching on my phone but it failed to load. When I loaded up the page in the DuckDuckGo browser in my phone it asked if it could use DRM, so I wonder if I'll have to rip it out. Let me know if it works for anyone
Looks like they do use DRM for the Twitch streams: plugins.Twitch: no_cdm_specified for Prime Video TNF Twitch channel · Issue #5592 · streamlink/streamlink · GitHub
I noticed on Friday and Saturday when trying to watch the Friendship Four that events airing on NESN are now giving a
Could not parse M3U8 properly!
error but events airing on NESN+ seem to be having no issues streaming. Via the NESN website I can watch both streams, although NESN's main channel stream has odd de-interlacing artifacts that you can see by looking at the bottom line in this screenshot. Not sure if that has anything to do with anything though.


