[ <- RETOUR ]

┤ 02 / 06 :: SHORTZ ├

Shortz

Studio vidéo IA : un sujet devient un short vertical (script, voix off, sous-titres karaoké, montage) relu puis publié sur YouTube, Instagram et TikTok.

shortz.kreio.fr ->

Stack

  • Bun
  • Hono
  • React
  • Playwright
  • ffmpeg
  • Gemini
  • Deepgram

Ce que j'ai fait

Shortz transforme un sujet en short vertical prêt à publier : script, voix off, sous-titres karaoké, captures, musique et montage. L'idée de départ : un dépôt GitHub tendance devient une vidéo de 30 secondes. Le studio sait maintenant partir d'un article ou d'un sujet libre.

Rien n'est publié sans relecture. Chaque scène reste modifiable, puis la vidéo part sur YouTube, Instagram et TikTok en un clic par plateforme. Les statistiques reviennent dans le studio, et les angles qui font des vues orientent les scripts suivants.

Monorepo Bun : API Hono, studio React, et des packages partagés (schémas, composition, pipeline, publication, stockage). Les composants React de composition servent à la fois à la prévisualisation et au rendu headless : ce que l’on voit dans le studio est exactement ce qui est rendu.

shortz :: pipeline
shortz :: tiktok.mp4▶ 00:00

One command steals a site’s whole

tree shortz

shortz/

├──

│ ├── api # Hono

│ └── web # React + Vite

├──

│ ├── core # Zod

│ ├── composition # preview = render

│ ├── pipeline # Playwright, ffmpeg

│ ├── publishers # YouTube, IG, TikTok

│ └── storage # local / S3

└── docker-compose.yml

shortz :: stats

103 commits en 3 semaines

31 fichiers de tests

50s rendu de 32 s de vidéo

>> Points techniques

  • Cache de la couche d’overlays en vidéo alpha FFV1, indexé par le hash de la page de rendu : rendu passé de 2 min 41 à 50 s pour 32 s de vidéo.
  • verifyRender() contrôle chaque MP4 (pistes, durée, son non silencieux) : un rendu raté est supprimé au lieu d’arriver en relecture.
  • GIF découpés en frames indexées sur le temps : rendu déterministe, plus de frames blanches dues à la course entre seek et capture.
  • File de jobs persistée en base, progression en direct par SSE, annulation, un seul job à la fois par projet.
  • Multi-workspaces isolés (OIDC, AsyncLocalStorage, rôles), secrets chiffrés en AES-256-GCM, garde SSRF sur les URL saisies.
  • Couverture de tests imposée en CI, déploiement Docker Compose sur Coolify avec Ollama en local.