« Synchroniser des sous-titres avec Rust » est un projet pratique pour les personnes qui souhaitent transformer un vrai fichier sans en perdre le contenu. Le générique d'ouverture d'un court métrage a changé : tous les sous-titres doivent donc recevoir le même décalage temporel. Vous créerez un outil qui exporte une piste WebVTT lisible tout en préservant les sous-titres originaux, la vidéo et les résultats antérieurs.
Deux laboratoires guidés passent des calculs temporels avec contrôle de dépassement à la validation du fichier entier et à la création protégée de la sortie. Un défi combine ces techniques pour un autre film et un décalage dans le sens opposé. Chaque laboratoire démarre indépendamment avec son propre projet et ses fichiers préparés.
Ce que vous apprendrez
À la fin du cours, vous saurez :
- convertir des champs d'horodatage validés en millisecondes entières avec des multiplications et additions contrôlées ;
- décaler les deux bornes de chaque sous-titre d'une même valeur signée, en préservant la durée, l'ordre du fichier, le texte Unicode et multiligne complet, les chevauchements valides et les débuts simultanés ;
- traiter les entrées mal formées ou non prises en charge, les temps négatifs après décalage et les dépassements d'entiers avec des erreurs
Resultcontextualisées ; - valider et transformer toute la collection avant de créer une nouvelle sortie, refuser les chemins de sortie existants et conserver le travail antérieur lors d'une nouvelle tentative ;
- charger le vrai fichier exporté dans Preview, vérifier les repères visuels d'alignement publics, lire la vidéo avec sa véritable piste de sous-titres et télécharger les fichiers chargés.
À qui s’adresse ce cours
Ce cours s'adresse aux personnes prêtes à combiner des types de données et des opérations sur fichiers Rust déjà connus dans un petit outil de transformation aux erreurs récupérables.
Prérequis : Utilisation élémentaire du terminal et connaissance des structs, enums, Vec, Result, chaînes, lectures et écritures de fichiers, tests élémentaires et boucles en Rust. Build Your First Rust CLI est recommandé mais facultatif ; aucune connaissance de clap n'est requise.
Environnement d’apprentissage : LabEx fournit Terminal et Preview, un projet Rust préparé et des courts métrages synthétiques originaux muets, avec des cartes de scène visibles et des instants d'observation publics. L'analyseur, l'outil de mise en forme, l'interface de commandes et le lecteur de fichiers réels sont fournis. Les libellés de l'interface et les sorties des commandes restent en anglais.
Questions fréquentes
Vais-je écrire un analyseur complet de sous-titres ou transcrire une vidéo ?
Non. Le cours utilise un sous-ensemble défini de WebVTT en texte brut. Vous implémentez la conversion temporelle, le décalage d'un sous-titre puis de toute la collection et la protection de l'export. La prise en charge intégrale de WebVTT, la transcription, la traduction et l'encodage audio ou vidéo sont hors périmètre.
Une exécution corrigée peut-elle écraser un résultat antérieur ?
Non. Les chemins de sortie existants sont refusés. Vous apprenez à conserver un ancien résultat dans un répertoire de sauvegarde unique avant de recréer le nom requis. Un sous-titre invalide plus loin dans le fichier est refusé avant la création de la sortie, sans laisser un export partiel.
Combien de temps faut-il prévoir ?
L'auteur estime la durée à 140 minutes, lecture, vérifications visuelles et récupération après des erreurs courantes comprises. Cette estimation n'a pas été validée lors d'un parcours avec des débutants.

