El punto de partida: la voz sigue siendo humana
La restricción más importante del proyecto no es técnica, es editorial: la voz de cada canción tiene que ser la voz real de Guerda, grabada tal cual. Todo lo demás — arreglo, producción, adaptación a otros idiomas — puede generarse, pero la voz no. Esa es la diferencia entre "música hecha con IA" y "música de una artista real, producida con herramientas de IA".
El flujo de producción
Guerda deposita una grabación vocal en bruto en una carpeta. A partir de ahí, la pipeline toma el control:
| Fase | Qué sucede |
|---|---|
| 1. Ingesta | voice_ingest.py lee el archivo de audio y pide título, tema e idioma |
| 2. Producción | audio_suno.py abre una sesión de Suno compartida y genera la pista kompa completa sobre la voz-persona de Guerda |
| 3. Vídeo | video_render.py compone el vídeo final vía FFmpeg, con la identidad visual de Guerda ya incrustada en los píxeles |
| 4. Distribución | distribute_posts.py genera las carpetas post_pronti/ listas para cada plataforma e idioma |
| 5. Publicación | publishers dedicados para FB, YT, IG, TikTok, LinkedIn |
Cada canción sale en cuatro idiomas — italiano, francés, inglés, español — porque la diáspora haitiana en Europa, Norteamérica y Canadá habla todos estos idiomas, a menudo dentro de la misma familia.
Automático en todo lo que es seguro hacerlo
Facebook, YouTube e Instagram están completamente automatizados en una Raspberry Pi con una cola local, programados vía cron escalonados para no solaparse. Pero "automatizarlo todo" no fue el objetivo — lo fue "automatizar todo lo que la plataforma permite hacer con seguridad".
Instagram fue el rompecabezas más interesante. La Graph API exige una URL pública para los medios, y cada intento obvio topó con un muro distinto: un Google Drive personal con la cuota agotada, un servicio de hosting temporal bloqueado por el firewall local, ngrok bloqueado por una inspección TLS. La solución final fue la más sencilla: un repositorio de GitHub público dedicado que aloja solo los vídeos renderizados, servido vía raw.githubusercontent.com. Sin depender de cuotas ni de servicios de terceros inestables.
Dónde elegí no automatizar
TikTok y LinkedIn siguen semi-asistidos, y no por un límite técnico que no logré resolver — por elección.
TikTok bloquea el inicio de sesión automático (detección anti-bot en las cookies de sesión), pero no bloquea la navegación una vez iniciada sesión manualmente. La pipeline usa por tanto una sesión persistente de Playwright, abierta con un login humano puntual, para rellenar la caption y publicar sin tener que volver a iniciar sesión cada vez.
LinkedIn es un caso distinto: aquí el límite no es técnico sino de política de uso. LinkedIn prohíbe explícitamente el uso de bots para publicar y suspende cuentas — especialmente perfiles personales como el de Guerda, no páginas de empresa — de forma más agresiva que otras plataformas. Construí un sistema "solo composición": el script abre el editor, pega la caption, verifica que se haya introducido correctamente, y luego se detiene y espera a que sea una persona quien haga clic en "Publicar". No es un compromiso técnico, es una decisión de riesgo: incluso una publicación por semana hecha por un bot seguiría siendo automatización no permitida, independientemente del volumen.
Automatizar todo lo que se puede no significa automatizar todo lo que técnicamente se podría hacer. El clic final en "Publicar", en LinkedIn, siempre sigue siendo humano — por elección, no por un bug que no logré resolver.
Un fork, no un proyecto desde cero
Técnicamente Guerda Music es un fork independiente de la suite de Bachata Vibes Music: misma cuenta de Suno compartida, misma Raspberry Pi para la publicación, misma máquina Windows con GPU para el renderizado con FFmpeg. Carpetas aisladas, trackers separados, pero infraestructura reutilizada — construir el segundo proyecto artístico costó una fracción del tiempo del primero.
Qué añadiría
Una vez completada la verificación de identidad que exige LinkedIn para reactivar la publicación vía API en la página de empresa, y un historial de captions para no repetir nunca la misma estructura de texto en canciones consecutivas del mismo idioma.