import * as Bull from 'bull'
import { move, remove, stat } from 'fs-extra'
-import { extname } from 'path'
+import { getLowercaseExtension } from '@server/helpers/core-utils'
import { retryTransactionWrapper } from '@server/helpers/database-utils'
+import { YoutubeDL } from '@server/helpers/youtube-dl'
import { isPostImportVideoAccepted } from '@server/lib/moderation'
import { Hooks } from '@server/lib/plugins/hooks'
+import { ServerConfigManager } from '@server/lib/server-config-manager'
import { isAbleToUploadVideo } from '@server/lib/user'
import { addOptimizeOrMergeAudioJob } from '@server/lib/video'
-import { generateVideoFilename, getVideoFilePath } from '@server/lib/video-paths'
+import { generateWebTorrentVideoFilename, getVideoFilePath } from '@server/lib/video-paths'
import { ThumbnailModel } from '@server/models/video/thumbnail'
import { MVideoImportDefault, MVideoImportDefaultFiles, MVideoImportVideo } from '@server/types/models/video/video-import'
import {
import { federateVideoIfNeeded } from '../../activitypub/videos'
import { Notifier } from '../../notifier'
import { generateVideoMiniature } from '../../thumbnail'
-import { YoutubeDL } from '@server/helpers/youtube-dl'
-import { getEnabledResolutions } from '@server/lib/config'
async function processVideoImport (job: Bull.Job) {
const payload = job.data as VideoImportPayload
videoImportId: videoImport.id
}
- const youtubeDL = new YoutubeDL(videoImport.targetUrl, getEnabledResolutions('vod'))
+ const youtubeDL = new YoutubeDL(videoImport.targetUrl, ServerConfigManager.Instance.getEnabledResolutions('vod'))
return processFile(
() => youtubeDL.downloadYoutubeDLVideo(payload.fileExt, VIDEO_IMPORT_TIMEOUT),
const duration = await getDurationFromVideoFile(tempVideoPath)
// Prepare video file object for creation in database
- const fileExt = extname(tempVideoPath)
+ const fileExt = getLowercaseExtension(tempVideoPath)
const videoFileData = {
extname: fileExt,
resolution: videoFileResolution,
size: stats.size,
- filename: generateVideoFilename(videoImport.Video, false, videoFileResolution, fileExt),
+ filename: generateWebTorrentVideoFilename(videoFileResolution, fileExt),
fps,
videoId: videoImport.videoId
}
})
})
- Notifier.Instance.notifyOnFinishedVideoImport(videoImportUpdated, true)
+ Notifier.Instance.notifyOnFinishedVideoImport({ videoImport: videoImportUpdated, success: true })
if (video.isBlacklisted()) {
const videoBlacklist = Object.assign(video.VideoBlacklist, { Video: video })
}
await videoImport.save()
- Notifier.Instance.notifyOnFinishedVideoImport(videoImport, false)
+ Notifier.Instance.notifyOnFinishedVideoImport({ videoImport, success: false })
throw err
}