thumbnailModel = await processThumbnail(req, video)
// Process video thumbnail from url if processing from request.files failed
- if (!thumbnailModel) {
+ if (!thumbnailModel && youtubeDLInfo.thumbnailUrl) {
thumbnailModel = await processThumbnailFromUrl(youtubeDLInfo.thumbnailUrl, video)
}
previewModel = await processPreview(req, video)
// Process video preview from url if processing from request.files failed
- if (!previewModel) {
+ if (!previewModel && youtubeDLInfo.thumbnailUrl) {
previewModel = await processPreviewFromUrl(youtubeDLInfo.thumbnailUrl, video)
}
remote: false,
category: body.category || importData.category,
licence: body.licence || importData.licence,
- language: body.language || undefined,
+ language: body.language || importData.language,
commentsEnabled: body.commentsEnabled !== false, // If the value is not "false", the default is "true"
downloadEnabled: body.downloadEnabled !== false,
waitTranscoding: body.waitTranscoding || false,
-import { CONSTRAINTS_FIELDS, VIDEO_CATEGORIES } from '../initializers/constants'
+import { CONSTRAINTS_FIELDS, VIDEO_CATEGORIES, VIDEO_LANGUAGES, VIDEO_LICENCES } from '../initializers/constants'
import { logger } from './logger'
import { generateVideoImportTmpPath } from './utils'
import { join } from 'path'
name?: string
description?: string
category?: number
+ language?: string
licence?: number
nsfw?: boolean
tags?: string[]
return newObj
}
-function buildVideoInfo (obj: any) {
+function buildVideoInfo (obj: any): YoutubeDLInfo {
return {
name: titleTruncation(obj.title),
description: descriptionTruncation(obj.description),
category: getCategory(obj.categories),
licence: getLicence(obj.license),
+ language: getLanguage(obj.language),
nsfw: isNSFW(obj),
tags: getTags(obj.tags),
thumbnailUrl: obj.thumbnail || undefined,
if (licence.includes('Creative Commons Attribution')) return 1
+ for (const key of Object.keys(VIDEO_LICENCES)) {
+ const peertubeLicence = VIDEO_LICENCES[key]
+ if (peertubeLicence.toLowerCase() === licence.toLowerCase()) return parseInt(key, 10)
+ }
+
return undefined
}
return undefined
}
+function getLanguage (language: string) {
+ return VIDEO_LANGUAGES[language] ? language : undefined
+}
+
function wrapWithProxyOptions (options: string[]) {
if (CONFIG.IMPORT.VIDEOS.HTTP.PROXY.ENABLED) {
logger.debug('Using proxy for YoutubeDL')