diff --git a/backend/app.js b/backend/app.js index d41c782..2a98860 100644 --- a/backend/app.js +++ b/backend/app.js @@ -585,6 +585,7 @@ app.post('/api/tomp3', function(req, res) { var customQualityConfiguration = req.body.customQualityConfiguration; var maxBitrate = req.body.maxBitrate; + var globalArgs = config_api.getConfigItem('ytdl_custom_args'); var customArgs = req.body.customArgs; var customOutput = req.body.customOutput; var youtubeUsername = req.body.youtubeUsername; @@ -621,6 +622,11 @@ app.post('/api/tomp3', function(req, res) { if (!useDefaultDownloadingAgent && customDownloadingAgent === 'aria2c') { downloadConfig.splice(0, 0, '--external-downloader', 'aria2c'); } + + if (globalArgs && globalArgs !== '') { + // adds global args + downloadConfig = downloadConfig.concat(globalArgs.split(' ')); + } } youtubedl.exec(url, downloadConfig, {}, function(err, output) { @@ -671,6 +677,7 @@ app.post('/api/tomp4', function(req, res) { var date = Date.now(); var path = videoFolderPath; var videopath = '%(title)s'; + var globalArgs = config_api.getConfigItem('ytdl_custom_args'); var customArgs = req.body.customArgs; var customOutput = req.body.customOutput; @@ -704,6 +711,11 @@ app.post('/api/tomp4', function(req, res) { if (!useDefaultDownloadingAgent && customDownloadingAgent === 'aria2c') { downloadConfig.splice(0, 0, '--external-downloader', 'aria2c'); } + + if (globalArgs && globalArgs !== '') { + // adds global args + downloadConfig = downloadConfig.concat(globalArgs.split(' ')); + } } youtubedl.exec(url, downloadConfig, {}, function(err, output) { diff --git a/backend/config.js b/backend/config.js index 04ef5ca..f61d321 100644 --- a/backend/config.js +++ b/backend/config.js @@ -1,8 +1,9 @@ const fs = require('fs'); let CONFIG_ITEMS = require('./consts.js')['CONFIG_ITEMS']; +const debugMode = process.env.YTDL_MODE === 'debug'; -let configPath = 'config/default.json'; +let configPath = debugMode ? '../src/assets/default.json' : 'config/default.json'; // https://stackoverflow.com/questions/6491463/accessing-nested-javascript-objects-with-string-key Object.byString = function(o, s) { diff --git a/src/app/main/main.component.ts b/src/app/main/main.component.ts index 41c33f4..bc7b2be 100644 --- a/src/app/main/main.component.ts +++ b/src/app/main/main.component.ts @@ -801,8 +801,9 @@ export class MainComponent implements OnInit { getSimulatedOutput() { const customArgsExists = this.customArgsEnabled && this.customArgs; + const globalArgsExists = this.globalCustomArgs && this.globalCustomArgs !== ''; - const full_string_array: string[] = []; + let full_string_array: string[] = []; const base_string_array = ['youtube-dl', this.url]; if (customArgsExists) { @@ -861,6 +862,10 @@ export class MainComponent implements OnInit { full_string_array.push(...additional_params); } + if (globalArgsExists) { + full_string_array = full_string_array.concat(this.globalCustomArgs.split(' ')); + } + this.simulatedOutput = full_string_array.join(' '); return this.simulatedOutput; } diff --git a/src/app/settings/settings.component.html b/src/app/settings/settings.component.html index 17ea080..6594c44 100644 --- a/src/app/settings/settings.component.html +++ b/src/app/settings/settings.component.html @@ -211,7 +211,7 @@
- +