Muito bom, criei alguns scripts e adicionei alguns alias seguindo a mesma ideia.
Talvez isso te atenda bem tbm, esse trecho corta o video em videos menores.
`#!/bin/bash
Uso:
./download_serie_live.sh "https://youtu.be/-1GWW4XjO10" --tempo-total-horas=8 --tempo-total-minutos=15 --tempo-video-minutos=15
URL_DEFAULT="https://youtu.be/-1GWW4XjO10"
URL="$URL_DEFAULT"
DOWNLOAD_PATH="DOWNLOAD_PATH"
Valores padrão
INICIO_HORAS=0
INICIO_MINUTOS=0
TEMPO_TOTAL_MINUTOS_EXTRA=0
Parsing de parâmetros
for arg in "$@"
do
case {arg#=}" ;;
--tempo-total-minutos=) TEMPO_TOTAL_MINUTOS_EXTRA="{arg#*=}" ;;
--tempo-video-minutos=*) TEMPO_VIDEO_MINUTOS="{arg#=}" ;;
--quantidade-videos=) QUANTIDADE_VIDEOS="{arg#*=}" ;;
--inicio-horas=*) INICIO_HORAS="{arg#=}" ;;
--inicio-minutos=) INICIO_MINUTOS="{arg#*=}" ;;
http*) URL="arg" ;;
esac
done
if [ -z "TEMPO_VIDEO_MINUTOS" ]; then
echo "Uso: $0 [URL] --tempo-total-horas=10 --tempo-total-minutos=15 --tempo-video-minutos=30 [--quantidade-videos=20] [--inicio-horas=H] [--inicio-minutos=M]"
exit 1
fi
echo ">>> Usando URL: $URL"
echo ">>> Baixando vídeo..."
Baixar vídeo consolidado
yt-dlp --no-part -o "URL"
RAW_FILE=DOWNLOAD_PATH" | grep live_raw | head -n 1)
RAW_PATH="RAW_FILE"
if [ ! -f "$RAW_PATH" ]; then
echo "❌ ERRO: Arquivo da live não foi encontrado. Verifique o link."
exit 1
fi
Converte para .mp4
echo ">>> Convertendo para MP4..."
ffmpeg -i "DOWNLOAD_PATH/live_completa.mp4" -y
Calcula blocos
TOTAL_MINUTOS=TEMPO_VIDEO_MINUTOS
INICIO_TOTAL_MINUTOS=$((INICIO_HORAS * 60 + INICIO_MINUTOS))
if [ -z "(( (TOTAL_MINUTOS + SEGMENTO_MINUTOS - 1) / SEGMENTO_MINUTOS ))
fi
convert_to_hhmmss() {
local t=$1
printf "%02d:%02d:%02d" $((t/3600)) $(((t%3600)/60)) $((t%60))
}
Corta em partes
for ((i=0; i<QUANTIDADE_VIDEOS; i++))
do
START_MIN=((START_MIN * 60))
START_TIME=$(convert_to_hhmmss $START_SEC)
END_MIN=$((INICIO_TOTAL_MINUTOS + (i+1) * SEGMENTO_MINUTOS))
if [ $END_MIN -gt $((INICIO_TOTAL_MINUTOS + TOTAL_MINUTOS)) ]; then
END_MIN=$((INICIO_TOTAL_MINUTOS + TOTAL_MINUTOS))
fi
END_SEC=$((END_MIN * 60))
DURATION=$((END_SEC - START_SEC))
echo ">>> Cortando parte $((i+1)) (Início: $START_TIME, Duração: ${DURATION}s)"
ffmpeg -ss $START_TIME -i "$DOWNLOAD_PATH/live_completa.mp4" -t $DURATION -c copy \
"$DOWNLOAD_PATH/parte_$((i+1)).mp4" -y
done
echo "✅ Processo finalizado! Arquivos salvos em: $DOWNLOAD_PATH"`