Skip to main content

🎬 aurclips

tests

Convierte videos largos en Shorts verticales con subtítulos, completamente local. Corre en Windows, Linux y macOS.

aurclips clip mi_partida.mp4
data/output/mi_partida/
  0001_El_truco_que_nadie_conoce.mp4    ← 9:16, subtítulos quemados
  0001_El_truco_que_nadie_conoce.txt    ← título, descripción y hashtags
  0002_Por_que_nadie_termina_el_juego.mp4
  0002_Por_que_nadie_termina_el_juego.txt

Sin API keys, sin cuenta, sin mandar tu material a ningún servidor: transcribir, elegir y editar pasa todo en tu máquina.

Qué hace

  • Transcribe con Whisper local, con tiempos por palabra (usa tu GPU NVIDIA si la tienes).
  • Elige los momentos: lo que marcaste al grabar manda; si no marcaste, puntúa estructura (gancho, preguntas, cierre de idea, densidad) y energía de audio según tu género.
  • Recorta a 9:16, quita las pausas muertas (jump cuts) y encuadra en el rostro si lo pides.
  • Quema subtítulos estilo viral, palabra a palabra.
  • Escribe la metadata de cada recorte en un .txt al lado: título, descripción y hashtags, listos para copiar y pegar. Con Ollama los redacta un modelo local; sin Ollama, una heurística.

Qué NO hace

  • No adivina bien sin tu ayuda. Sin marcar nada al grabar, cuenta con ~1 recorte bueno por grabación: el filtro de calidad prefiere quedarse corto antes que rellenar. Marcar cambia eso por completo.
  • No hay magia de IA en la selección. Es una heurística simple y a propósito (ADR-0001): no modela arcos narrativos ni persigue la viralidad. El criterio lo pones tú.
  • No sube nada. Publicar en YouTube existe, pero es opcional y viene apagado.
  • No acelera en GPU en macOS. La GPU NVIDIA acelera la transcripción en Windows y Linux; en macOS (incluido Apple Silicon) se transcribe en CPU. En CPU funciona en todas partes, solo más lento.
  • Está en beta. Los defaults siguen en calibración: espera cambios de configuración entre versiones y mira lo que genera antes de publicarlo.

Instalación

Necesitas Python 3.12 y ffmpeg. La fuente de los subtítulos ya viene con el paquete.

ffmpeg (una vez, con tu gestor de paquetes):

SO Comando
macOS brew install ffmpeg
Debian/Ubuntu sudo apt install ffmpeg
Fedora sudo dnf install ffmpeg
Windows winget install ffmpeg (o lo descarga setup.ps1 a tools\)

aurclips:

# Linux / macOS
git clone https://github.com/feliivk/aurclips && cd aurclips
sh setup.sh
# Windows
git clone https://github.com/feliivk/aurclips; cd aurclips
powershell -ExecutionPolicy Bypass -File setup.ps1

Ambos crean un entorno virtual e instalan el comando aurclips. Si tienes GPU NVIDIA (Windows/Linux), el setup detecta nvidia-smi y ofrece el soporte CUDA; en CPU también funciona (baja whisper.model a small).

¿Prefieres instalarlo como un paquete más, sin el script? Es un proyecto Python estándar:

pipx install git+https://github.com/feliivk/aurclips     # aislado, comando global
# o, dentro de tu propio entorno:
pip install git+https://github.com/feliivk/aurclips
# con soporte GPU NVIDIA (Windows/Linux x86_64):
pip install "aurclips[cuda] @ git+https://github.com/feliivk/aurclips"

Instalado así, aurclips guarda config.yaml y los datos en las carpetas de usuario de tu SO (las crea y te dice dónde en el primer arranque); corriendo desde el checkout usa ./config.yaml y ./data, como hasta ahora.

Opcional pero recomendado — un modelo local que escriba los títulos:

ollama pull qwen2.5:7b

aurclips lo detecta solo. Sigue siendo local y gratis.

Los ejemplos usan el comando aurclips que crea el setup. Si prefieres no activar el entorno, es equivalente a .venv/bin/python -m aurclips (Linux/mac) o .venv\Scripts\python -m aurclips (Windows).

Ejemplo

aurclips clip "~/grabaciones/partida 12.mkv"
aurclips clip partida.mp4 --out ~/edicion
aurclips clip partida.mp4 --clips 1

--out cambia la carpeta de destino y --clips pone un tope solo para esa corrida. Nada de esto toca config.yaml, ni deja cola pendiente, ni necesita credenciales: un recorte suelto entra y sale.

Recortar dos veces la misma grabación no la vuelve a transcribir — la transcripción queda en caché, así que probar parámetros es barato. La segunda corrida reemplaza los recortes de la primera en esa carpeta: si quieres conservar los anteriores, dales otro --out.

Los mandos completos están en Configuración y Selección.

Luego: graba pensando en el recorte

Cuando tú controlas la fuente, el problema deja de ser "detectar buenos momentos en footage desconocido" y pasa a ser "grabar de forma que extraer sea fácil". Es la palanca más grande que tienes y no toca código:

  • Graba en beats: unidades de 20-45 s con gancho, punto y cierre.
  • Marca en vivo: di "esto es un short" mientras grabas y ese momento gana sobre cualquier puntuación. El segmento con la frase se silencia, así que marca el clip pero no entra en él. No hace falta decirla clavada (se compara por parecido) ni marcar todos los videos.
  • O por timestamps: un <video>.marks.txt al lado de la grabación, que puedes escribir con el hotkey de tu grabadora o con aurclips mark.

Guía completa: Grabar en beats.

Luego: que se publique solo

Si los recortes ya te convencen, aurclips también lleva el ciclo completo: sube a YouTube en privado con fecha programada, y YouTube publica uno por día a la hora que fijes.

aurclips run       # ingesta -> recortes -> subida
aurclips review    # aprobar o corregir antes de subir
aurclips status    # qué hay en cola
aurclips report    # métricas y qué está funcionando
aurclips retry     # reencolar lo que falló

A diferencia del modo recortador, esto sí lleva una base de estado: cada clip tiene progreso (pendiente, renderizado, subido) y criterio tuyo (sin revisar, aprobado, descartado). Mientras review.enabled sea true, nada se sube sin pasar por tu criterio.

Para dejarlo corriendo solo cada día, hay una receta por SO —cron/systemd en Linux, launchd en macOS, Programador de tareas en Windows— en packaging/.

Cómo dar de alta las credenciales, la cuota diaria, la programación y qué hacer si un Short salió mal: Publicar en YouTube.

Para vigilar canales y descargar material de YouTube en vez de usar tu propio inbox, mira channels en Configuración.

Documentación

Cómo funciona El motor y los dos niveles, con el flujo de punta a punta
Grabar en beats Cómo grabar y marcar para que recortar sea trivial
Selección Cuántos clips salen y cuáles: piso de calidad y pesos
Configuración Todas las claves de config.yaml
Publicar en YouTube Credenciales, cuota, programación, despublicar
CONTEXT.md El vocabulario del proyecto
ADR Decisiones de arquitectura y por qué

Desarrollo

pip install -e .[dev]
pytest

Los tests corren en segundos, sin GPU, sin video real y sin Ollama.

Licencia

MIT. El modelo de detección de rostros embebido (YuNet, int8) es también MIT.

Eres responsable de tener derechos sobre el contenido que recortas y de cumplir los términos de servicio de YouTube y las políticas de la YouTube Data API al usar la subida automática.

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

aurclips-0.1.0.tar.gz (226.1 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

aurclips-0.1.0-py3-none-any.whl (215.2 kB view details)

Uploaded Python 3

File details

Details for the file aurclips-0.1.0.tar.gz.

File metadata

  • Download URL: aurclips-0.1.0.tar.gz
  • Upload date:
  • Size: 226.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.14

File hashes

Hashes for aurclips-0.1.0.tar.gz
Algorithm Hash digest
SHA256 1ec6f6757407c57da26159addc0bd34ce7848a15641a4aaddf24093f8e79819a
MD5 13cd7e7b106b56bb23f82e701ef96a6c
BLAKE2b-256 e378b0dfc5d157c8aaa7b4c090e58720a4685d761cf018070973e8729eb7ae45

See more details on using hashes here.

Provenance

The following attestation bundles were made for aurclips-0.1.0.tar.gz:

Publisher: publish.yml on feliivk/aurclips

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file aurclips-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: aurclips-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 215.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.14

File hashes

Hashes for aurclips-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 1f73fc55efd29cc7cbad3d6abdb3dca5e68e8ef3e54604dbcf3156012ec36eea
MD5 3fa32c948aad9abfa96da5a3e6b75bc4
BLAKE2b-256 5c2797ffe1d1e82b97049bbdd98154915e1f667acbb2b289e2e04f48faab2027

See more details on using hashes here.

Provenance

The following attestation bundles were made for aurclips-0.1.0-py3-none-any.whl:

Publisher: publish.yml on feliivk/aurclips

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page