Add licence and language support to y-dl imports

This commit is contained in:
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) thumbnailModel = await processThumbnail(req, video)
// Process video thumbnail from url if processing from request.files failed // Process video thumbnail from url if processing from request.files failed
if (!thumbnailModel) { if (!thumbnailModel && youtubeDLInfo.thumbnailUrl) {
thumbnailModel = await processThumbnailFromUrl(youtubeDLInfo.thumbnailUrl, video) thumbnailModel = await processThumbnailFromUrl(youtubeDLInfo.thumbnailUrl, video)
} }
@ -169,7 +169,7 @@ async function addYoutubeDLImport (req: express.Request, res: express.Response)
previewModel = await processPreview(req, video) previewModel = await processPreview(req, video)
// Process video preview from url if processing from request.files failed // Process video preview from url if processing from request.files failed
if (!previewModel) { if (!previewModel && youtubeDLInfo.thumbnailUrl) {
previewModel = await processPreviewFromUrl(youtubeDLInfo.thumbnailUrl, video) previewModel = await processPreviewFromUrl(youtubeDLInfo.thumbnailUrl, video)
} }
@ -236,7 +236,7 @@ function buildVideo (channelId: number, body: VideoImportCreate, importData: You
remote: false, remote: false,
category: body.category || importData.category, category: body.category || importData.category,
licence: body.licence || importData.licence, 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" commentsEnabled: body.commentsEnabled !== false, // If the value is not "false", the default is "true"
downloadEnabled: body.downloadEnabled !== false, downloadEnabled: body.downloadEnabled !== false,
waitTranscoding: body.waitTranscoding || 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 { logger } from './logger'
import { generateVideoImportTmpPath } from './utils' import { generateVideoImportTmpPath } from './utils'
import { join } from 'path' import { join } from 'path'
@ -12,6 +12,7 @@ export type YoutubeDLInfo = {
name?: string name?: string
description?: string description?: string
category?: number category?: number
language?: string
licence?: number licence?: number
nsfw?: boolean nsfw?: boolean
tags?: string[] tags?: string[]
@ -252,12 +253,13 @@ function normalizeObject (obj: any) {
return newObj return newObj
} }
function buildVideoInfo (obj: any) { function buildVideoInfo (obj: any): YoutubeDLInfo {
return { return {
name: titleTruncation(obj.title), name: titleTruncation(obj.title),
description: descriptionTruncation(obj.description), description: descriptionTruncation(obj.description),
category: getCategory(obj.categories), category: getCategory(obj.categories),
licence: getLicence(obj.license), licence: getLicence(obj.license),
language: getLanguage(obj.language),
nsfw: isNSFW(obj), nsfw: isNSFW(obj),
tags: getTags(obj.tags), tags: getTags(obj.tags),
thumbnailUrl: obj.thumbnail || undefined, thumbnailUrl: obj.thumbnail || undefined,
@ -302,6 +304,11 @@ function getLicence (licence: string) {
if (licence.includes('Creative Commons Attribution')) return 1 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
} }
@ -321,6 +328,10 @@ function getCategory (categories: string[]) {
return undefined return undefined
} }
function getLanguage (language: string) {
return VIDEO_LANGUAGES[language] ? language : undefined
}
function wrapWithProxyOptions (options: string[]) { function wrapWithProxyOptions (options: string[]) {
if (CONFIG.IMPORT.VIDEOS.HTTP.PROXY.ENABLED) { if (CONFIG.IMPORT.VIDEOS.HTTP.PROXY.ENABLED) {
logger.debug('Using proxy for YoutubeDL') logger.debug('Using proxy for YoutubeDL')