From 6f00ce812061318cdd50d8808332a971d8bbf201 Mon Sep 17 00:00:00 2001 From: tcely Date: Thu, 16 Jan 2025 03:01:10 -0500 Subject: [PATCH 1/6] Create upgrade_yt-dlp.sh --- tubesync/upgrade_yt-dlp.sh | 11 +++++++++++ 1 file changed, 11 insertions(+) create mode 100644 tubesync/upgrade_yt-dlp.sh diff --git a/tubesync/upgrade_yt-dlp.sh b/tubesync/upgrade_yt-dlp.sh new file mode 100644 index 00000000..e4fdd171 --- /dev/null +++ b/tubesync/upgrade_yt-dlp.sh @@ -0,0 +1,11 @@ +#!/usr/bin/env bash + +pip3() { + local pip_whl + pip_whl="$(ls -1r /usr/share/python-wheels/pip-*-py3-none-any.whl | head -n 1)" + + python3 "${pip_whl}/pip" "$@" +} + +pip3 install --upgrade --break-system-packages yt-dlp + From d7f9fa45ecb2d94fe48ea2778538fea2a961ca83 Mon Sep 17 00:00:00 2001 From: tcely Date: Thu, 16 Jan 2025 08:16:31 +0000 Subject: [PATCH 2/6] Add executable to sh script --- tubesync/upgrade_yt-dlp.sh | 0 1 file changed, 0 insertions(+), 0 deletions(-) mode change 100644 => 100755 tubesync/upgrade_yt-dlp.sh diff --git a/tubesync/upgrade_yt-dlp.sh b/tubesync/upgrade_yt-dlp.sh old mode 100644 new mode 100755 From 4e51d54ec122dc10550be77618250276e6a7b4b2 Mon Sep 17 00:00:00 2001 From: tcely Date: Thu, 16 Jan 2025 08:24:11 -0500 Subject: [PATCH 3/6] Use pip runner from pipenv --- tubesync/upgrade_yt-dlp.sh | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/tubesync/upgrade_yt-dlp.sh b/tubesync/upgrade_yt-dlp.sh index e4fdd171..21d51564 100755 --- a/tubesync/upgrade_yt-dlp.sh +++ b/tubesync/upgrade_yt-dlp.sh @@ -1,10 +1,16 @@ #!/usr/bin/env bash pip3() { - local pip_whl - pip_whl="$(ls -1r /usr/share/python-wheels/pip-*-py3-none-any.whl | head -n 1)" + local pip_runner pip_whl run_whl - python3 "${pip_whl}/pip" "$@" + # pipenv + pip_runner='/usr/lib/python3/dist-packages/pipenv/patched/pip/__pip-runner__.py' + + # python3-pip-whl + pip_whl="$(ls -1r /usr/share/python-wheels/pip-*-py3-none-any.whl | head -n 1)" + run_whl="${pip_whl}/pip" + + python3 "${pip_runner}" "$@" } pip3 install --upgrade --break-system-packages yt-dlp From ae07c1ce8942385897e1ee743aaf5bf3270d1d52 Mon Sep 17 00:00:00 2001 From: tcely Date: Fri, 17 Jan 2025 13:03:06 -0500 Subject: [PATCH 4/6] Fallback to run_whl Prefer `pip_runner` but try the `pip` wheel too, if it's missing. --- tubesync/upgrade_yt-dlp.sh | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/tubesync/upgrade_yt-dlp.sh b/tubesync/upgrade_yt-dlp.sh index 21d51564..c3a7edab 100755 --- a/tubesync/upgrade_yt-dlp.sh +++ b/tubesync/upgrade_yt-dlp.sh @@ -5,12 +5,13 @@ pip3() { # pipenv pip_runner='/usr/lib/python3/dist-packages/pipenv/patched/pip/__pip-runner__.py' + test -s "${pip_runner}" || pip_runner='' # python3-pip-whl pip_whl="$(ls -1r /usr/share/python-wheels/pip-*-py3-none-any.whl | head -n 1)" run_whl="${pip_whl}/pip" - python3 "${pip_runner}" "$@" + python3 "${pip_runner:-"${run_whl}"}" "$@" } pip3 install --upgrade --break-system-packages yt-dlp From 66e51929803cace51ba946eece5af1822e225d51 Mon Sep 17 00:00:00 2001 From: tcely Date: Mon, 20 Jan 2025 08:49:14 -0500 Subject: [PATCH 5/6] Warn against regular updating of yt-dlp --- tubesync/upgrade_yt-dlp.sh | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/tubesync/upgrade_yt-dlp.sh b/tubesync/upgrade_yt-dlp.sh index c3a7edab..b92e1fd0 100755 --- a/tubesync/upgrade_yt-dlp.sh +++ b/tubesync/upgrade_yt-dlp.sh @@ -1,5 +1,14 @@ #!/usr/bin/env bash +warning_message() { + cat <&2 + pip3() { local pip_runner pip_whl run_whl @@ -14,5 +23,8 @@ pip3() { python3 "${pip_runner:-"${run_whl}"}" "$@" } +warning_message +test -n "${TUBESYNC_DEBUG}" || exit 1 + pip3 install --upgrade --break-system-packages yt-dlp From 1f95b858f2ef7ec6cc9c2994327474be8c4cbd5f Mon Sep 17 00:00:00 2001 From: tcely Date: Tue, 21 Jan 2025 03:08:24 -0500 Subject: [PATCH 6/6] Use --break-system-packages with pip Unfortunately, both versions of `pip` don't have this flag. Check the version, then add the flag if it is not too old. --- tubesync/upgrade_yt-dlp.sh | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/tubesync/upgrade_yt-dlp.sh b/tubesync/upgrade_yt-dlp.sh index b92e1fd0..9da6d555 100755 --- a/tubesync/upgrade_yt-dlp.sh +++ b/tubesync/upgrade_yt-dlp.sh @@ -26,5 +26,13 @@ pip3() { warning_message test -n "${TUBESYNC_DEBUG}" || exit 1 -pip3 install --upgrade --break-system-packages yt-dlp +# Use the flag added in 23.0.1, if possible. +# https://github.com/pypa/pip/pull/11780 +break_system_packages='--break-system-packages' +pip_version="$(pip3 --version | awk '$1 = "pip" { print $2; exit; }')" +if [[ "${pip_version}" < "23.0.1" ]]; then + break_system_packages='' +fi + +pip3 install --upgrade ${break_system_packages} yt-dlp