Fix broken replay with long live video name
This commit is contained in:
parent
ba278fa51d
commit
ae22c59f14
|
@ -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,
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -1,4 +1,5 @@
|
|||
import ffmpeg, { FfmpegCommand } from 'fluent-ffmpeg'
|
||||
import { truncate } from 'lodash'
|
||||
import { buildAbsoluteFixturePath, wait } from '@shared/core-utils'
|
||||
import { VideoDetails, VideoInclude, VideoPrivacy } from '@shared/models'
|
||||
import { PeerTubeServer } from '../server/server'
|
||||
|
@ -104,7 +105,13 @@ async function findExternalSavedVideo (server: PeerTubeServer, liveDetails: Vide
|
|||
|
||||
const { data } = await server.videos.list({ token: server.accessToken, sort: '-publishedAt', include, privacyOneOf })
|
||||
|
||||
return data.find(v => v.name === liveDetails.name + ' - ' + new Date(liveDetails.publishedAt).toLocaleString())
|
||||
const videoNameSuffix = ` - ${new Date(liveDetails.publishedAt).toLocaleString()}`
|
||||
const truncatedVideoName = truncate(liveDetails.name, {
|
||||
length: 120 - videoNameSuffix.length
|
||||
})
|
||||
const toFind = truncatedVideoName + videoNameSuffix
|
||||
|
||||
return data.find(v => v.name === toFind)
|
||||
}
|
||||
|
||||
export {
|
||||
|
|
Loading…
Reference in New Issue