diff options
author | Chocobozzz <me@florianbigard.com> | 2023-06-29 08:57:19 +0200 |
---|---|---|
committer | Chocobozzz <me@florianbigard.com> | 2023-06-29 09:08:13 +0200 |
commit | ae22c59f14d0d553f60b281948b6c232c2aca178 (patch) | |
tree | 4d3b38ebcf7ff27966233b381e980a34112e943e /server | |
parent | ba278fa51dc578835c7fcb3a6eca4cd8cd86c755 (diff) | |
download | PeerTube-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.ts | 9 | ||||
-rw-r--r-- | server/tests/api/live/live-save-replay.ts | 2 |
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 | |||
20 | import { ffprobePromise, getAudioStream, getVideoStreamDimensionsInfo, getVideoStreamFPS } from '@shared/ffmpeg' | 20 | import { ffprobePromise, getAudioStream, getVideoStreamDimensionsInfo, getVideoStreamFPS } from '@shared/ffmpeg' |
21 | import { ThumbnailType, VideoLiveEndingPayload, VideoState } from '@shared/models' | 21 | import { ThumbnailType, VideoLiveEndingPayload, VideoState } from '@shared/models' |
22 | import { logger, loggerTagsFactory } from '../../../helpers/logger' | 22 | import { logger, loggerTagsFactory } from '../../../helpers/logger' |
23 | import { peertubeTruncate } from '@server/helpers/core-utils' | ||
24 | import { CONSTRAINTS_FIELDS } from '@server/initializers/constants' | ||
23 | 25 | ||
24 | const lTags = loggerTagsFactory('live', 'job') | 26 | const 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 |