#!/usr/bin/env bash
set -euo pipefail

if [[ $# -lt 1 || $# -gt 2 ]]; then
  echo "Usage: $0 URL [OUTPUT_DIR]" >&2
  exit 2
fi

url="$1"
output_dir="${2:-$HOME/Downloads}"

case "$url" in
  http://*|https://*) ;;
  *)
    echo "Error: URL must begin with http:// or https://" >&2
    exit 2
    ;;
esac

if ! command -v yt-dlp >/dev/null 2>&1; then
  echo "Error: yt-dlp is not installed or not on PATH." >&2
  exit 127
fi

mkdir -p "$output_dir"

args=(
  --no-playlist
  --no-overwrites
  --continue
  --restrict-filenames
  --trim-filenames 180
  --format "bv*+ba/b"
  --merge-output-format mp4
  --remux-video mp4
  --embed-metadata
  --embed-thumbnail
  --print "after_move:SAVED_PATH=%(filepath)s"
  --output "$output_dir/%(title).150B [%(id)s].%(ext)s"
)

if [[ -n "${DOWNLOAD_VIDEO_BROWSER:-}" ]]; then
  args+=(--cookies-from-browser "$DOWNLOAD_VIDEO_BROWSER")
fi

yt-dlp "${args[@]}" "$url"
