From 4537c63d89d4ce47eaabef1c7b37b32fe88c6cd3 Mon Sep 17 00:00:00 2001 From: Roland Date: Thu, 19 Feb 2026 17:48:03 -0700 Subject: [PATCH] Adding DEBUS to api systemd services. --- etc/raspberrypios/wrolpi-api-dev.service | 2 ++ etc/raspberrypios/wrolpi-api.service | 2 ++ modules/videos/test/test_downloader.py | 6 ++++-- 3 files changed, 8 insertions(+), 2 deletions(-) diff --git a/etc/raspberrypios/wrolpi-api-dev.service b/etc/raspberrypios/wrolpi-api-dev.service index 914de0ff..cce05a65 100644 --- a/etc/raspberrypios/wrolpi-api-dev.service +++ b/etc/raspberrypios/wrolpi-api-dev.service @@ -8,6 +8,8 @@ Conflicts=wrolpi-api.service Environment=PYTHONUNBUFFERED=1 # Sanic 25.x wants 'spawn' but our code uses 'fork' for multiprocessing. Environment=SANIC_START_METHOD_SET=1 +# Required for yt-dlp to access GNOME keyring for browser cookie decryption. +Environment=DBUS_SESSION_BUS_ADDRESS=unix:path=/run/user/%U/bus ExecStart=/opt/wrolpi/venv/bin/python -m sanic main:api_app --host 0.0.0.0 --port 8081 -w 2 --reload --debug ExecReload=/bin/kill -HUP $MAINPID Group=wrolpi diff --git a/etc/raspberrypios/wrolpi-api.service b/etc/raspberrypios/wrolpi-api.service index 365f0856..ffc90159 100644 --- a/etc/raspberrypios/wrolpi-api.service +++ b/etc/raspberrypios/wrolpi-api.service @@ -8,6 +8,8 @@ Conflicts=wrolpi-api-dev.service Environment=PYTHONUNBUFFERED=1 # Sanic 25.x wants 'spawn' but our code uses 'fork' for multiprocessing. Environment=SANIC_START_METHOD_SET=1 +# Required for yt-dlp to access GNOME keyring for browser cookie decryption. +Environment=DBUS_SESSION_BUS_ADDRESS=unix:path=/run/user/%U/bus ExecStart=/opt/wrolpi/venv/bin/python -O -m sanic main:api_app --host 0.0.0.0 --port 8081 -w 5 ExecReload=/bin/kill -HUP $MAINPID Group=wrolpi diff --git a/modules/videos/test/test_downloader.py b/modules/videos/test/test_downloader.py index 9eb3b8ab..4c128e23 100644 --- a/modules/videos/test/test_downloader.py +++ b/modules/videos/test/test_downloader.py @@ -680,7 +680,8 @@ async def test_video_download_cookies(test_session, test_directory, mock_video_e download, cmd, out_dir = mock_video_process_runner.call_args[0] assert '--cookies-from-browser' in cmd - assert 'firefox:some directory' in cmd + # Format: BROWSER+KEYRING:PROFILE + assert 'firefox+GNOMEKEYRING:some directory' in cmd @pytest.mark.asyncio @@ -707,7 +708,8 @@ async def test_video_download_always_use_cookies(test_session, test_directory, m download, cmd, out_dir = mock_video_process_runner.call_args[0] assert '--cookies-from-browser' in cmd - assert 'chromium:some directory' in cmd + # Format: BROWSER+KEYRING:PROFILE + assert 'chromium+GNOMEKEYRING:some directory' in cmd @pytest.mark.asyncio