for (let i = 0; i < allResolutions.length; i++) {
const resolution = allResolutions[i]
- VideoFileModel.upsert({
+ const file = new VideoFileModel({
resolution,
size: -1,
extname: '.ts',
infoHash: null,
fps,
videoStreamingPlaylistId: playlist.id
- }).catch(err => {
- logger.error('Cannot create file for live streaming.', { err })
})
+
+ VideoFileModel.customUpsert(file, 'streaming-playlist', null)
+ .catch(err => logger.error('Cannot create file for live streaming.', { err }))
}
const outPath = getHLSDirectory(videoLive.Video)
private isDurationConstraintValid (streamingStartTime: number) {
const maxDuration = CONFIG.LIVE.MAX_DURATION
// No limit
- if (maxDuration === null) return true
+ if (maxDuration < 0) return true
const now = new Date().getTime()
const max = streamingStartTime + maxDuration
await federateVideoIfNeeded(video, false)
+ PeerTubeSocket.Instance.sendVideoViewsUpdate(video)
+
// Only keep not expired watchers
const newWatchers = watchers.filter(w => w > notBefore)
this.watchersPerVideo.set(videoId, newWatchers)