#!/usr/bin/env bash
# batch-download.sh — descarga la playlist completa via yt-dlp
set -euo pipefail

SONGS_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)/songs"
mkdir -p "$SONGS_DIR"

declare -a SONGS=(
  "01|Luck Ra Alan Gomez Mission 15"
  "02|Temblequeo Reggaeton Salsa"
  "03|Chula Y Elegante Reggaeton"
  "04|DJ Plenna 2 Chamos Magia Y Deseo"
  "05|Jorge Gonzalez Patra reggaeton"
  "06|Nesty Dani J Solita"
  "07|Nio Garcia Dividimos"
  "08|Deorro Voces Del Rancho Camaron Pelao"
  "09|Chica Sexy reggaeton"
  "10|BB Thomaz Daroza Dean Zum Zum"
  "11|Elvis Crespo Suavemente merengue"
  "12|Maria Becerra Trueno Big One Cuando Te Vi Crossover"
  "13|Yahaira Plasencia Bailando Bachata"
  "14|Karol G Papasito"
  "15|Luck Ra Chayanne Un Siglo Sin Ti"
  "16|Daddy Yankee BZRP Music Sessions 66"
  "17|Daddy Yankee Bonita"
  "18|Dembow de Favela"
  "19|Don Omar Guaya Guaya"
  "20|Miley Cyrus Flowers version espanol"
  "21|Shakira Zoo Zootopia 2"
  "22|Luis Fonsi La Romana"
  "23|Las Migas Stay Homas Buen Rollo"
  "24|Machel Montano Wave It Bring Back Riddim"
  "25|Sofia Reyes Pedro Capo Casualidad"
  "26|Mujeron Cumbia"
  "27|Celebrando Electro Merengue"
  "28|Ya No Te Extrano Reggaeton"
  "29|The Offspring Pretty Fly For A White Guy"
  "30|Isabel Aaiun Potra Salvaje"
  "31|Salvi CHCKN Anxther Sun Kumbala"
  "32|Sebastian Yatra Manuel Turizo Beele Vagabundo"
  "33|India Martinez Andy Rivera 5 Sentios"
  "34|Sol Y Arena Merengue"
  "35|Zona Prieta Chica Practica"
  "36|Como E Salsa Choke"
  "37|Gozadera Larga cumbia"
  "38|Que Vuelvas Tango Latin Fusion"
  "39|Pal Party Dembow"
  "40|Dolly Style Yihaa"
  "41|Thalia Mujer Latina"
  "42|Luck Ra Tiago PZK Fue Culpa Tuya"
  "43|7 Vidas latin"
)

ok=0; fail=0; total=${#SONGS[@]}

for entry in "${SONGS[@]}"; do
  IFS='|' read -r num query <<< "$entry"
  outfile="$SONGS_DIR/${num} - %(title)s.%(ext)s"
  finalglob="$SONGS_DIR/${num} - "*.mp3

  # Skip si ya existe
  existing=$(find "$SONGS_DIR" -maxdepth 1 -name "${num} - *.mp3" 2>/dev/null | head -1)
  if [[ -n "$existing" ]]; then
    echo "[skip] $num $(basename "$existing")"
    ok=$((ok+1)); continue
  fi

  echo "[dl] $num: $query"
  yt-dlp "ytsearch3:${query} official audio" \
      --no-playlist --max-downloads 1 \
      -x --audio-format mp3 --audio-quality 5 \
      -o "$outfile" \
      --quiet --no-warnings 2>/dev/null || true

  downloaded=$(find "$SONGS_DIR" -maxdepth 1 -name "${num} - *.mp3" 2>/dev/null | head -1)
  if [[ -n "$downloaded" ]]; then
    echo "  -> $(basename "$downloaded")"
    ok=$((ok+1))
  else
    echo "  [FAIL] $num: $query"
    fail=$((fail+1))
  fi
done

echo ""
echo "=============================="
echo "OK: $ok/$total | FAIL: $fail"
echo "=============================="
