From f8553c7ffca1f96692ff54cea76e21455dd97199 Mon Sep 17 00:00:00 2001 From: tcely Date: Wed, 30 Apr 2025 17:04:20 -0400 Subject: [PATCH 01/11] Add Proof-of-Origin Token plugin framework --- Pipfile | 1 + 1 file changed, 1 insertion(+) diff --git a/Pipfile b/Pipfile index 2976db2e..17288683 100644 --- a/Pipfile +++ b/Pipfile @@ -24,3 +24,4 @@ yt-dlp = {extras = ["default", "curl-cffi"], version = "*"} emoji = "*" brotli = "*" html5lib = "*" +yt-dlp-get-pot = "*" From a68c82d975c083aee75e443fffefe805b3afabf7 Mon Sep 17 00:00:00 2001 From: tcely Date: Fri, 16 May 2025 18:37:11 -0400 Subject: [PATCH 02/11] Add `bgutil-ytdlp-pot-provider` plugin --- Pipfile | 1 + 1 file changed, 1 insertion(+) diff --git a/Pipfile b/Pipfile index aed25ce3..5d76b308 100644 --- a/Pipfile +++ b/Pipfile @@ -25,3 +25,4 @@ emoji = "*" brotli = "*" html5lib = "*" yt-dlp-get-pot = "*" +bgutil-ytdlp-pot-provider = "*" From 12aa6b413470a71bbf4c637ba6d1f581783efeaf Mon Sep 17 00:00:00 2001 From: tcely Date: Fri, 16 May 2025 19:55:56 -0400 Subject: [PATCH 03/11] Use token_server.conf --- config/root/etc/nginx/nginx.conf | 3 +++ 1 file changed, 3 insertions(+) diff --git a/config/root/etc/nginx/nginx.conf b/config/root/etc/nginx/nginx.conf index e6b99b68..e4e9140e 100644 --- a/config/root/etc/nginx/nginx.conf +++ b/config/root/etc/nginx/nginx.conf @@ -135,4 +135,7 @@ http { } } + # Proof-of-Origin Token Server + include /etc/nginx/token_server.conf; + } From 4abd768ba8c56e93ea3c15aa9c898b1a42f047fb Mon Sep 17 00:00:00 2001 From: tcely Date: Fri, 16 May 2025 19:59:09 -0400 Subject: [PATCH 04/11] Create token_server.conf --- config/root/etc/nginx/token_server.conf | 15 +++++++++++++++ 1 file changed, 15 insertions(+) create mode 100644 config/root/etc/nginx/token_server.conf diff --git a/config/root/etc/nginx/token_server.conf b/config/root/etc/nginx/token_server.conf new file mode 100644 index 00000000..fbfd5979 --- /dev/null +++ b/config/root/etc/nginx/token_server.conf @@ -0,0 +1,15 @@ +upstream token_server { + server 127.0.0.2:4416 down; +} + +server { + + # Ports + listen 4416; + listen [::]:4416; + + location / { + proxy_pass http://token_server; + proxy_redirect default; + } +} From 8819a945966acedb6b510f4db0bd41e859dad5d9 Mon Sep 17 00:00:00 2001 From: tcely Date: Fri, 16 May 2025 21:32:54 -0400 Subject: [PATCH 05/11] Add `server_name` --- config/root/etc/nginx/token_server.conf | 3 +++ 1 file changed, 3 insertions(+) diff --git a/config/root/etc/nginx/token_server.conf b/config/root/etc/nginx/token_server.conf index fbfd5979..a49f3a3e 100644 --- a/config/root/etc/nginx/token_server.conf +++ b/config/root/etc/nginx/token_server.conf @@ -8,6 +8,9 @@ server { listen 4416; listen [::]:4416; + # Server domain name + server_name _; + location / { proxy_pass http://token_server; proxy_redirect default; From 5f797d091541f5251d1e374b474f76f707a98759 Mon Sep 17 00:00:00 2001 From: tcely Date: Fri, 16 May 2025 21:57:37 -0400 Subject: [PATCH 06/11] Add `YT_POT_BGUTIL_BASE_URL` environment variable --- config/root/etc/nginx/nginx.conf | 2 ++ 1 file changed, 2 insertions(+) diff --git a/config/root/etc/nginx/nginx.conf b/config/root/etc/nginx/nginx.conf index e4e9140e..1b544f44 100644 --- a/config/root/etc/nginx/nginx.conf +++ b/config/root/etc/nginx/nginx.conf @@ -5,6 +5,8 @@ worker_processes auto; worker_cpu_affinity auto; pid /run/nginx.pid; +env YT_POT_BGUTIL_BASE_URL; + events { worker_connections 1024; } From 0919b03143ea379473c35f47045c1b6db5a05919 Mon Sep 17 00:00:00 2001 From: tcely Date: Fri, 16 May 2025 22:11:42 -0400 Subject: [PATCH 07/11] Set the scheme from `YT_POT_BGUTIL_BASE_URL` --- config/root/etc/nginx/token_server.conf | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/config/root/etc/nginx/token_server.conf b/config/root/etc/nginx/token_server.conf index a49f3a3e..057cade5 100644 --- a/config/root/etc/nginx/token_server.conf +++ b/config/root/etc/nginx/token_server.conf @@ -11,8 +11,18 @@ server { # Server domain name server_name _; + set_by_lua_block $pot_url_scheme { + local haystack = os.getenv('YT_POT_BGUTIL_BASE_URL') or '' + local needle = 'https://' + local scheme = 'http' + if haystack:sub(1, #needle) == needle then + scheme = 'https' + end + return scheme + } + location / { - proxy_pass http://token_server; + proxy_pass $pot_url_scheme://token_server; proxy_redirect default; } } From f7d3367a9ff284288a038228794706de3a657bc6 Mon Sep 17 00:00:00 2001 From: tcely Date: Fri, 16 May 2025 23:37:23 -0400 Subject: [PATCH 08/11] Use the environment variable directly --- config/root/etc/nginx/token_server.conf | 19 ++++++++++--------- 1 file changed, 10 insertions(+), 9 deletions(-) diff --git a/config/root/etc/nginx/token_server.conf b/config/root/etc/nginx/token_server.conf index 057cade5..6c0c4e3a 100644 --- a/config/root/etc/nginx/token_server.conf +++ b/config/root/etc/nginx/token_server.conf @@ -11,18 +11,19 @@ server { # Server domain name server_name _; - set_by_lua_block $pot_url_scheme { - local haystack = os.getenv('YT_POT_BGUTIL_BASE_URL') or '' - local needle = 'https://' - local scheme = 'http' - if haystack:sub(1, #needle) == needle then - scheme = 'https' + set_by_lua_block $pot_url { + local default = 'http://token_server' + local url = os.getenv('YT_POT_BGUTIL_BASE_URL') + if not url then + return default end - return scheme + if #url and url:find('://') then + return url + end + return default } location / { - proxy_pass $pot_url_scheme://token_server; - proxy_redirect default; + proxy_pass $pot_url; } } From 14877a8c7d1c2b9a7113b1af4717346010e62e51 Mon Sep 17 00:00:00 2001 From: tcely Date: Fri, 16 May 2025 23:59:13 -0400 Subject: [PATCH 09/11] Set `YT_POT_BGUTIL_BASE_URL` for the user --- config/root/etc/s6-overlay/s6-rc.d/nginx/run | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/config/root/etc/s6-overlay/s6-rc.d/nginx/run b/config/root/etc/s6-overlay/s6-rc.d/nginx/run index 63653343..de89b819 100755 --- a/config/root/etc/s6-overlay/s6-rc.d/nginx/run +++ b/config/root/etc/s6-overlay/s6-rc.d/nginx/run @@ -2,4 +2,14 @@ cd / +https="${TUBESYNC_POT_HTTPS:+https}" +ip_address="${TUBESYNC_POT_IPADDR}" +port="${TUBESYNC_POT_PORT:+:}${TUBESYNC_POT_PORT}" + +if [ -n "${ip_address}" ] +then + YT_POT_BGUTIL_BASE_URL="${https:-http}://${ip_address}${port}" + export YT_POT_BGUTIL_BASE_URL +fi + exec /usr/bin/openresty -c /etc/nginx/nginx.conf -e stderr From 98f3bba9e8306631d18280172a4d8261b8491219 Mon Sep 17 00:00:00 2001 From: tcely Date: Sat, 17 May 2025 00:31:55 -0400 Subject: [PATCH 10/11] Support `--link` variables --- config/root/etc/s6-overlay/s6-rc.d/nginx/run | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/config/root/etc/s6-overlay/s6-rc.d/nginx/run b/config/root/etc/s6-overlay/s6-rc.d/nginx/run index de89b819..fff967d1 100755 --- a/config/root/etc/s6-overlay/s6-rc.d/nginx/run +++ b/config/root/etc/s6-overlay/s6-rc.d/nginx/run @@ -3,7 +3,8 @@ cd / https="${TUBESYNC_POT_HTTPS:+https}" -ip_address="${TUBESYNC_POT_IPADDR}" +ip_address="${TUBESYNC_POT_IPADDR:-${POTSERVER_PORT_4416_TCP_ADDR}}" +: "${TUBESYNC_POT_PORT:=${POTSERVER_PORT_4416_TCP_PORT}}" port="${TUBESYNC_POT_PORT:+:}${TUBESYNC_POT_PORT}" if [ -n "${ip_address}" ] From ea911e4bf91645e987f501c6f9d7def3930fe2a0 Mon Sep 17 00:00:00 2001 From: tcely Date: Sat, 17 May 2025 01:49:32 -0400 Subject: [PATCH 11/11] Bump version --- tubesync/tubesync/settings.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tubesync/tubesync/settings.py b/tubesync/tubesync/settings.py index 7f5922ae..798bd252 100644 --- a/tubesync/tubesync/settings.py +++ b/tubesync/tubesync/settings.py @@ -8,7 +8,7 @@ CONFIG_BASE_DIR = BASE_DIR DOWNLOADS_BASE_DIR = BASE_DIR -VERSION = '0.15.2' +VERSION = '0.15.3' SECRET_KEY = '' DEBUG = False ALLOWED_HOSTS = []