Édition #3 · 3 août 2026
Mode manuel : la zone n’est pas le clip
Sur une URL en mode manuel, j’avais choisi une durée cible 60–90 s. Le rendu est sorti à 1 min 45 — 105 secondes. Hors plage. Absurde. Mon hypothèse : le système ne choisissait plus un moment dans la fenêtre, il rendait toute la plage timeline. C’était ça.
En une phrase
En mode manuel sur une URL, tu choisis une zone de recherche + une durée cible. Upcut y cherche un bon moment — il ne te livre plus toute la plage comme un seul clip géant.
01 — Le moment où ça cloche
60–90 à l’écran. 1:45 dans le fichier.
Le déclic n’est pas venu d’un log obscur. Il est venu d’une vidéo courte, banale à tester : durée cible 60–90 secondes. Le clip livré faisait 1 minute 45 — cent cinq secondes. Impossible si le pipeline respectait vraiment la plage choisie.
Quand un chiffre sort clairement hors de la case que tu as cochée, tu arrêtes de blâmer le « feeling » du rendu. Tu regardes le contrat produit : est-ce qu’on coupe un moment, ou est-ce qu’on exporte la fenêtre entière ?
→ 105 s > 90 s. Une seule observation, et l’hypothèse devient prioritaire.
02 — L’hypothèse
Pas une durée auto. Tout le segment.
L’intuition : en manuel URL, on ne cherchait plus un clip « dans » la timeline. On prenait la plage sélectionnée telle quelle — début → fin — et on la rendait d’un bloc. Sous-titres, format, le packaging habituel… mais zéro sélection de moment à l’intérieur.
Ça peut sembler proche de l’upload (où l’extrait exact a du sens : tu as déjà tranché le contenu). Sur une VOD YouTube / Twitch, c’est autre chose : la fenêtre sert à dire « cherche ici », pas « livre-moi ces sept minutes en vertical ».
- Si la fenêtre = le clip, une cible 60–90 ne peut jamais sortir 105 s… sauf si on ignore la cible
- Les logs confirment ensuite : skip detectMoments → 1 clip = toute la plage
- Upload garde l’extrait exact ; URL manuel ne doit pas copier ce comportement
→ Hypothèse validée. Le bug n’était pas « l’IA choisit mal » — c’était « l’IA ne choisit plus ».
03 — Pourquoi c’était arrivé
Aligner URL sur upload… un cran trop loin
On avait voulu simplifier : dès que l’utilisateur désigne le contenu (upload, ou plage manuelle), traiter tel quel — sans chasse aux « meilleurs moments ». Juste pour l’upload, c’est le bon modèle.
En étendant la même règle au manuel URL, on a cassé le produit. La timeline est devenue un trim brutal, plus une zone de recherche. D’où des clips aussi longs que la fenêtre, durée cible ou pas.
→ Même bouton « Manuel », deux contrats : upload = extrait ; URL = zone + durée.
04 — Le correctif
Zone + durée. Et un plafond dur.
Retour au modèle clair. URL manuel : tu poses une zone (où chercher), tu choisis une durée cible (15–30 … 90–120). Upcut relance la détection de moments dans cette zone uniquement, puis borne chaque clip à duration_max — jamais plus long que ce que tu as demandé.
Upload manuel : inchangé. La plage reste l’extrait exact. Pas de sélecteur de durée « pour décorer » : le fichier (ou la coupe) est déjà le brief.
- Fenêtre URL ≥ durée max choisie (sinon la zone ne peut pas contenir le clip)
- Clamp serveur : fin = début + duration_max si jamais ça déborde
- Copy UI : « zone à analyser » vs « extrait à traiter » selon le mode
→ Un 60–90 reste un 60–90. Plus de 1:45 fantôme hors plage.
05 — Ce que tu ressens
Manuel utile à nouveau
Sur une longue VOD, tu cadrés les dix minutes qui comptent, tu choisis 60–90, tu lances. Tu reçois des clips dans la bonne fourchette — pas un pavé vertical de toute la zone.
Et si tu uploades déjà le bon extrait : tu gardes le rendu fidèle, sans détour IA.
→ Le mode manuel redevient un outil de précision, pas un export de timeline déguisé.
Chronologie express
- 03/08Symptôme : clip 105 s pour une cible 60–90
- 03/08Hypothèse : skip detectMoments → 1 clip = toute la fenêtre
- 03/08URL manuel = zone + durée cible + clamp duration_max
- 03/08Upload manuel = extrait exact (inchangé)
- 03/08Copy & validation API alignées sur les deux contrats
Pour les curieux
Sous le capot, sans jargon inutile
backend-clips : detectMoments réservé hors upload ; clamp end ≤ start + duration_max sur les clips URL.
API start : min fenêtre URL manuel = duration_max ; upload manuel min 5 s.
UI dashboard : sélecteur de durée visible en manuel URL ; masqué en upload manuel.
Prêt à générer ?
Colle un lien YouTube ou Twitch — Gaming, talk ou podcast, les clips suivent ce que tu as lancé.