diff --git a/cloudron/awesome-installs/yt-dlp.sh b/cloudron/awesome-installs/yt-dlp.sh index d00be4c..f2881e8 100644 --- a/cloudron/awesome-installs/yt-dlp.sh +++ b/cloudron/awesome-installs/yt-dlp.sh @@ -1,30 +1,38 @@ +#!/bin/bash set -euo pipefail -read -rsp "Set password for admin (HTTP basic auth) user: " pass1; echo + +read -rsp "Set password for admin (HTTP Basic Auth): " pass1; echo read -rsp "Confirm password: " pass2; echo [ "$pass1" != "$pass2" ] && echo "Passwords do not match." && exit 1 + read -rp "Enter downloads directory [/app/data/downloads]: " downloads_dir downloads_dir=${downloads_dir:-/app/data/downloads} + mkdir -p /app/data/public/bin "$downloads_dir" /bin/rm -f /app/data/public/bin/yt-dlp curl -sSL https://github.com/yt-dlp/yt-dlp/releases/latest/download/yt-dlp -o /app/data/public/bin/yt-dlp chmod +x /app/data/public/bin/yt-dlp + if command -v htpasswd >/dev/null 2>&1; then htpasswd -cb /app/data/.htpasswd admin "$pass1" else echo "admin:$(openssl passwd -apr1 "$pass1")" > /app/data/.htpasswd fi + cat > /app/data/public/.htaccess <<'EOF' AuthType Basic AuthName "Restricted Area" AuthUserFile /app/data/.htpasswd Require valid-user EOF + set +u { echo "[settings]" echo "downloads_dir=$downloads_dir" } > /app/data/config.ini set -u + cat > /app/data/public/index.php <<'EOF' EOF + cat > /app/data/public/log.php <<'EOF' 5 * 1024 * 1024) { + @unlink("/tmp/yt-dlp.log"); +} header("Refresh: 3"); echo "
";
 system("tail -n 100 /tmp/yt-dlp.log 2>&1");
 echo "
"; ?> EOF + chown -R www-data:www-data /app/data/public -echo "Done. Access via your LAMP app URL (protected)." \ No newline at end of file + +echo "Done. Access via your LAMP app URL (protected)."