Refactor M3U8 playlist generation for improved readability and maintainability

This commit is contained in:
Cesar Mendivil 2026-02-15 16:03:07 -07:00
parent 826f21763d
commit 7e3605a8f1

View File

@ -527,25 +527,24 @@ function video( channelService, fillerDB, db, programmingService, activeChannelS
var data = "#EXTM3U\n"
data += `#EXT-X-VERSION:3
#EXT-X-MEDIA-SEQUENCE:0
#EXT-X-ALLOW-CACHE:YES
#EXT-X-TARGETDURATION:60
#EXT-X-PLAYLIST-TYPE:VOD\n`;
data += `#EXT-X-VERSION:3\n#EXT-X-MEDIA-SEQUENCE:0\n#EXT-X-ALLOW-CACHE:YES\n#EXT-X-TARGETDURATION:60\n#EXT-X-PLAYLIST-TYPE:VOD\n`;
let ffmpegSettings = db['ffmpeg-settings'].find()[0]
cur ="59.0";
// Duration to advertise for each pseudo-segment (seconds). Keep slightly
// below TARGETDURATION to avoid premature reloads.
let cur = "59.0";
function addSegment(url) {
data += `#EXTINF:${cur},\n${url}\n`;
}
if ( ffmpegSettings.enableFFMPEGTranscoding === true) {
//data += `#EXTINF:${cur},\n`;
data += `${req.protocol}://${req.get('host')}/stream?channel=${channelNum}&first=0&m3u8=1&session=${sessionId}\n`;
addSegment(`${req.protocol}://${req.get('host')}/stream?channel=${channelNum}&first=0&m3u8=1&session=${sessionId}`)
}
//data += `#EXTINF:${cur},\n`;
data += `${req.protocol}://${req.get('host')}/stream?channel=${channelNum}&first=1&m3u8=1&session=${sessionId}\n`
addSegment(`${req.protocol}://${req.get('host')}/stream?channel=${channelNum}&first=1&m3u8=1&session=${sessionId}`)
for (var i = 0; i < maxStreamsToPlayInARow - 1; i++) {
//data += `#EXTINF:${cur},\n`;
data += `${req.protocol}://${req.get('host')}/stream?channel=${channelNum}&m3u8=1&session=${sessionId}\n`
addSegment(`${req.protocol}://${req.get('host')}/stream?channel=${channelNum}&m3u8=1&session=${sessionId}`)
}
res.send(data)