Communitygithub.com

openvidstudio — producto real → corte launch

Pipeline open-source MCP: un agente captura pantallas y grabaciones de tu producto real (browser/desktop/móvil/terminal), planifica beats, narra y renderiza un corte Remotion cinematográfico. Nada generado. El README abre con brand/demo.gif de un render real.

¿Qué es openvidstudio — producto real → corte launch?

Launch Video paso 1 (captura): MCP + Playwright conduce tu app real → Remotion → MP4 demo/launch. Solo píxeles reales. README con brand/demo.gif.

Compatible con~Claude Code~Codex CLI~Cursor
npx skills add AnayDhawan/openvidstudio

Preguntar en tu IA favorita

Abre un nuevo chat con esta habilidad de agente ya precargada.

Documentación

bgmusic

Encuentra una base musical real para un video, a partir de catálogos de dominio público, sin descargar una biblioteca ni deberle una línea de crédito a nadie.

Cuando los incorporados son suficientes

public/sfx/ ya incluye dos bases y ninguna requiere una solicitud:

  • music-bed.mp3, un drone ambiental de 60 s. Adecuado para un tutorial técnico breve.
  • pulse-bed.mp3, 112 bpm con una cuadrícula de cues exacta en pulse-bed.cues.json. Es la única pista donde los cortes sincronizados al ritmo son exactos en lugar de estimados, porque fue sintetizada en lugar de analizada.

Úsalos cuando el video sea corto, esté guiado por narración o la música solo tenga que no ser silencio. Busca más cuando el video sea un lanzamiento o una pieza promocional y la base musical transmita el estado de ánimo.

Los dos catálogos

FuenteQuéTamaño
lofibtahir/open-lofi, 166 pistas lo-fi en 10 categorías~3 MB por pista
cc0SoundSafari/CC0-1.0-Music, ~9200 pistas de freepd, chosic, Free Music Archive, freesound y Pixabay2-15 MB por pista

Ambos son CC0-1.0. Dominio público, uso comercial permitido, sin atribución requerida, nada para la descripción del video. Por eso estos dos están integrados mientras que plan_sound_effects aún envía al usuario a Pixabay manualmente para los efectos.

Una advertencia que vale la pena mencionar: el corpus es agregado por la comunidad y funciona con solicitudes de eliminación, por lo que su declaración CC0 por pista es la del mantenedor, no una licencia que hayas leído. Para un video de producto, esto está bien y el archivo de procedencia registra la fuente. Donde una licencia incorrecta sería costosa, quédate en lofi, que es un autor, un lanzamiento, una declaración de licencia.

El flujo

find_music_bed -> [el usuario audiciona] -> import_music_bed -> plan_music_cues -> stitch_composition

1. find_music_bed

Consulta con palabras simples de estado de ánimo o escena: "calma concentración codificación", "noche neón", "cálido optimista". Se emparejan títulos y categorías.

La primera llamada construye un índice, aproximadamente siete llamadas a la API de GitHub, almacenado en caché en output/music-index.json. Las búsquedas posteriores son una lectura local. Pasa refresh: true solo después de que un catálogo publique una nueva versión.

Las categorías de lofi son metadatos reales, por lo que category: "ambient-lofi" funciona. Las pistas del corpus no tienen ninguna: una pista allí es un nombre de archivo en una carpeta con el nombre del sitio del que proviene. Cuando no hay coincidencias, la herramienta devuelve una muestra simple y establece matchedQuery: false. Esa es una señal para probar una palabra que un compositor realmente pondría en un título, no para rendirse.

Deja que el usuario elija. Devuelve de tres a cinco candidatos con sus títulos y categorías. La música es cuestión de gusto, y una base incorrecta es más notoria que una fuente incorrecta.

2. import_music_bed

import_music_bed(id: "lofi:terminal-rain", out: "public/audio/music-bed.mp3", seconds: 45, start: 12)

Lo que hace más allá de descargar: recorta seconds desde start, funde de entrada y salida, y normaliza a -20 LUFS para que la base se sitúe debajo de la narración en lugar de competir con ella. Pasa raw: true para omitir todo eso y mantener la pista tal como se publicó.

Dónde colocarlo:

  • public/audio/music-bed.mp3 para la base de la composición. stitch_composition adjunta esa ruta automáticamente, por lo que no es necesario cambiar nada más.
  • public/imported_audios/ (el valor predeterminado) para cualquier otra cosa, que es la carpeta que contiene material que no provino del paquete incorporado.

Escribe <archivo>.source.json y una fila MUSIC-SOURCES.md junto a la pista: id, título, repositorio fuente, licencia, fecha. CC0 no requiere nada de eso. Está ahí para que un año después la procedencia de una base sea una lectura de archivo en lugar de una suposición.

Salta al medio de una pista con start. Las introducciones suelen ser la parte menos útil, y una base que comienza en un tiempo fuerte no necesita edición para sentirse intencionada.

3. plan_music_cues

Llámala en el archivo importado. Para cualquier pista que no sea pulse-bed.mp3, la cuadrícula se estima a partir de una envolvente de inicio, por lo que trátala como una guía de planificación: ajusta un puñado de revelaciones importantes a strongCues, no cada corte. docs/STYLE.md tiene las tolerancias.

Costos y límites

  • No hay nada externo integrado. open-lofi publica sus pistas solo dentro de un zip de lanzamiento de 554 MB, por lo que una importación lee el directorio central de ese zip a través de solicitudes de rango HTTP y extrae solo los bytes del miembro elegido. Los 554 MB nunca se descargan.
  • Dar forma a una base necesita ffmpeg en PATH. raw: true no.
  • El límite de API no autenticada de GitHub es de 60 solicitudes por hora. Una compilación de índice consume aproximadamente siete. Establece GITHUB_TOKEN en una máquina que lo reconstruya con frecuencia.
  • El caché del índice reside en output/, que un proyecto scaffold ya ignora con gitignore.

Qué no hacer

  • No incluyas un catálogo completo en un proyecto. Una base por video es la unidad aquí.
  • No coloques una pista en public/sfx/. Esa carpeta es el paquete que se envía con el paquete, y public/sfx/CREDITS.md dice lo que contiene y por qué no tiene términos.
  • No uses esto para efectos de sonido. plan_sound_effects verifica primero el paquete incorporado y solo luego busca, que es el orden correcto para los efectos.

Individual skills in this repo

This repo contains 3 individual skills — each has its own dedicated page.

Skills relacionados