- New 2-of-3 detection system (chat + audio + color) - GPU support (PyTorch ROCm/CUDA ready) - Draft mode (360p) for fast testing - HD mode (1080p) for final render - Auto download video + chat - CLI pipeline script - Documentation in Spanish
2.7 KiB
2.7 KiB
Highlight Detector Pipeline
Pipeline completo para detectar y generar highlights de streams de Twitch/Kick.
Requisitos
# Instalar dependencias del sistema
sudo pacman -S ffmpeg streamlink dotnet-sdk --noconfirm
# Instalar dependencias de Python
pip install --break-system-packages moviepy opencv-python-headless scipy numpy python-dotenv
# Instalar TwitchDownloaderCLI (ya incluido en /usr/local/bin)
Uso
1. Descargar Stream
# Usar streamlink (incluye video + audio)
bajar "https://www.twitch.tv/videos/2701190361"
# O manualmente con streamlink
streamlink "https://www.twitch.tv/videos/2701190361" best -o video.mp4
2. Descargar Chat
# Usar TwitchDownloaderCLI
TwitchDownloaderCLI chatdownload --id 2701190361 -o chat.json
3. Detectar Highlights
# Convertir chat a texto y detectar highlights
python3 detector.py
# Esto genera:
# - chat.txt (chat en formato texto)
# - highlights.json (timestamps de highlights)
4. Generar Video Resumen
python3 generate_video.py
# Esto genera:
# - highlights.mp4 (video con los mejores momentos)
Automatizado (Un solo comando)
# Downloader + Chat + Detect + Generate
./pipeline.sh <video_id> <output_name>
Parámetros Ajustables
En detector.py:
min_duration: Duración mínima del highlight (default: 10s)threshold: Umbral de detección (default: 2.0 desviaciones estándar)
En generate_video.py:
padding: Segundos adicionales antes/después del highlight (default: 5s)
GPU vs CPU
El pipeline actual es 100% CPU.
Para mejor rendimiento:
- MoviePy: Usa CPU (puede usar GPU con ffmpeg)
- Análisis de video: CPU con OpenCV
- Audio: CPU con librosa
Para hacer GPU-dependiente:
- Usar
PyTorch/TensorFlowpara detección - Usar GPU de la GPU para renderizado con ffmpeg
Estructura de Archivos
Twitch-Highlight-Detector/
├── .env # Credenciales
├── main.py # Entry point
├── requirements.txt
├── bajar # Script para descargar streams
├── detector.py # Detección de highlights
├── generate_video.py # Generación de video
├── pipeline.sh # Pipeline automatizado
├── chat.json # Chat descargado
├── chat.txt # Chat en formato texto
├── highlights.json # Timestamps de highlights
└── highlights.mp4 # Video final
Notas
- El chat de VODs antiguos puede no estar disponible (Twitch lo elimina)
- El threshold bajo detecta más highlights (puede ser ruido)
- Duraciones muy cortas pueden no ser highlights reales