aboutsummaryrefslogtreecommitdiffhomepage
path: root/server/lib/job-queue/handlers/video-live-ending.ts
diff options
context:
space:
mode:
authorChocobozzz <me@florianbigard.com>2020-11-30 17:03:13 +0100
committerChocobozzz <me@florianbigard.com>2020-11-30 17:03:13 +0100
commit8c666c44ab3109ce2ad432bf2f98cc0505593543 (patch)
tree1dad1c4e56d22e1bccdde67998f8322255117050 /server/lib/job-queue/handlers/video-live-ending.ts
parenta742b4b0e215f49928f7389d09de1023414fbeff (diff)
downloadPeerTube-8c666c44ab3109ce2ad432bf2f98cc0505593543.tar.gz
PeerTube-8c666c44ab3109ce2ad432bf2f98cc0505593543.tar.zst
PeerTube-8c666c44ab3109ce2ad432bf2f98cc0505593543.zip
Fix live saving after a server restart
Diffstat (limited to 'server/lib/job-queue/handlers/video-live-ending.ts')
-rw-r--r--server/lib/job-queue/handlers/video-live-ending.ts13
1 files changed, 7 insertions, 6 deletions
diff --git a/server/lib/job-queue/handlers/video-live-ending.ts b/server/lib/job-queue/handlers/video-live-ending.ts
index 0d2bcaa28..6e1076d8f 100644
--- a/server/lib/job-queue/handlers/video-live-ending.ts
+++ b/server/lib/job-queue/handlers/video-live-ending.ts
@@ -1,8 +1,9 @@
1import * as Bull from 'bull' 1import * as Bull from 'bull'
2import { move, readdir, remove } from 'fs-extra' 2import { copy, readdir, remove } from 'fs-extra'
3import { join } from 'path' 3import { join } from 'path'
4import { hlsPlaylistToFragmentedMP4 } from '@server/helpers/ffmpeg-utils' 4import { hlsPlaylistToFragmentedMP4 } from '@server/helpers/ffmpeg-utils'
5import { getDurationFromVideoFile, getVideoFileResolution } from '@server/helpers/ffprobe-utils' 5import { getDurationFromVideoFile, getVideoFileResolution } from '@server/helpers/ffprobe-utils'
6import { VIDEO_LIVE } from '@server/initializers/constants'
6import { generateVideoMiniature } from '@server/lib/thumbnail' 7import { generateVideoMiniature } from '@server/lib/thumbnail'
7import { publishAndFederateIfNeeded } from '@server/lib/video' 8import { publishAndFederateIfNeeded } from '@server/lib/video'
8import { getHLSDirectory } from '@server/lib/video-paths' 9import { getHLSDirectory } from '@server/lib/video-paths'
@@ -14,7 +15,6 @@ import { VideoStreamingPlaylistModel } from '@server/models/video/video-streamin
14import { MStreamingPlaylist, MVideo, MVideoLive } from '@server/types/models' 15import { MStreamingPlaylist, MVideo, MVideoLive } from '@server/types/models'
15import { ThumbnailType, VideoLiveEndingPayload, VideoState } from '@shared/models' 16import { ThumbnailType, VideoLiveEndingPayload, VideoState } from '@shared/models'
16import { logger } from '../../../helpers/logger' 17import { logger } from '../../../helpers/logger'
17import { VIDEO_LIVE } from '@server/initializers/constants'
18 18
19async function processVideoLiveEnding (job: Bull.Job) { 19async function processVideoLiveEnding (job: Bull.Job) {
20 const payload = job.data as VideoLiveEndingPayload 20 const payload = job.data as VideoLiveEndingPayload
@@ -61,11 +61,12 @@ async function saveLive (video: MVideo, live: MVideoLive) {
61 const playlistFiles: string[] = [] 61 const playlistFiles: string[] = []
62 62
63 for (const file of rootFiles) { 63 for (const file of rootFiles) {
64 if (file.endsWith('.m3u8') !== true) continue 64 // Move remaining files in the replay directory
65 65 if (file.endsWith('.ts') || file.endsWith('.m3u8')) {
66 await move(join(hlsDirectory, file), join(replayDirectory, file)) 66 await copy(join(hlsDirectory, file), join(replayDirectory, file))
67 }
67 68
68 if (file !== 'master.m3u8') { 69 if (file.endsWith('.m3u8') && file !== 'master.m3u8') {
69 playlistFiles.push(file) 70 playlistFiles.push(file)
70 } 71 }
71 } 72 }