Add licence and language support to y-dl imports

pull/2669/head
Chocobozzz 2020-04-20 10:38:33 +02:00
parent b1770a0af4
commit 86ad0cde9e
No known key found for this signature in database
GPG Key ID: 583A612D890159BE
2 changed files with 16 additions and 5 deletions

View File

@ -159,7 +159,7 @@ async function addYoutubeDLImport (req: express.Request, res: express.Response)
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)
}
@ -169,7 +169,7 @@ async function addYoutubeDLImport (req: express.Request, res: express.Response)
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)
}
@ -236,7 +236,7 @@ function buildVideo (channelId: number, body: VideoImportCreate, importData: You
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,

View File

@ -1,4 +1,4 @@
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'
@ -12,6 +12,7 @@ export type YoutubeDLInfo = {
name?: string
description?: string
category?: number
language?: string
licence?: number
nsfw?: boolean
tags?: string[]
@ -252,12 +253,13 @@ function normalizeObject (obj: any) {
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,
@ -302,6 +304,11 @@ function getLicence (licence: string) {
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
}
@ -321,6 +328,10 @@ function getCategory (categories: string[]) {
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')