FFMPEG User-Agent headers added to stream. M3U channel title fixed. M3U and HDHR channel urls include User-Agent
This commit is contained in:
parent
00ba6a73c7
commit
da4ff9fe1f
@ -140,8 +140,8 @@ function api(db, xmltvInterval) {
|
|||||||
let channels = db['channels'].find()
|
let channels = db['channels'].find()
|
||||||
var data = "#EXTM3U\n"
|
var data = "#EXTM3U\n"
|
||||||
for (var i = 0; i < channels.length; i++) {
|
for (var i = 0; i < channels.length; i++) {
|
||||||
data += `#EXTINF:0 tvg-id="${channels[i].number}" tvg-name="${channels[i].name}" tvg-logo="${channels[i].icon}",${channels[i].number}\n`
|
data += `#EXTINF:0 tvg-id="${channels[i].number}" tvg-name="${channels[i].name}" tvg-logo="${channels[i].icon}",${channels[i].name}\n`
|
||||||
data += `http://${process.env.HOST}:${process.env.PORT}/video?channel=${channels[i].number}\n`
|
data += `http://${process.env.HOST}:${process.env.PORT}/video?channel=${channels[i].number}|User-Agent=ffmpeg\n`
|
||||||
}
|
}
|
||||||
res.send(data)
|
res.send(data)
|
||||||
})
|
})
|
||||||
|
|||||||
@ -9,6 +9,7 @@ class ffmpeg extends events.EventEmitter {
|
|||||||
}
|
}
|
||||||
spawn(lineupItem) {
|
spawn(lineupItem) {
|
||||||
let args = [
|
let args = [
|
||||||
|
'-headers', 'User-Agent: ffmpeg',
|
||||||
'-threads', this.opts.threads,
|
'-threads', this.opts.threads,
|
||||||
'-ss', lineupItem.start / 1000,
|
'-ss', lineupItem.start / 1000,
|
||||||
'-t', lineupItem.duration / 1000,
|
'-t', lineupItem.duration / 1000,
|
||||||
|
|||||||
@ -48,7 +48,7 @@ function hdhr(db) {
|
|||||||
var lineup = []
|
var lineup = []
|
||||||
var channels = db['channels'].find()
|
var channels = db['channels'].find()
|
||||||
for (let i = 0, l = channels.length; i < l; i++)
|
for (let i = 0, l = channels.length; i < l; i++)
|
||||||
lineup.push({ GuideNumber: channels[i].number.toString(), GuideName: channels[i].name, URL: `http://${process.env.HOST}:${process.env.PORT}/video?channel=${channels[i].number}` })
|
lineup.push({ GuideNumber: channels[i].number.toString(), GuideName: channels[i].name, URL: `http://${process.env.HOST}:${process.env.PORT}/video?channel=${channels[i].number}|User-Agent=ffmpeg` })
|
||||||
res.send(JSON.stringify(lineup))
|
res.send(JSON.stringify(lineup))
|
||||||
})
|
})
|
||||||
|
|
||||||
|
|||||||
@ -47,9 +47,7 @@ function getCurrentProgramAndTimeElapsed(date, channel) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
function createProgramStreamTimeline(obj) {
|
function createProgramStreamTimeline(obj) {
|
||||||
|
|
||||||
let timeElapsed = obj.timeElapsed
|
let timeElapsed = obj.timeElapsed
|
||||||
console.log(timeElapsed)
|
|
||||||
let activeProgram = obj.program
|
let activeProgram = obj.program
|
||||||
let lineup = []
|
let lineup = []
|
||||||
let programStartTimes = [0, activeProgram.actualDuration * .25, activeProgram.actualDuration * .50, activeProgram.actualDuration * .75, activeProgram.actualDuration]
|
let programStartTimes = [0, activeProgram.actualDuration * .25, activeProgram.actualDuration * .50, activeProgram.actualDuration * .75, activeProgram.actualDuration]
|
||||||
@ -86,7 +84,7 @@ function createProgramStreamTimeline(obj) {
|
|||||||
lineup.push({
|
lineup.push({
|
||||||
type: 'program',
|
type: 'program',
|
||||||
file: activeProgram.file,
|
file: activeProgram.file,
|
||||||
start: progTimeElapsed + timeElapsed,
|
start: progTimeElapsed + timeElapsed, // add the duration of already played program chunks to the timeElapsed
|
||||||
duration: (programStartTimes[i + 1] - programStartTimes[i]) - timeElapsed
|
duration: (programStartTimes[i + 1] - programStartTimes[i]) - timeElapsed
|
||||||
})
|
})
|
||||||
} else if (foundFirstVideo) {
|
} else if (foundFirstVideo) {
|
||||||
@ -102,7 +100,7 @@ function createProgramStreamTimeline(obj) {
|
|||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
timeElapsed -= (programStartTimes[i + 1] - programStartTimes[i])
|
timeElapsed -= (programStartTimes[i + 1] - programStartTimes[i])
|
||||||
progTimeElapsed += (programStartTimes[i + 1] - programStartTimes[i])
|
progTimeElapsed += (programStartTimes[i + 1] - programStartTimes[i]) // add the duration of already played program chunks together
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
12
src/plex.js
12
src/plex.js
@ -34,7 +34,8 @@ class Plex {
|
|||||||
login: username,
|
login: username,
|
||||||
password: password
|
password: password
|
||||||
}
|
}
|
||||||
}
|
},
|
||||||
|
jar: false
|
||||||
}
|
}
|
||||||
request(req, (err, res, body) => {
|
request(req, (err, res, body) => {
|
||||||
if (err || res.statusCode !== 201)
|
if (err || res.statusCode !== 201)
|
||||||
@ -50,7 +51,8 @@ class Plex {
|
|||||||
var req = {
|
var req = {
|
||||||
method: 'get',
|
method: 'get',
|
||||||
url: `${this.URL}${path}`,
|
url: `${this.URL}${path}`,
|
||||||
headers: this._headers
|
headers: this._headers,
|
||||||
|
jar: false
|
||||||
}
|
}
|
||||||
Object.assign(req, optionalHeaders)
|
Object.assign(req, optionalHeaders)
|
||||||
req.headers['X-Plex-Token'] = this._token
|
req.headers['X-Plex-Token'] = this._token
|
||||||
@ -71,7 +73,8 @@ class Plex {
|
|||||||
method: 'put',
|
method: 'put',
|
||||||
url: `${this.URL}${path}`,
|
url: `${this.URL}${path}`,
|
||||||
headers: this._headers,
|
headers: this._headers,
|
||||||
qs: query
|
qs: query,
|
||||||
|
jar: false
|
||||||
}
|
}
|
||||||
Object.assign(req, optionalHeaders)
|
Object.assign(req, optionalHeaders)
|
||||||
req.headers['X-Plex-Token'] = this._token
|
req.headers['X-Plex-Token'] = this._token
|
||||||
@ -92,7 +95,8 @@ class Plex {
|
|||||||
method: 'post',
|
method: 'post',
|
||||||
url: `${this.URL}${path}`,
|
url: `${this.URL}${path}`,
|
||||||
headers: this._headers,
|
headers: this._headers,
|
||||||
qs: query
|
qs: query,
|
||||||
|
jar: false
|
||||||
}
|
}
|
||||||
Object.assign(req, optionalHeaders)
|
Object.assign(req, optionalHeaders)
|
||||||
req.headers['X-Plex-Token'] = this._token
|
req.headers['X-Plex-Token'] = this._token
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user