From 708be9e13a959dceecc85e60dc6a4724e0cefe20 Mon Sep 17 00:00:00 2001 From: Florent Date: Tue, 11 Jan 2022 19:57:09 +0100 Subject: [PATCH] Add patch for add python path in config file --- conf/production.yaml | 4 ++- scripts/install | 5 ++-- scripts/upgrade | 3 ++- .../patches-4.0.0/app-python-in-config.patch | 26 +++++++++++++++++++ 4 files changed, 34 insertions(+), 4 deletions(-) create mode 100644 sources/patches-4.0.0/app-python-in-config.patch diff --git a/conf/production.yaml b/conf/production.yaml index 5a7aa27..275c91f 100644 --- a/conf/production.yaml +++ b/conf/production.yaml @@ -433,7 +433,9 @@ import: # youtube-dl binary name # yt-dlp is also supported - name: 'youtube-dl' + name: 'yt-dlp' + # Path to the python binary to execute for youtube-dl or yt-dlp + python_path: '/usr/bin/python3' # IPv6 is very strongly rate-limited on most sites supported by youtube-dl force_ipv4: false diff --git a/scripts/install b/scripts/install index 873cf48..0bd23d1 100644 --- a/scripts/install +++ b/scripts/install @@ -70,7 +70,7 @@ ynh_app_setting_set --app=$app --key=port --value=$port # PeerTube Live port rtmp_port=1935 -ynh_port_available --port=$rtmp_port || ynh_die "Port $rtmp_port is needs to be available for this app" +ynh_port_available --port=$rtmp_port || ynh_die --message="Port $rtmp_port is needs to be available for this app" ynh_app_setting_set --app=$app --key=rtmp_port --value=$rtmp_port # Open the port @@ -130,6 +130,7 @@ ynh_script_progression --message="Setting up source files..." ynh_app_setting_set --app=$app --key=final_path --value=$final_path # Download, check integrity, uncompress and patch the source from app.src +[ -d "../sources/patches-$(ynh_app_upstream_version)" ] && cp -a "../sources/patches-$(ynh_app_upstream_version)" "../sources/patches" ynh_setup_source --dest_dir="$final_path" chmod 750 "$final_path" @@ -164,7 +165,7 @@ ynh_script_progression --message="Building Yarn dependencies..." pushd "$final_path" ynh_use_nodejs - ynh_exec_warn_less sudo -u $app env $ynh_node_load_PATH yarn install --production --pure-lockfile + ynh_exec_warn_less sudo -u $app env $ynh_node_load_PATH yarn install --production --pure-lockfile popd #================================================= diff --git a/scripts/upgrade b/scripts/upgrade index 2fd4bfd..6c956f8 100644 --- a/scripts/upgrade +++ b/scripts/upgrade @@ -119,7 +119,7 @@ ynh_delete_file_checksum --file="../conf/msg_install" if [ -z "$rtmp_port" ]; then rtmp_port=1935 - ynh_port_available --port=$rtmp_port || ynh_die "Port $rtmp_port is needs to be available for this app" + ynh_port_available --port=$rtmp_port || ynh_die --message="Port $rtmp_port is needs to be available for this app" ynh_app_setting_set --app=$app --key=rtmp_port --value=$rtmp_port # Open the port @@ -169,6 +169,7 @@ then ynh_secure_remove --file="$final_path" # Download, check integrity, uncompress and patch the source from app.src + [ -d "../sources/patches-$(ynh_app_upstream_version)" ] && cp -a "../sources/patches-$(ynh_app_upstream_version)" "../sources/patches" ynh_setup_source --dest_dir="$final_path" #Copy the admin saved settings from tmp directory to final path diff --git a/sources/patches-4.0.0/app-python-in-config.patch b/sources/patches-4.0.0/app-python-in-config.patch new file mode 100644 index 0000000..6a2633c --- /dev/null +++ b/sources/patches-4.0.0/app-python-in-config.patch @@ -0,0 +1,26 @@ +diff '--color=auto' -ru ./dist/server/helpers/youtube-dl/youtube-dl-cli.js ./dist/server/helpers/youtube-dl/youtube-dl-cli.js +--- ./dist/server/helpers/youtube-dl/youtube-dl-cli.js 2021-12-13 09:22:44.000000000 +0100 ++++ ./dist/server/helpers/youtube-dl/youtube-dl-cli.js 2022-01-11 22:35:52.992330841 +0100 +@@ -104,7 +104,8 @@ + let completeArgs = this.wrapWithProxyOptions(args); + completeArgs = this.wrapWithIPOptions(completeArgs); + completeArgs = this.wrapWithFFmpegOptions(completeArgs); +- const output = yield (0, execa_1.default)('python', [youtubeDLBinaryPath, ...completeArgs, url], processOptions); ++ const { PYTHON_PATH } = config_1.CONFIG.IMPORT.VIDEOS.HTTP.YOUTUBE_DL_RELEASE; ++ const output = yield (0, execa_1.default)(PYTHON_PATH, [youtubeDLBinaryPath, ...completeArgs, url], processOptions); + logger_1.logger.debug('Runned youtube-dl command.', Object.assign({ command: output.command }, lTags())); + return output.stdout + ? output.stdout.trim().split(/\r?\n/) +diff '--color=auto' -ru ./dist/server/initializers/config.js ./dist/server/initializers/config.js +--- ./dist/server/initializers/config.js 2021-12-13 09:22:43.000000000 +0100 ++++ ./dist/server/initializers/config.js 2022-01-11 22:35:51.812344562 +0100 +@@ -295,7 +295,8 @@ + get ENABLED() { return config.get('import.videos.http.enabled'); }, + YOUTUBE_DL_RELEASE: { + get URL() { return config.get('import.videos.http.youtube_dl_release.url'); }, +- get NAME() { return config.get('import.videos.http.youtube_dl_release.name'); } ++ get NAME() { return config.get('import.videos.http.youtube_dl_release.name'); }, ++ get PYTHON_PATH() { return config.get('import.videos.http.youtube_dl_release.python_path'); } + }, + get FORCE_IPV4() { return config.get('import.videos.http.force_ipv4'); } + },