Clonar una pista y crear una desde cero son caminos diferentes. musicaclone los separa y bloquea todo lo que suele salir mal en el proceso.

Pasas un enlace (YouTube, Facebook, TikTok, cualquier cosa que yt-dlp pueda abrir). Descarga el audio, le pregunta a Gemini si realmente es música, extrae el estilo y la letra, prepara una spec, te la muestra — y solo entonces genera en Suno mediante la API de Kie.
Usa el audio original como referencia (upload-cover), entonces la melodía y la estructura se mantienen. No es «una canción parecida».
¿No es música? Se bloquea. ¿La letra llegó truncada? Avísame. ¿La fuente es un teaser de 29 s? Muestra la duración antes de que gastes crédito.
Cada pista se convierte en una carpeta con spec.json: taskId guardado antes del poll, costo medido de verdad, y regen para ajustar sin volver a analizar.
El camino de arriba es el clon (parte de un enlace). El de abajo es la creación (parte de una idea). Ambos pasan por la misma puerta antes de gastar crédito.
prep + cloneEl audio original se convierte en referencia en Kie. El peso --audio-weight decide cuánto se parece la nueva pista al original: 0.9 es casi el mismo arreglo, 0.4 solo está inspirado.
cria + regenSin referencia. Entregas etiquetas de estilo y la letra; el modelo hace el resto. Es el camino para una banda sonora, un jingle o un tema original.
Nada se ejecuta como servicio. Es un script bash con curl, jq, yt-dlp y un python de análisis.
yt-dlp para la descarga, jq para el estado, ffmpeg para la extracción de audio.
# debian/ubuntu sudo apt install jq ffmpeg pipx install yt-dlp
Es quien genera la música. Consíguela en kie.ai/api-key y ponla en un .env — el script lo lee en tiempo de ejecución, nunca lo versiona.
# .env al lado del script KIE_API_KEY=sk-...
Es quien escucha el audio y dice si es música, cuál es el estilo y cuál es la letra.
# mismo .env GOOGLE_API_KEY=...
Comandos reales. El único paso que consume créditos es el 3, y solo se ejecuta después de que revises el paso 2.
Resuelve el enlace, descarga el audio, lo clasifica y lo analiza. No gasta crédito de Kie.
bash musica.sh prep "https://youtube.com/watch?v=..." minha-faixa
Aquí compruebas lo que entendió. Si la duración es de teaser o la letra está incompleta, detente y corrígelo antes.
bash musica.sh spec minha-faixa --- viking-gods [clone] --- fuente: «Viking Gods» by Bob Dominator duración: 29.07s <- teaser, no es la música entera modo: cover style: epic pop, cinematic, female lead vocals, nordic, driving rhythm letra completa? false (75 palabras)
Sube la referencia, inicia el job y guarda el taskId antes de cualquier poll — si se cae la conexión, retomas en lugar de volver a pagar.
bash musica.sh clone minha-faixa --audio-weight 0.85
Las URL de Suno caducan, así que get la descarga de inmediato y además calcula el costo real de la generación.
bash musica.sh status minha-faixa # PENDING → TEXT_SUCCESS → FIRST_SUCCESS → SUCCESS bash musica.sh get minha-faixa # faixa-1.mp3, faixa-2.mp3, creditos gastos: 12
Sin enlace. Escribes el estilo en etiquetas y entregas la letra en un archivo con [Verse] / [Chorus].
bash musica.sh cria meu-tema \ --style "epic cinematic pop, powerful female belt vocals, war drums, 118bpm" \ --title "Se Paga" --voz f --letra letra.txt bash musica.sh regen meu-tema
Todo está en el spec.json, entonces regen vuelve a hacerlo con el ajuste sin repetir la descarga ni el análisis.
| Flag | Qué hace | Cuándo ajustar |
|---|---|---|
| --style | etiquetas de sonido (género, instrumento, voz, tempo) | el timbre salió mal |
| --negative | qué evitar | salió acústica y tú querías algo pesado |
| --voz m|f | género de la voz | la voz llegó intercambiada |
| --audio-weight | solo en el clon: cuánto influye la referencia | 0.85–0.95 se apega al original; 0.4 solo sirve de inspiración |
| --style-weight | adhesión al estilo descrito | ignoró las etiquetas |
| --weirdness | desvío creativo | quedó demasiado obvio |
| --model | V4 … V5_5 (default V5) | V5_5 es el único con --duration |
| --instrumental | sin voz | pista y BGM |
Un buen estilo es una etiqueta corta en inglés, separada por comas: nordic folk metal, epic, male gang vocals, war drums, low brass, 140bpm. Las frases corridas funcionan peor.
El script registra el saldo antes de generar y escribe el gasto real en el spec.json. El número de abajo salió de una generación real el 2026-08-05, no de una tabla de terceros.
| Servicio | Precio | ¿Clona audio? |
|---|---|---|
| Suno vía Kie (este proyecto) | 12 créditos por generación de 2 pistas ≈ US$ 0,06 (~US$ 0,03/pista) | Sí — upload-cover |
| Suno directo (suscripción) | 5 créditos/canción; Pro US$ 10/mes ≈ 500 canciones | Solo en la web, sin API oficial |
| ElevenLabs Music | ~US$ 0,30–0,40 por minuto generado (3 min ≈ US$ 1,00–1,20) | No |
| Udio | créditos por generación; Standard US$ 10/mes = 2.400 créditos | Sin una API pública madura |
Resumen: Kie gana aquí por ser el único de los tres que clona a partir de audio de referencia y porque cuesta ~17–20× menos que ElevenLabs por pista.
Lo que aparece como listo se ejecutó de principio a fin, incluida una generación real de pago.