1234567891011121314151617181920212223242526 |
- import { moveAndProcessCaptionFile } from '@server/helpers/captions-utils.js'
- import { sequelizeTypescript } from '@server/initializers/database.js'
- import { VideoCaptionModel } from '@server/models/video/video-caption.js'
- import { MVideo, MVideoCaption } from '@server/types/models/index.js'
- export async function createLocalCaption (options: {
- video: MVideo
- path: string
- language: string
- }) {
- const { language, path, video } = options
- const videoCaption = new VideoCaptionModel({
- videoId: video.id,
- filename: VideoCaptionModel.generateCaptionName(language),
- language
- }) as MVideoCaption
- await moveAndProcessCaptionFile({ path }, videoCaption)
- await sequelizeTypescript.transaction(async t => {
- await VideoCaptionModel.insertOrReplaceLanguage(videoCaption, t)
- })
- return videoCaption
- }
|