aboutsummaryrefslogtreecommitdiffhomepage
path: root/server
diff options
context:
space:
mode:
authorChocobozzz <me@florianbigard.com>2023-06-29 08:57:19 +0200
committerChocobozzz <me@florianbigard.com>2023-06-29 09:08:13 +0200
commitae22c59f14d0d553f60b281948b6c232c2aca178 (patch)
tree4d3b38ebcf7ff27966233b381e980a34112e943e /server
parentba278fa51dc578835c7fcb3a6eca4cd8cd86c755 (diff)
downloadPeerTube-ae22c59f14d0d553f60b281948b6c232c2aca178.tar.gz
PeerTube-ae22c59f14d0d553f60b281948b6c232c2aca178.tar.zst
PeerTube-ae22c59f14d0d553f60b281948b6c232c2aca178.zip
Fix broken replay with long live video name
Diffstat (limited to 'server')
-rw-r--r--server/lib/job-queue/handlers/video-live-ending.ts9
-rw-r--r--server/tests/api/live/live-save-replay.ts2
2 files changed, 9 insertions, 2 deletions
diff --git a/server/lib/job-queue/handlers/video-live-ending.ts b/server/lib/job-queue/handlers/video-live-ending.ts
index 814f313a3..49feb53f2 100644
--- a/server/lib/job-queue/handlers/video-live-ending.ts
+++ b/server/lib/job-queue/handlers/video-live-ending.ts
@@ -20,6 +20,8 @@ import { MVideo, MVideoLive, MVideoLiveSession, MVideoWithAllFiles } from '@serv
20import { ffprobePromise, getAudioStream, getVideoStreamDimensionsInfo, getVideoStreamFPS } from '@shared/ffmpeg' 20import { ffprobePromise, getAudioStream, getVideoStreamDimensionsInfo, getVideoStreamFPS } from '@shared/ffmpeg'
21import { ThumbnailType, VideoLiveEndingPayload, VideoState } from '@shared/models' 21import { ThumbnailType, VideoLiveEndingPayload, VideoState } from '@shared/models'
22import { logger, loggerTagsFactory } from '../../../helpers/logger' 22import { logger, loggerTagsFactory } from '../../../helpers/logger'
23import { peertubeTruncate } from '@server/helpers/core-utils'
24import { CONSTRAINTS_FIELDS } from '@server/initializers/constants'
23 25
24const lTags = loggerTagsFactory('live', 'job') 26const lTags = loggerTagsFactory('live', 'job')
25 27
@@ -88,8 +90,13 @@ async function saveReplayToExternalVideo (options: {
88 90
89 const replaySettings = await VideoLiveReplaySettingModel.load(liveSession.replaySettingId) 91 const replaySettings = await VideoLiveReplaySettingModel.load(liveSession.replaySettingId)
90 92
93 const videoNameSuffix = ` - ${new Date(publishedAt).toLocaleString()}`
94 const truncatedVideoName = peertubeTruncate(liveVideo.name, {
95 length: CONSTRAINTS_FIELDS.VIDEOS.NAME.max - videoNameSuffix.length
96 })
97
91 const replayVideo = new VideoModel({ 98 const replayVideo = new VideoModel({
92 name: `${liveVideo.name} - ${new Date(publishedAt).toLocaleString()}`, 99 name: truncatedVideoName + videoNameSuffix,
93 isLive: false, 100 isLive: false,
94 state: VideoState.TO_TRANSCODE, 101 state: VideoState.TO_TRANSCODE,
95 duration: 0, 102 duration: 0,
diff --git a/server/tests/api/live/live-save-replay.ts b/server/tests/api/live/live-save-replay.ts
index 8985c9b39..d554cf208 100644
--- a/server/tests/api/live/live-save-replay.ts
+++ b/server/tests/api/live/live-save-replay.ts
@@ -38,7 +38,7 @@ describe('Save replay setting', function () {
38 const attributes: LiveVideoCreate = { 38 const attributes: LiveVideoCreate = {
39 channelId: servers[0].store.channel.id, 39 channelId: servers[0].store.channel.id,
40 privacy: VideoPrivacy.PUBLIC, 40 privacy: VideoPrivacy.PUBLIC,
41 name: 'my super live', 41 name: 'live'.repeat(30),
42 saveReplay: options.replay, 42 saveReplay: options.replay,
43 replaySettings: options.replaySettings, 43 replaySettings: options.replaySettings,
44 permanentLive: options.permanent 44 permanentLive: options.permanent