From ae22c59f14d0d553f60b281948b6c232c2aca178 Mon Sep 17 00:00:00 2001 From: Chocobozzz Date: Thu, 29 Jun 2023 08:57:19 +0200 Subject: Fix broken replay with long live video name --- server/lib/job-queue/handlers/video-live-ending.ts | 9 ++++++++- server/tests/api/live/live-save-replay.ts | 2 +- 2 files changed, 9 insertions(+), 2 deletions(-) (limited to 'server') 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 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, 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 () { const attributes: LiveVideoCreate = { channelId: servers[0].store.channel.id, privacy: VideoPrivacy.PUBLIC, - name: 'my super live', + name: 'live'.repeat(30), saveReplay: options.replay, replaySettings: options.replaySettings, permanentLive: options.permanent -- cgit v1.2.3