Ce que nous avons reconstruit après avoir choisi de nous concentrer
Le regard d’un développeur sur le travail peu spectaculaire derrière un premier export fiable : imports récupérables, modèle temporel partagé et aperçus conformes au rendu final.

Kevin Li

En juillet, nous avons volontairement réduit CaptionBolt. Nous avons cessé d’essayer d’être plusieurs produits vidéo IA à la fois pour revenir à une tâche : prendre une séquence déjà choisie et aider à la terminer avec des sous-titres.
La décision n’a pas produit un mois calme.
Elle a révélé chaque endroit où le parcours reposait sur une supposition : qu’un import finirait dans la même session, que deux moteurs comprendraient le temps de la même façon, que supprimer du texte et supprimer de la vidéo pouvaient partager une action, ou que l’image recherchée serait prête à la fin d’un seek.
Depuis, notre travail consiste surtout à supprimer ces suppositions.
Se concentrer rend la fiabilité visible
Avec de nombreux outils sans rapport, une panne semble isolée. Avec un parcours principal, la même panne bloque toute la promesse.
Notre chemin est volontairement court :
- Importer la séquence enregistrée.
- La transcrire et créer des sous-titres stylés.
- Vérifier le texte et le résultat.
- Ajuster au besoin cadrage, coupes ou éléments de finition.
- Exporter la version approuvée.
Les priorités deviennent plus simples. Tout ce qui empêche le premier export passe avant une nouvelle option. Tout ce qui peut modifier silencieusement mots, temps, cadrage ou média exige une décision visible et un retour possible.
Un import est une session durable
L’ancien modèle voyait l’import comme une requête avec une barre de progression. Cela fonctionne jusqu’à ce qu’un gros fichier rencontre une connexion instable, un ordinateur fermé ou un rechargement.
Nous avons reconstruit les imports autour de sessions durables. Le serveur réserve le travail, le navigateur envoie le fichier par parties et, à son retour, demande lesquelles existent déjà. Seules les parties manquantes repartent.
Le serveur est la source de vérité des sessions actives. Le stockage local peut accélérer le premier affichage, mais ne doit jamais être le seul registre. Dans le Dashboard, sélectionner exactement le même fichier permet de reprendre. Dans Transcripts, chaque session garde ses propres actions de reprise et d’annulation.
C’est de la plomberie technique. Pour l’utilisateur, une coupure réseau risque moins de transformer un long import en temps perdu.

Aperçu et export ont besoin du même contrat
Pour un outil vidéo, un aperçu convaincant ne suffit pas. Le fichier exporté doit raconter la même histoire.
Nous avons remplacé l’ancien chemin de composition par une couche FFmpeg et libass partagée. L’aperçu et l’export utilisent encore des technologies différentes, mais consomment la même configuration stricte, le même document de sous-titres, les mêmes polices, dimensions et décisions temporelles.
La composition par défaut réserve aussi moins de surprises. Resize désactivé, CaptionBolt conserve le cadrage source dans la limite de définition du forfait. Une vidéo horizontale ne devient pas verticale simplement parce que le 9:16 est fréquent sur les plateformes courtes.
Cette migration ne promet pas un export instantané. Préparation, durée, taille, charge et complexité comptent toujours. Le but était d’éliminer les divergences évitables et de fiabiliser progression, annulation, reprises et livraison finale.
Sous-titres et média ont besoin de vérités distinctes
L’un des bugs les plus difficiles commence par un raccourci raisonnable : utiliser les mots affichés pour définir le temps du média.
Il cesse de fonctionner dès qu’une phrase est modifiée.
CaptionBolt conserve désormais deux domaines. Les source words immuables contrôlent la parole, les coupes et l’alignement. Les caption words modifiables contrôlent l’affichage. Corriger un nom ne déplace pas l’audio suivant. Masquer une phrase dans Text Editor ne retire pas la vidéo. La suppression du média appartient à Clip.
Cette séparation sécurise aussi les modifications successives : chaque édition revient aux mots temporisés d’origine plutôt que de redistribuer sans cesse un minutage déjà modifié.
Un Clip simple exige tout de même de la précision
Nous ne voulions pas de timeline multipiste. Nous voulions raccourcir les bords, supprimer une plage intérieure et nettoyer au besoin les longues pauses sans désynchroniser les sous-titres.
Clip utilise une seule forme d’onde. Les poignées règlent les bords ; une suppression intérieure devient une couture restaurable ; les coupes automatiques de pauses ont un aspect distinct et se restaurent séparément. La tête de lecture reste différente.
Sous l’interface, le média conservé est compacté sur une sortie. Les source words sont affectés par temps, les sous-titres partiels sont reconstruits et Player comme export utilisent le même plan d’images. Une coupe dans un mot se place sur son bord ; dans le silence, elle garde une précision plus fine.
Ce sont de petites règles jusqu’à ce qu’elles divergent. Une image supprimée clignote alors, un sous-titre arrive en retard ou de minuscules arrondis s’accumulent.


Le rendu fait partie de l’expérience
La plupart des gens ne devraient jamais penser à un worker. Ils ressentent pourtant chacune de ses décisions.
Ils voient si une tâche s’annule, si une nouvelle tentative duplique le travail, si une livraison finale peut reprendre, si la police existe et si un système chargé affiche un vrai progrès ou invente un pourcentage.
Nous avons resserré ces contrats entre transcription et rendu. Une ancienne exécution ne peut écraser un résultat récent, la capacité est admise par compte et un échec terminal peut réconcilier les minutes réservées. Les environnements partagent le même exécuteur et le même contrat de polices ; les diagnostics distinguent file, préparation et transfert sans exposer la mécanique dans l’Editor.
Nous ne promettons ni attente nulle ni absence totale d’échec. Nous voulons que les erreurs soient limitées, observables et récupérables plutôt que mystérieuses.
Nous savons enfin expliquer le positionnement
Le travail d’ingénierie a changé notre façon de présenter le produit.
CaptionBolt s’adresse aux créateurs, spécialistes marketing et petites équipes qui ont déjà leur séquence, en particulier les vidéos guidées par la parole : face caméra, cours, démonstrations, entretiens, extraits de formation et mises à jour.
Le premier résultat place des sous-titres stylés sur le cadrage original. Resize, Clip, Cover, B-Roll, Headline, Logo, Progress Bar, Video presets enregistrés et Social posts sont disponibles lorsqu’ils aident. Ils ne constituent pas une checklist obligatoire.
L’IA prépare la première passe. La transcription se corrige, le cadrage peut rester Original, une coupe suggérée peut être refusée et le texte généré reste modifiable. La personne qui publie décide.
C’est la position de notre nouveau récit : la vidéo est déjà enregistrée ; CaptionBolt aide à la terminer sans imposer un éditeur complet.
La suite
Nos prochaines priorités renforcent le premier résultat au lieu d’allonger la navigation :
- imports, transcription, sauvegarde, export et récupération plus fiables ;
- meilleure segmentation et révision du texte plus rapide ;
- révision Clip facultative plus claire, sans prétendre avoir résolu les limites automatiques ;
- cohérence plus stricte entre aperçu et export ;
- réglages de marque et de finition réutilisables pour les publications fréquentes.
De nouvelles possibilités arriveront encore. Le test sera simple : aident-elles à terminer une séquence existante avec moins de décisions inutiles, tout en restant vérifiables et réversibles ?
Pour comprendre ce choix, lisez pourquoi nous avons réduit CaptionBolt. Découvrez aussi Sous-titres vidéo, le Text Editor ou le découpeur vidéo en ligne.


