any chance of adding more data to the xml? like the type of sport, etc. thanks.
I hate to annoy you guys with a noob question. How do I add the channel variables like fox, nbc, etc
In your docker you add variable and then true
Like below. Not sure what all you are running to be able to answer more than this.
-e ESPN3=true -e FOXSPORTS=true
Its all on the github page.
Hate to say but might need the channel count bumped up from 100. I noticed tonight that all 100 channels were consumed. I would have a hard time believing this would happen very often. Quite a bit of games going on currently.
My channel numbers start at 700. 
I ran into that also when trying to record a game yesterday. With the number of colleges utilizing ESPN+, this could be an issue.
I wonder if it's possible to have filters in the docker to help alleviate that issue.
I can bump the number of channels pretty easily
This is referencing college sports only.
Currently has on mens & womens basketball. The weekday games are spread Tuesday thru Thursday and the weekend games are mostly on Saturday.
College baseball and womens softball will start in February. I believe that women's softball schedule is all over the place but baseball is Fri, Sat, and Sun. That's a lot of games each day.
Since I have using your container, the 100 limit has only affected me once. I was able to get that game by nuking the /app/config folder and reinstalling the version I was on. After reauthorizing, the game showed up and recorded fine. I'm not sure if increasing the # of channels will help or hurt something else.
I really appreciate the work you do on EPlusTV. I utilize docker on a Synology NAS.
I bumped up the total channels to 150 for tonight's update
Updated to the Beta 14 version this morning. Started a ESPN+ stream via Channels and it started playing quickly. I then recorded for testing, and after about ~20 mins the docker image exited. I tried the same thing again with a new container and it exited as well.

Is this something on my end or a bug in the new version?
Here are the logs:
=== Done building the schedule ===
=== Starting Server ===
Server started on port 8000
Channel #25005 has an active event. Going to start the stream.
Channel #25005 has upcoming event. Setting timer to start
Refreshing device token
Refreshing device refresh token
Refreshing BAM access token
Could not parse M3U8 properly!
AxiosError: read ECONNRESET
at TLSWrap.onStreamRead (node:internal/stream_base_commons:217:20) {
syscall: 'read',
code: 'ECONNRESET',
errno: -104,
config: {
transitional: {
silentJSONParsing: true,
forcedJSONParsing: true,
clarifyTimeoutError: false
},
adapter: [Function: httpAdapter],
transformRequest: [ [Function: transformRequest] ],
transformResponse: [ [Function: transformResponse] ],
timeout: 0,
xsrfCookieName: 'XSRF-TOKEN',
xsrfHeaderName: 'X-XSRF-TOKEN',
maxContentLength: -1,
maxBodyLength: -1,
env: { FormData: [Function] },
validateStatus: [Function: validateStatus],
headers: {
Accept: 'application/json, text/plain, */*',
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/107.0.0.0 Safari/537.36',
Authorization: 'eyJ6aXAiOiJERUYiLCJraWQiOiJNZHRlcVJ2R04yTDg3dW5OM2g5QzdReF9MUGNRdGN4VTZZNnk5UjF4eHBFIiwiY3R5IjoiSldUIiwiZW5jIjoiQzIwUCIsImFsZyI6ImRpciJ9..0CKpzfA2nRKD2xLe.enPn3eahYts08_HXcbh1IHXK7hnDbqtzYIH72aaA5s0FcejM1PtEZchesIub-iIbUrv29AkaKEJ3h2mH8xDGg7rMRYBeNe3i6xgECQOcpLwdYv_yYtEV2ohSjtGIq5eqT0L6x5Mf9bGQd1Vk7m8B3H3DdS5nS6mwJzmwWe2GHvvcS_4GiteXqzoxwzmIQc0J3okkPT62sARRHK_3slHYrqyJSkM1jjrjsZPBvUttX1nTwUsEAzZVUWjKbgk_faHGHDqMjQr4A3XaVSz58j-tLk-AtGMIio0aAtFiPbxYsu-W4LlIiBCOY7mm6dDJF41Mh8knuyqynhzmaLDryk-WigKovgEjIq1UyhLW88RMqyVqiRa-qOhripQi1YYgq5RhFMeN-L8ETheYCNmIMVYlvvGfIqSslGuPigaDD3TB5XGcAyv6sODjU-U5kRKEyKXLzUfq8oc-kfi4dZlfxX44qv-g-0jkMj5lFJJNYA87r9z9nVLKdxttL_7WhI6EW_iTFg1atIPF5-dPN__wOhgwhZpYB2bPXmaLX2Nv9msqWffGclny8qaZJUxbrlx09O-cAtrJ8CZRs3gFq0CzasYOI-ojg1d4pwK-1AG-Xc6apsTjH8yH0zoqAmUZl9HJfeF43Q_1yaCM7dbxSXrB_u5irw268x1fb0RGV8ftb-4n1dW5tS5XI7fgw2UPUdLdLzu5pUzvIsHQjLRjeVG7SnqynpM1B9YRlVJR0Dm48mOxnVXcrwbCUvzlOOl7mqDGEmqeXOTUK1Gl-5ZI9IjOx7SrT73W1rnS4D2EYSbsYUCmL1D--TZqLj6R5_1oFTc9w_2iL0dgxHoifQ9IdwpcGF0bpuTtX9VfydtDvNvWsDjAhp3qqVPDKb14zs4g70dj94rYAPVfE5nPev52bbWebyoSNawfdHqu85KADJNWyMaFIBzi9pFHmylVJqfIw9N9hMZvICAUW9o0CSHEL3E1IqcN2ON24UG3oQPIwGRAm_-lOSskpaaS1AW5-m7aJqT4cChoWRgr5MbdVwFSftalpbjvo1L7piMquM32zIQdEcv0XAmLfxMIytUjNrYDYbyUwK3frT05xbuSCxy2efQy2aGVudtcahYwncwv-oBqpsIVa5jXvSPtV7F7wRJo_NmjW3aYdMNqOg-ZrNEQR_trDDFLzf6mLu-GxqE7ay_A9_NodREtaFx58KXexxZXWrVkx8uPxnLP8LTMzxpHcnrH2T1w3S6LYk-uqfoNDAjLNgtCy2c-1fI_dwdGckBxpdHQ-0mO0sEkLePlruD8eSM5C4nq_A2R3yk1PcmWAXIT7KYFExgArW1uO6XRMHt4QhnVIT2rMLNc-seoKNG0NfXWYvsGIc1z_gS2bCu9zunuu4VNju6Jrz91LoTGq1XqXuDIIR0BN-FmBtbtLeAw9UZWC0JJYucX-B8oakorn2Yiy_I31M7Rlx-d8HhHBZuMgcG3Kd9FNEf0pAqQLR8jcMWSQO6rdXllyPVXLMFt2h0x57OSDLyKDpJKRWfozlo90J4l15y-OZExlWbZD-QSECypeb4ohijSl98eDjEIbn3Og0v95N5DgEc9hHe7r_5dB3KuxbA23MJ_RxeaURcbpBwtCpZ9QoZTlIKLefAmmO4aoIY5py_uyRNID2b-8fRV5xOLmzYAgo1ma_lEeV86Egm8lbQ1cf2Y355aXnje7dUkfK4_LAmFyx8JGyJy23NURat9r-1KSSvhrc41A__WXlNrmjkyd8blO8EuIjuCrULMgImsR2pMxJOrb45bkBjPUEYulDpctiuBNPt3dvaRHgVPv-fEuefQOIVzJE0mCNzPfu1oy_vlONEFYvd1nQQinZOhgPwSH31J7xQm7P7zpHvw6lISBxm4OTys14Ic20IaWZ6PlFqotMO-FbtU9wHHyjffjkS2AIE58g5Nlq_KRTqas3V2NyML8692uQBim9mx-ELt_ySxAPUmtIUCiQ9lkosVnARgE1lUFmLbt8Upsu7px549uboOFahCK_pVTjfHrs1jLYpcXodUvPelqDqpTasdMt0sMcBXZD8iT8rtNQMWf3ZodkD03U3oHO9R95TvV86kPu-0GC_BEar8Q8RpbEAIpvlD2sZTshlzXwuLNurzi81sASBsjHbAWfe2bZGd-84FVHV7kMutlQ_5eyCl8J0.KNyGhvPsOvD8jF87kgxMEg'
},
method: 'get',
url: 'https://live-ftc-na-central-1.media.plus.espn.com/token=exp=1673197509~id=e6eb0ded-d1c5-43f2-b2d9-ba04706d9e7b~data=607d1474-2088-4db4-9562-a0b09a9dd426~hash=24611bd38df92871e53f863e2054fb13bb5ba845/oma2/va01/espn/event/2023/01/07/Villarreal_vs_Real_Madrid_20230107_1673097341031/master_desktop_slide_aeng.m3u8',
data: undefined
},
request: <ref *1> Writable {
_writableState: WritableState {
objectMode: false,
highWaterMark: 16384,
finalCalled: false,
needDrain: false,
ending: false,
ended: false,
finished: false,
destroyed: false,
decodeStrings: true,
defaultEncoding: 'utf8',
length: 0,
writing: false,
corked: 0,
sync: true,
bufferProcessing: false,
onwrite: [Function: bound onwrite],
writecb: null,
writelen: 0,
afterWriteTickInfo: null,
buffered: [],
bufferedIndex: 0,
allBuffers: true,
allNoop: true,
pendingcb: 0,
constructed: true,
prefinished: false,
errorEmitted: false,
emitClose: true,
autoDestroy: true,
errored: null,
closed: false,
closeEmitted: false,
[Symbol(kOnFinished)]: []
},
_events: [Object: null prototype] {
response: [Function: handleResponse],
error: [Function: handleRequestError],
socket: [Function: handleRequestSocket]
},
_eventsCount: 3,
_maxListeners: undefined,
_options: {
maxRedirects: 21,
maxBodyLength: 10485760,
protocol: 'https:',
path: '/token=exp=1673197509~id=e6eb0ded-d1c5-43f2-b2d9-ba04706d9e7b~data=607d1474-2088-4db4-9562-a0b09a9dd426~hash=24611bd38df92871e53f863e2054fb13bb5ba845/oma2/va01/espn/event/2023/01/07/Villarreal_vs_Real_Madrid_20230107_1673097341031/master_desktop_slide_aeng.m3u8',
method: 'GET',
headers: [Object],
agent: undefined,
agents: [Object],
auth: undefined,
hostname: 'live-ftc-na-central-1.media.plus.espn.com',
port: null,
nativeProtocols: [Object],
pathname: '/token=exp=1673197509~id=e6eb0ded-d1c5-43f2-b2d9-ba04706d9e7b~data=607d1474-2088-4db4-9562-a0b09a9dd426~hash=24611bd38df92871e53f863e2054fb13bb5ba845/oma2/va01/espn/event/2023/01/07/Villarreal_vs_Real_Madrid_20230107_1673097341031/master_desktop_slide_aeng.m3u8'
},
_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 /token=exp=1673197509~id=e6eb0ded-d1c5-43f2-b2d9-ba04706d9e7b~data=607d1474-2088-4db4-9562-a0b09a9dd426~hash=24611bd38df92871e53f863e2054fb13bb5ba845/oma2/va01/espn/event/2023/01/07/Villarreal_vs_Real_Madrid_20230107_1673097341031/master_desktop_slide_aeng.m3u8 HTTP/1.1\r\n' +
'Accept: application/json, text/plain, */*\r\n' +
'User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/107.0.0.0 Safari/537.36\r\n' +
'Authorization: eyJ6aXAiOiJERUYiLCJraWQiOiJNZHRlcVJ2R04yTDg3dW5OM2g5QzdReF9MUGNRdGN4VTZZNnk5UjF4eHBFIiwiY3R5IjoiSldUIiwiZW5jIjoiQzIwUCIsImFsZyI6ImRpciJ9..0CKpzfA2nRKD2xLe.enPn3eahYts08_HXcbh1IHXK7hnDbqtzYIH72aaA5s0FcejM1PtEZchesIub-iIbUrv29AkaKEJ3h2mH8xDGg7rMRYBeNe3i6xgECQOcpLwdYv_yYtEV2ohSjtGIq5eqT0L6x5Mf9bGQd1Vk7m8B3H3DdS5nS6mwJzmwWe2GHvvcS_4GiteXqzoxwzmIQc0J3okkPT62sARRHK_3slHYrqyJSkM1jjrjsZPBvUttX1nTwUsEAzZVUWjKbgk_faHGHDqMjQr4A3XaVSz58j-tLk-AtGMIio0aAtFiPbxYsu-W4LlIiBCOY7mm6dDJF41Mh8knuyqynhzmaLDryk-WigKovgEjIq1UyhLW88RMqyVqiRa-qOhripQi1YYgq5RhFMeN-L8ETheYCNmIMVYlvvGfIqSslGuPigaDD3TB5XGcAyv6sODjU-U5kRKEyKXLzUfq8oc-kfi4dZlfxX44qv-g-0jkMj5lFJJNYA87r9z9nVLKdxttL_7WhI6EW_iTFg1atIPF5-dPN__wOhgwhZpYB2bPXmaLX2Nv9msqWffGclny8qaZJUxbrlx09O-cAtrJ8CZRs3gFq0CzasYOI-ojg1d4pwK-1AG-Xc6apsTjH8yH0zoqAmUZl9HJfeF43Q_1yaCM7dbxSXrB_u5irw268x1fb0RGV8ftb-4n1dW5tS5XI7fgw2UPUdLdLzu5pUzvIsHQjLRjeVG7SnqynpM1B9YRlVJR0Dm48mOxnVXcrwbCUvzlOOl7mqDGEmqeXOTUK1Gl-5ZI9IjOx7SrT73W1rnS4D2EYSbsYUCmL1D--TZqLj6R5_1oFTc9w_2iL0dgxHoifQ9IdwpcGF0bpuTtX9VfydtDvNvWsDjAhp3qqVPDKb14zs4g70dj94rYAPVfE5nPev52bbWebyoSNawfdHqu85KADJNWyMaFIBzi9pFHmylVJqfIw9N9hMZvICAUW9o0CSHEL3E1IqcN2ON24UG3oQPIwGRAm_-lOSskpaaS1AW5-m7aJqT4cChoWRgr5MbdVwFSftalpbjvo1L7piMquM32zIQdEcv0XAmLfxMIytUjNrYDYbyUwK3frT05xbuSCxy2efQy2aGVudtcahYwncwv-oBqpsIVa5jXvSPtV7F7wRJo_NmjW3aYdMNqOg-ZrNEQR_trDDFLzf6mLu-GxqE7ay_A9_NodREtaFx58KXexxZXWrVkx8uPxnLP8LTMzxpHcnrH2T1w3S6LYk-uqfoNDAjLNgtCy2c-1fI_dwdGckBxpdHQ-0mO0sEkLePlruD8eSM5C4nq_A2R3yk1PcmWAXIT7KYFExgArW1uO6XRMHt4QhnVIT2rMLNc-seoKNG0NfXWYvsGIc1z_gS2bCu9zunuu4VNju6Jrz91LoTGq1XqXuDIIR0BN-FmBtbtLeAw9UZWC0JJYucX-B8oakorn2Yiy_I31M7Rlx-d8HhHBZuMgcG3Kd9FNEf0pAqQLR8jcMWSQO6rdXllyPVXLMFt2h0x57OSDLyKDpJKRWfozlo90J4l15y-OZExlWbZD-QSECypeb4ohijSl98eDjEIbn3Og0v95N5DgEc9hHe7r_5dB3KuxbA23MJ_RxeaURcbpBwtCpZ9QoZTlIKLefAmmO4aoIY5py_uyRNID2b-8fRV5xOLmzYAgo1ma_lEeV86Egm8lbQ1cf2Y355aXnje7dUkfK4_LAmFyx8JGyJy23NURat9r-1KSSvhrc41A__WXlNrmjkyd8blO8EuIjuCrULMgImsR2pMxJOrb45bkBjPUEYulDpctiuBNPt3dvaRHgVPv-fEuefQOIVzJE0mCNzPfu1oy_vlONEFYvd1nQQinZOhgPwSH31J7xQm7P7zpHvw6lISBxm4OTys14Ic20IaWZ6PlFqotMO-FbtU9wHHyjffjkS2AIE58g5Nlq_KRTqas3V2NyML8692uQBim9mx-ELt_ySxAPUmtIUCiQ9lkosVnARgE1lUFmLbt8Upsu7px549uboOFahCK_pVTjfHrs1jLYpcXodUvPelqDqpTasdMt0sMcBXZD8iT8rtNQMWf3ZodkD03U3oHO9R95TvV86kPu-0GC_BEar8Q8RpbEAIpvlD2sZTshlzXwuLNurzi81sASBsjHbAWfe2bZGd-84FVHV7kMutlQ_5eyCl8J0.KNyGhvPsOvD8jF87kgxMEg\r\n' +
'Host: live-ftc-na-central-1.media.plus.espn.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: '/token=exp=1673197509~id=e6eb0ded-d1c5-43f2-b2d9-ba04706d9e7b~data=607d1474-2088-4db4-9562-a0b09a9dd426~hash=24611bd38df92871e53f863e2054fb13bb5ba845/oma2/va01/espn/event/2023/01/07/Villarreal_vs_Real_Madrid_20230107_1673097341031/master_desktop_slide_aeng.m3u8',
_ended: false,
res: null,
aborted: false,
timeoutCb: null,
upgradeOrConnect: false,
parser: null,
maxHeadersCount: null,
reusedSocket: false,
host: 'live-ftc-na-central-1.media.plus.espn.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://live-ftc-na-central-1.media.plus.espn.com/token=exp=1673197509~id=e6eb0ded-d1c5-43f2-b2d9-ba04706d9e7b~data=607d1474-2088-4db4-9562-a0b09a9dd426~hash=24611bd38df92871e53f863e2054fb13bb5ba845/oma2/va01/espn/event/2023/01/07/Villarreal_vs_Real_Madrid_20230107_1673097341031/master_desktop_slide_aeng.m3u8',
[Symbol(kCapture)]: false
}
}
/app/services/manifest-helpers.ts:10
url.startsWith('http') ? false : true;
^
TypeError: Cannot read properties of undefined (reading 'startsWith')
at isRelativeUrl (/app/services/manifest-helpers.ts:10:7)
at ChunklistHandler.<anonymous> (/app/services/manifest-helpers.ts:103:9)
at Generator.next (<anonymous>)
at fulfilled (/app/services/manifest-helpers.ts:5:58)
at runMicrotasks (<anonymous>)
at processTicksAndRejections (node:internal/process/task_queues:96:5)
Actually. Just took a look at the recording and it appears the stream never started. Just recorded 10 mins of the “intro page”.
Hopefully that helps.
What provider is this event with? Is more than 1 event doing this?
Updated to latest version. I was wondering what the HLS timestamps is telling me. Is that a channels issue, a code issue, or is it nothing to be worried about.
On web gui, after starting, I had to hit the play button for stream to start.
On fire stick: got the event to start screen then had to exit and reselect the game to play
2023/01/07 15:41:00.254240 [TNR] Opened connection to M3U-ESPN for ch72 EPlusTV 72
2023/01/07 15:41:00.261466 [HLS] Starting live stream for channel 72 from 10.0.1.21
2023/01/07 15:41:00.775466 [HLS] ffmpeg: ch72-dANY-ip10.0.1.21-remux: [hls @ 0x9037840] Timestamps are unset in a packet for stream 1. This is deprecated and will stop working in the future. Fix your code to set the timestamps properly
2023/01/07 15:41:00.881123 [HLS] Probed live stream in 619.247122ms: h264 1280x720 progressive 80383bps
2023/01/07 15:41:04.270083 [TNR] Closed connection to M3U-ESPN for ch72 EPlusTV 72
2023/01/07 15:41:04.270117 [SNR] Buffer statistics for ch72 EPlusTV 72: buf=0% drop=0%
2023/01/07 15:41:05.951003 [HLS] Couldn't generate stream playlist for ch72-dANY-ip10.0.1.21: Stream stopped
2023/01/07 15:41:05.951100 [HLS] Stopping transcoder session ch72-dANY-ip10.0.1.21 (out: 13.744056s, finished: true)
2023/01/07 15:41:06.282011 [M3U] stream timestamps: EPlusTV 72: start_at=2023-01-07T15:35:56-06:00 end_at=2023-01-07T15:40:51-06:00 live_delay=9.466005529s
2023/01/07 15:41:06.282112 [TNR] Opened connection to M3U-ESPN for ch72 EPlusTV 72
2023/01/07 15:41:06.284635 [HLS] Starting live stream for channel 72 from 10.0.1.21
2023/01/07 15:41:07.412113 [HLS] ffmpeg: ch72-dANY-ip10.0.1.21-remux: [hls @ 0x9ab7980] Timestamps are unset in a packet for stream 1. This is deprecated and will stop working in the future. Fix your code to set the timestamps properly
2023/01/07 15:41:07.654157 [HLS] Probed live stream in 1.369163364s: h264 1280x720 progressive 7018440bps
2023/01/07 15:42:26.619803 [HLS] Stopping transcoder session ch72-dANY-ip10.0.1.21 (out: 1m24.984911s, finished: false)
2023/01/07 15:42:26.642565 [TNR] Closed connection to M3U-ESPN for ch72 EPlusTV 72
2023/01/07 15:42:26.642605 [SNR] Buffer statistics for ch72 EPlusTV 72: buf=0% drop=0%
Hmmm. I guess I need to try a device that connects to Channels. From the Channels web ui, I don't have any issues with it having to play twice. I'll start investigating that next.
I have a feeling that the issue with the docker image crashing is due to the VM I'm running it on. I don't have a lot of resources allocated to it and looks like CPU is spiking high. I'm going to allocate additional resources and see if that helps.
In terms of the channels loading, I seem to be having similar results as jagrim on all providers linked to eplustv. In the Channels Web UI I often have to click the "watch now" button a second time for the channel to start playing. In the Apple TV and iOS app I have to exit the channel and open it again before it starts playing.
Thanks for your continued work on this integration!!
Bingo!!
Excellent description of the issue and its across devices as I also use a Firestick. I have to go back to beta 10 for it to work correctly.
It works perfect for me in VLC so definitely seems like a Channels DVR thing in terms of the issues with the stream playing.
@m0ngr31 Would it be possible to add an environment variable to set or prefix the channel name that is output?
I prefer to have my channels ordered by name, but that ends up with all the EPlusTV channels showing up in the middle of the guide. It would be great for me to be able to adjust the channel names so that they appeared at the bottom.
Please try this DVR prerelease:
Issue still exists for me after upgrading to the latest pre-release (2023.01.10.0105).
Might require an update on my end as well


