6035542b67
Movidos do vault Hub para centralizar scripts. Hub mantem symlinks. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
69 lines
1.9 KiB
Bash
Executable File
69 lines
1.9 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
set -euo pipefail
|
|
|
|
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
|
source "${SCRIPT_DIR}/lib.sh"
|
|
|
|
# Episodios a produzir (ordem do calendario)
|
|
EPISODES=(136 37 38 39 40 41 42 44 135 46 47 48 49 50 51)
|
|
|
|
TOTAL=${#EPISODES[@]}
|
|
DONE=0
|
|
FAILED=0
|
|
|
|
log_info "=== BATCH PRODUCE: ${TOTAL} episodios ==="
|
|
|
|
for EP in "${EPISODES[@]}"; do
|
|
EP_PAD="$(pad_number "$EP")"
|
|
DONE=$((DONE + 1))
|
|
log_info "--- [${DONE}/${TOTAL}] EP${EP_PAD} ---"
|
|
|
|
# Step 1: Generate audio (split + TTS)
|
|
log_info "EP${EP_PAD}: Generating audio..."
|
|
if bash "${SCRIPT_DIR}/generate-audio.sh" "$EP" 2>&1; then
|
|
log_info "EP${EP_PAD}: Audio generation OK"
|
|
else
|
|
log_error "EP${EP_PAD}: Audio generation FAILED, skipping"
|
|
FAILED=$((FAILED + 1))
|
|
continue
|
|
fi
|
|
|
|
# Step 2: Collect raw audio parts
|
|
RAW_DIR="${PROJECT_ROOT}/Episodios/Audios/raw"
|
|
RAW_FILES=()
|
|
for p in "${RAW_DIR}/ep_${EP_PAD}_p"*.wav; do
|
|
[[ -f "$p" ]] && RAW_FILES+=("$p")
|
|
done
|
|
|
|
if [[ ${#RAW_FILES[@]} -eq 0 ]]; then
|
|
# Try alternate path with accent
|
|
RAW_DIR="${PROJECT_ROOT}/Episodios/Audios/raw"
|
|
for p in "${RAW_DIR}/ep_${EP_PAD}_p"*.wav; do
|
|
[[ -f "$p" ]] && RAW_FILES+=("$p")
|
|
done
|
|
fi
|
|
|
|
if [[ ${#RAW_FILES[@]} -eq 0 ]]; then
|
|
log_error "EP${EP_PAD}: No raw audio files found, skipping post-production"
|
|
FAILED=$((FAILED + 1))
|
|
continue
|
|
fi
|
|
|
|
# Sort parts numerically
|
|
IFS=$'\n' RAW_FILES_SORTED=($(printf '%s\n' "${RAW_FILES[@]}" | sort)); unset IFS
|
|
|
|
# Step 3: Post-produce
|
|
log_info "EP${EP_PAD}: Post-producing ${#RAW_FILES_SORTED[@]} parts..."
|
|
if bash "${SCRIPT_DIR}/post-produce.sh" "$EP" "${RAW_FILES_SORTED[@]}" 2>&1; then
|
|
log_info "EP${EP_PAD}: Post-production OK"
|
|
else
|
|
log_error "EP${EP_PAD}: Post-production FAILED"
|
|
FAILED=$((FAILED + 1))
|
|
continue
|
|
fi
|
|
|
|
log_info "EP${EP_PAD}: DONE"
|
|
done
|
|
|
|
log_info "=== BATCH COMPLETE: ${DONE} processed, $((DONE - FAILED)) OK, ${FAILED} failed ==="
|