diff --git a/docker-compose.yml b/docker-compose.yml index d9482a0..55da673 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -4,7 +4,7 @@ services: image: generic-video-dl:latest restart: unless-stopped networks: - - npm_network + - proxy volumes: - ./data/db:/app/db - ./data/downloads:/app/downloads @@ -28,5 +28,5 @@ services: start_period: 15s networks: - npm_network: + proxy: external: true diff --git a/scripts/upload-cookies.sh b/scripts/upload-cookies.sh new file mode 100755 index 0000000..73183aa --- /dev/null +++ b/scripts/upload-cookies.sh @@ -0,0 +1,31 @@ +#!/usr/bin/env bash +# Usage: ./scripts/upload-cookies.sh +# Example: ./scripts/upload-cookies.sh https://viddl.sal.giize.com admin secret123 +set -e + +BASE="${1:?base_url required}" +USER="${2:?username required}" +PASS="${3:?password required}" +SCRIPT_DIR="$(cd "$(dirname "$0")/.." && pwd)" +COOKIE_JAR="$(mktemp)" +trap 'rm -f "$COOKIE_JAR"' EXIT + +# Login via form action, capture access+refresh cookies +HTTP=$(curl -sf -c "$COOKIE_JAR" -X POST "$BASE/login" \ + -H "Content-Type: application/x-www-form-urlencoded" \ + --data-urlencode "username=$USER" \ + --data-urlencode "password=$PASS" \ + -o /dev/null -w "%{http_code}" -L) + +grep -q "access" "$COOKIE_JAR" || { echo "Login failed (HTTP $HTTP)"; exit 1; } +echo "Logged in (HTTP $HTTP)" + +for extractor in facebook instagram threads youtube; do + FILE="$SCRIPT_DIR/cookies-${extractor}.txt" + [ -f "$FILE" ] || { echo " skip $extractor (no file)"; continue; } + curl -sf -b "$COOKIE_JAR" -X POST "$BASE/api/cookies" \ + -F "extractor=$extractor" \ + -F "file=@$FILE" > /dev/null + echo " uploaded $extractor" +done +echo "Done"