+
+ if (video.state === VideoState.TO_MOVE_TO_EXTERNAL_STORAGE) {
+ await JobQueue.Instance.createJob(
+ await buildMoveToObjectStorageJob({ video, previousVideoState: VideoState.TO_IMPORT })
+ )
+ return
+ }
+
+ if (video.state === VideoState.TO_TRANSCODE) { // Create transcoding jobs?
+ await createOptimizeOrMergeAudioJobs({ video, videoFile, isNewVideo: true, user })
+ }
+}
+
+async function onImportError (err: Error, tempVideoPath: string, videoImport: MVideoImportVideo) {
+ try {
+ if (tempVideoPath) await remove(tempVideoPath)
+ } catch (errUnlink) {
+ logger.warn('Cannot cleanup files after a video import error.', { err: errUnlink })
+ }
+
+ videoImport.error = err.message
+ if (videoImport.state !== VideoImportState.REJECTED) {
+ videoImport.state = VideoImportState.FAILED
+ }
+ await videoImport.save()
+
+ Notifier.Instance.notifyOnFinishedVideoImport({ videoImport, success: false })