From b45ed3c05a1e74b9a35d0b30b79e514bf6fb20d0 Mon Sep 17 00:00:00 2001 From: Chocobozzz Date: Mon, 1 Jul 2024 11:15:09 +0200 Subject: [PATCH] Do not run transcription/transcoding on lives --- .../src/app/shared/shared-main/video/video.model.ts | 12 +++++------- .../video-actions-dropdown.component.ts | 8 ++++---- .../middlewares/validators/videos/video-captions.ts | 7 +++++++ .../validators/videos/video-transcoding.ts | 7 +++++++ 4 files changed, 23 insertions(+), 11 deletions(-) diff --git a/client/src/app/shared/shared-main/video/video.model.ts b/client/src/app/shared/shared-main/video/video.model.ts index 3a9572ec2..d46e6989e 100644 --- a/client/src/app/shared/shared-main/video/video.model.ts +++ b/client/src/app/shared/shared-main/video/video.model.ts @@ -244,10 +244,6 @@ export class Video implements VideoServerModel { this.isUpdatableBy(user) } - canGenerateTranscription (user: AuthUser, transcriptionEnabled: boolean) { - return transcriptionEnabled && this.isLocal && user.hasRight(UserRight.UPDATE_ANY_VIDEO) - } - // --------------------------------------------------------------------------- isOwner (user: AuthUser) { @@ -278,13 +274,15 @@ export class Video implements VideoServerModel { } canRunTranscoding (user: AuthUser) { - return this.canRunForcedTranscoding(user) + return this.isLocal && !this.isLive && user?.hasRight(UserRight.RUN_VIDEO_TRANSCODING) } - canRunForcedTranscoding (user: AuthUser) { - return this.isLocal && user?.hasRight(UserRight.RUN_VIDEO_TRANSCODING) + canGenerateTranscription (user: AuthUser, transcriptionEnabled: boolean) { + return transcriptionEnabled && this.isLocal && !this.isLive && user.hasRight(UserRight.UPDATE_ANY_VIDEO) } + // --------------------------------------------------------------------------- + hasHLS () { return this.streamingPlaylists?.some(p => p.type === VideoStreamingPlaylistType.HLS) } diff --git a/client/src/app/shared/shared-video-miniature/video-actions-dropdown.component.ts b/client/src/app/shared/shared-video-miniature/video-actions-dropdown.component.ts index 5fb84a966..342331be3 100644 --- a/client/src/app/shared/shared-video-miniature/video-actions-dropdown.component.ts +++ b/client/src/app/shared/shared-video-miniature/video-actions-dropdown.component.ts @@ -234,8 +234,8 @@ export class VideoActionsDropdownComponent implements OnChanges { return this.video.canRemoveFiles(this.user) } - canRunForcedTranscoding () { - return this.video.canRunForcedTranscoding(this.user) + canRunTranscoding () { + return this.video.canRunTranscoding(this.user) } /* Action handlers */ @@ -462,13 +462,13 @@ export class VideoActionsDropdownComponent implements OnChanges { { label: $localize`Run HLS transcoding`, handler: ({ video }) => this.runTranscoding(video, 'hls'), - isDisplayed: () => this.displayOptions.transcoding && this.canRunForcedTranscoding(), + isDisplayed: () => this.displayOptions.transcoding && this.canRunTranscoding(), iconName: 'cog' }, { label: $localize`Run Web Video transcoding`, handler: ({ video }) => this.runTranscoding(video, 'web-video'), - isDisplayed: () => this.displayOptions.transcoding && this.canRunForcedTranscoding(), + isDisplayed: () => this.displayOptions.transcoding && this.canRunTranscoding(), iconName: 'cog' }, { diff --git a/server/core/middlewares/validators/videos/video-captions.ts b/server/core/middlewares/validators/videos/video-captions.ts index 0f8af2372..062b03fd6 100644 --- a/server/core/middlewares/validators/videos/video-captions.ts +++ b/server/core/middlewares/validators/videos/video-captions.ts @@ -74,6 +74,13 @@ export const generateVideoCaptionValidator = [ }) } + if (video.isLive) { + return res.fail({ + status: HttpStatusCode.BAD_REQUEST_400, + message: 'Cannot run transcription job on a live' + }) + } + // Check if the user who did the request is able to update the video const user = res.locals.oauth.token.User if (!checkUserCanManageVideo(user, video, UserRight.UPDATE_ANY_VIDEO, res)) return diff --git a/server/core/middlewares/validators/videos/video-transcoding.ts b/server/core/middlewares/validators/videos/video-transcoding.ts index 28f057979..19274a48c 100644 --- a/server/core/middlewares/validators/videos/video-transcoding.ts +++ b/server/core/middlewares/validators/videos/video-transcoding.ts @@ -31,6 +31,13 @@ const createTranscodingValidator = [ }) } + if (video.isLive) { + return res.fail({ + status: HttpStatusCode.BAD_REQUEST_400, + message: 'Cannot run transcoding job on a live' + }) + } + if (CONFIG.TRANSCODING.ENABLED !== true) { return res.fail({ status: HttpStatusCode.BAD_REQUEST_400,