#!/usr/bin/env bash
# Symlink Drive videos to safe names, run claude-watch extract.sh on each.
# FIX: read files into array (no stdin pipe) + extract </dev/null so ffmpeg
# can't consume the loop's input stream. Map: vNN <tab> watchdir <tab> orig.
set -u
SRC=/tmp/aria-drive-videos
SAFE=/tmp/aria-drive-videos/safe
MAP=/root/aria/state/drive-analysis/video-watchdirs.tsv
ERR=/root/aria/state/drive-analysis/_extract_errors.log
EXTRACT=/root/.claude/skills/claude-watch/scripts/extract.sh
mkdir -p "$SAFE"; rm -f "$SAFE"/*.MP4 "$SAFE"/*.mp4 "$SAFE"/*.MOV "$SAFE"/*.mov 2>/dev/null
: > "$MAP"; : > "$ERR"
mapfile -t FILES < <(find "$SRC" -maxdepth 1 -type f \( -iname '*.mp4' -o -iname '*.mov' -o -iname '*.webm' -o -iname '*.mkv' \) | sort)
i=0
for f in "${FILES[@]}"; do
  i=$((i+1))
  ext="${f##*.}"
  printf -v vn "v%02d" "$i"
  link="$SAFE/$vn.$ext"
  ln -sf "$f" "$link"
  echo "=== [$vn] $(basename "$f") ===" >&2
  out=$(bash "$EXTRACT" "$link" </dev/null 2>>"$ERR" | grep -oE '/tmp/aria-watch-[a-f0-9]+' | tail -1)
  printf '%s\t%s\t%s\n' "$vn" "$out" "$(basename "$f")" >> "$MAP"
  echo "    -> ${out:-FAILED}" >&2
done
echo "DONE processed=$i map=$MAP" >&2
