]> git.immae.eu Git - github/Chocobozzz/PeerTube.git/blobdiff - server/lib/job-queue/handlers/video-live-ending.ts
Fix broken replay with long live video name
[github/Chocobozzz/PeerTube.git] / server / lib / job-queue / handlers / video-live-ending.ts
index 814f313a3bb8d946905bbbce3fb1ffba571e0d28..49feb53f294383f86f1ddb5e3f87501b0531a070 100644 (file)
@@ -20,6 +20,8 @@ import { MVideo, MVideoLive, MVideoLiveSession, MVideoWithAllFiles } from '@serv
 import { ffprobePromise, getAudioStream, getVideoStreamDimensionsInfo, getVideoStreamFPS } from '@shared/ffmpeg'
 import { ThumbnailType, VideoLiveEndingPayload, VideoState } from '@shared/models'
 import { logger, loggerTagsFactory } from '../../../helpers/logger'
+import { peertubeTruncate } from '@server/helpers/core-utils'
+import { CONSTRAINTS_FIELDS } from '@server/initializers/constants'
 
 const lTags = loggerTagsFactory('live', 'job')
 
@@ -88,8 +90,13 @@ async function saveReplayToExternalVideo (options: {
 
   const replaySettings = await VideoLiveReplaySettingModel.load(liveSession.replaySettingId)
 
+  const videoNameSuffix = ` - ${new Date(publishedAt).toLocaleString()}`
+  const truncatedVideoName = peertubeTruncate(liveVideo.name, {
+    length: CONSTRAINTS_FIELDS.VIDEOS.NAME.max - videoNameSuffix.length
+  })
+
   const replayVideo = new VideoModel({
-    name: `${liveVideo.name} - ${new Date(publishedAt).toLocaleString()}`,
+    name: truncatedVideoName + videoNameSuffix,
     isLive: false,
     state: VideoState.TO_TRANSCODE,
     duration: 0,