import { generateHLSMasterPlaylistFilename, generateHlsSha256SegmentsFilename, getLiveReplayBaseDirectory } from '../paths'
import { PeerTubeSocket } from '../peertube-socket'
import { LiveQuotaStore } from './live-quota-store'
-import { LiveSegmentShaStore } from './live-segment-sha-store'
import { cleanupPermanentLive } from './live-utils'
import { MuxingSession } from './shared'
return this.abortSession(sessionId)
}
- // Cleanup old potential live files (could happen with a permanent live)
- LiveSegmentShaStore.Instance.cleanupShaSegments(video.uuid)
-
+ // Cleanup old potential live (could happen with a permanent live)
const oldStreamingPlaylist = await VideoStreamingPlaylistModel.loadHLSPlaylistByVideo(video.id)
if (oldStreamingPlaylist) {
if (!videoLive.permanentLive) throw new Error('Found previous session in a non permanent live: ' + video.uuid)
const videoId = live.videoId
try {
- const video = await VideoModel.loadAndPopulateAccountAndServerAndTags(videoId)
+ const video = await VideoModel.loadFull(videoId)
logger.info('Will publish and federate live %s.', video.url, localLTags)
const { videoId, liveSession: liveSessionArg, cleanupNow = false } = options
try {
- const fullVideo = await VideoModel.loadAndPopulateAccountAndServerAndTags(videoId)
+ const fullVideo = await VideoModel.loadFull(videoId)
if (!fullVideo) return
const live = await VideoLiveModel.loadByVideoId(fullVideo.id)
- const liveSession = liveSessionArg ?? await VideoLiveSessionModel.findCurrentSessionOf(fullVideo.id)
+ const liveSession = liveSessionArg ?? await VideoLiveSessionModel.findLatestSessionOf(fullVideo.id)
// On server restart during a live
if (!liveSession.endDate) {
: undefined,
liveSessionId: liveSession.id,
+ streamingPlaylistId: fullVideo.getHLSPlaylist()?.id,
publishedAt: fullVideo.publishedAt.toISOString()
}
private async saveEndingSession (videoId: number, error: LiveVideoError | null) {
const liveSession = await VideoLiveSessionModel.findCurrentSessionOf(videoId)
+ if (!liveSession) return
+
liveSession.endDate = new Date()
liveSession.error = error