From 1bcb03a100d172903b877d6a0e4ed11d63b14f3d Mon Sep 17 00:00:00 2001 From: Chocobozzz Date: Tue, 11 May 2021 10:54:05 +0200 Subject: Use a class for youtube-dl --- server/lib/config.ts | 12 +++++++++++- server/lib/job-queue/handlers/video-import.ts | 7 +++++-- server/lib/schedulers/youtube-dl-update-scheduler.ts | 6 +++--- server/lib/video-transcoding.ts | 13 +------------ 4 files changed, 20 insertions(+), 18 deletions(-) (limited to 'server/lib') diff --git a/server/lib/config.ts b/server/lib/config.ts index b4c4c9299..eb4510680 100644 --- a/server/lib/config.ts +++ b/server/lib/config.ts @@ -6,7 +6,6 @@ import { RegisteredExternalAuthConfig, RegisteredIdAndPassAuthConfig, ServerConf import { Hooks } from './plugins/hooks' import { PluginManager } from './plugins/plugin-manager' import { getThemeOrDefault } from './plugins/theme-utils' -import { getEnabledResolutions } from './video-transcoding' import { VideoTranscodingProfilesManager } from './video-transcoding-profiles' let serverCommit: string @@ -208,11 +207,22 @@ function getRegisteredPlugins () { })) } +function getEnabledResolutions (type: 'vod' | 'live') { + const transcoding = type === 'vod' + ? CONFIG.TRANSCODING + : CONFIG.LIVE.TRANSCODING + + return Object.keys(transcoding.RESOLUTIONS) + .filter(key => transcoding.ENABLED && transcoding.RESOLUTIONS[key] === true) + .map(r => parseInt(r, 10)) +} + // --------------------------------------------------------------------------- export { getServerConfig, getRegisteredThemes, + getEnabledResolutions, getRegisteredPlugins } diff --git a/server/lib/job-queue/handlers/video-import.ts b/server/lib/job-queue/handlers/video-import.ts index ed2c5eac0..3067ce214 100644 --- a/server/lib/job-queue/handlers/video-import.ts +++ b/server/lib/job-queue/handlers/video-import.ts @@ -23,7 +23,6 @@ import { getDurationFromVideoFile, getVideoFileFPS, getVideoFileResolution } fro import { logger } from '../../../helpers/logger' import { getSecureTorrentName } from '../../../helpers/utils' import { createTorrentAndSetInfoHash, downloadWebTorrentVideo } from '../../../helpers/webtorrent' -import { downloadYoutubeDLVideo } from '../../../helpers/youtube-dl' import { CONFIG } from '../../../initializers/config' import { VIDEO_IMPORT_TIMEOUT } from '../../../initializers/constants' import { sequelizeTypescript } from '../../../initializers/database' @@ -34,6 +33,8 @@ import { MThumbnail } from '../../../types/models/video/thumbnail' 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 @@ -75,8 +76,10 @@ async function processYoutubeDLImport (job: Bull.Job, payload: VideoImportYoutub videoImportId: videoImport.id } + const youtubeDL = new YoutubeDL(videoImport.targetUrl, getEnabledResolutions('vod')) + return processFile( - () => downloadYoutubeDLVideo(videoImport.targetUrl, payload.fileExt, VIDEO_IMPORT_TIMEOUT), + () => youtubeDL.downloadYoutubeDLVideo(payload.fileExt, VIDEO_IMPORT_TIMEOUT), videoImport, options ) diff --git a/server/lib/schedulers/youtube-dl-update-scheduler.ts b/server/lib/schedulers/youtube-dl-update-scheduler.ts index aefe6aba4..898691c13 100644 --- a/server/lib/schedulers/youtube-dl-update-scheduler.ts +++ b/server/lib/schedulers/youtube-dl-update-scheduler.ts @@ -1,6 +1,6 @@ -import { AbstractScheduler } from './abstract-scheduler' +import { YoutubeDL } from '@server/helpers/youtube-dl' import { SCHEDULER_INTERVALS_MS } from '../../initializers/constants' -import { updateYoutubeDLBinary } from '../../helpers/youtube-dl' +import { AbstractScheduler } from './abstract-scheduler' export class YoutubeDlUpdateScheduler extends AbstractScheduler { @@ -13,7 +13,7 @@ export class YoutubeDlUpdateScheduler extends AbstractScheduler { } protected internalExecute () { - return updateYoutubeDLBinary() + return YoutubeDL.updateYoutubeDLBinary() } static get Instance () { diff --git a/server/lib/video-transcoding.ts b/server/lib/video-transcoding.ts index c949dca2e..51949f51a 100644 --- a/server/lib/video-transcoding.ts +++ b/server/lib/video-transcoding.ts @@ -215,16 +215,6 @@ function generateHlsPlaylistResolution (options: { }) } -function getEnabledResolutions (type: 'vod' | 'live') { - const transcoding = type === 'vod' - ? CONFIG.TRANSCODING - : CONFIG.LIVE.TRANSCODING - - return Object.keys(transcoding.RESOLUTIONS) - .filter(key => transcoding.ENABLED && transcoding.RESOLUTIONS[key] === true) - .map(r => parseInt(r, 10)) -} - // --------------------------------------------------------------------------- export { @@ -232,8 +222,7 @@ export { generateHlsPlaylistResolutionFromTS, optimizeOriginalVideofile, transcodeNewWebTorrentResolution, - mergeAudioVideofile, - getEnabledResolutions + mergeAudioVideofile } // --------------------------------------------------------------------------- -- cgit v1.2.3