
Un modèle est le programme qui rédige la réponse. La génération est cette étape de rédaction. La recherche trouve d’abord le texte. Le modèle est censé rédiger à partir de ce texte retrouvé. L’article de recherche à l’origine du RAG étaye l’association de la recherche et de la génération. Il ne définit pas de taille de bloc pour la vidéo. Il n’étaye pas le décompte fictif ci-dessous.
Certains développeurs se demandent s’il vaut mieux regrouper par durée ou par sens des sous-titres qui se répètent et passent brusquement d’un sujet à l’autre. Aucun de ces regroupements n’est le meilleur pour toutes les vidéos. Testez votre propre vidéo.
Obtenez une transcription horodatée
JSON est un format de données textuel. Il représente des données structurées sous forme de texte. L’indice d’une ligne de sous-titres est un repère attribué par le lecteur à une position originale dans le tableau segments. Les indices des lignes de sous-titres ne sont pas un champ de sortie garanti de l’Actor. Les tableaux pédagogiques numérotent les positions à partir de 1. La première position est 1. Ne modifiez pas la ligne de données originale. Enregistrez ces repères et leur traçabilité dans la copie de travail.
Un Actor est un programme de collecte de données qui s’exécute en ligne pour vous. Une Task est une configuration d’entrée enregistrée pour un Actor. Vous pouvez suivre cette méthode sans l’Actor si vous avez déjà des sous-titres. Si vous devez encore les obtenir, suivez le guide d’extraction des sous-titres YouTube. Cette page ne reprend pas ce travail.
Le collecteur public vérifié le 13 octobre 2026 était la version 0.1.43 de l’Actor. Lorsque la lecture des sous-titres réussit, cette version fournit des segments horodatés. Un segment est une ligne de sous-titres dans json. Une version ultérieure peut être différente. La date de vérification est la date d’observation. Ce n’est pas la date de publication d’une vidéo. La page de l’Actor est YouTube Transcript Scraper. La Task enregistrée est YouTube Transcripts for RAG Pipelines.
Voici la limite à respecter. La granularité désigne ce que représente une ligne de données. Dans la sortie de l’Actor, chaque ligne du jeu de données représente une vidéo distincte traitée avec succès. Une ligne du jeu de données est un enregistrement sauvegardé. Dans la table de blocs créée par le lecteur, chaque ligne représente un bloc. Un bloc n’est pas une ligne du jeu de données. Toutes les colonnes des blocs sont créées par le lecteur. L’Actor prend une URL directe de vidéo ou un identifiant de vidéo que vous connaissez déjà. Il ne trouve pas de vidéos pour vous. La Task renvoie json, text et llm. Utilisez json pour les références. Une référence associe la vidéo à la plage temporelle qui étaye une affirmation. Le résultat llm est llmText. llmText est du texte prêt à être inséré dans un prompt. Un prompt est le message que vous envoyez à un modèle. llmText ne remplace pas les horaires des segments.
L’Actor ne crée pas de blocs. Il ne crée pas d’embeddings. Il ne construit pas d’index. Un index est une structure enregistrée qui sert à la recherche. L’Actor ne recherche pas de passages. Il ne répond pas aux questions. Il n’attribue pas de score aux réponses. Vous effectuez le nettoyage, le regroupement et les tests à la main.
Conservez ces champs sources dans la ligne de données originale non modifiée.
| champ | élément à conserver |
|---|---|
| videoId | l’identifiant de la vidéo |
| videoUrl | l’URL directe de la vidéo |
| transcriptLanguageCode | le code de langue des sous-titres |
| isAutoGenerated | l’indication précisant si la piste est signalée comme automatique |
| segments | la liste des lignes de sous-titres |
| scrapedAt | la date et l’heure de collecte de cette ligne de données |
| status | l’état renvoyé par l’exécution |
Une piste est une version des sous-titres dans une langue donnée. Conservez ces champs dans chaque segment.
| champ | élément à conserver |
|---|---|
| startSeconds | le début de la ligne de sous-titres, en secondes |
| endSeconds | la fin de la ligne de sous-titres, en secondes |
| durationSeconds | la durée de la ligne de sous-titres, en secondes |
| text | les mots de la ligne de sous-titres |
Si preferredLanguages est vide, l’exécution sélectionne une piste de sous-titres disponible. Vérifiez transcriptLanguageCode. Une liste vide ne signifie pas que vous avez choisi la langue. Définissez une règle de langue avant d’ajouter une deuxième vidéo. Conservez isAutoGenerated avec la ligne de données. Automatique signifie que la piste est signalée comme produite par une machine. Les sous-titres automatiques peuvent répéter des lignes. Cette indication seule ne prouve pas que les mots sont erronés.
Les détails des entrées en échec figurent dans OUTPUT. Définissez includeFailedInputDetails pour que ces détails restent visibles. Une entrée en échec n’est pas une transcription ne contenant aucune ligne de sous-titres. N’écrivez pas 0 pour un horaire inconnu. Une véritable ligne de sous-titres peut commencer à 0 seconde. Une valeur inconnue et zéro sont des choses différentes. scrapedAt indique quand vous avez collecté la ligne de données. Il n’indique pas quand la vidéo a été publiée.
Une seule vérification des sous-titres ne prouve pas que les mots correspondent aux paroles. Elle ne prouve pas non plus que les sous-titres resteront disponibles. La Task vérifiée est seulement un point de départ. Elle contient des vidéos d’exemple. Remplacez-les par une vidéo publique de votre choix. La Task n’effectue ni nettoyage, ni regroupement, ni test.
Suivez 7 actions
Effectuez les actions dans l’ordre. Si vous regroupez avant de nettoyer, une répétition peut sembler être 2 faits. Si vous attribuez des scores avant de rédiger les questions, vous risquez de favoriser trop tôt un regroupement. Rédigez d’abord les questions. Utilisez ensuite ces mêmes questions pour les 2 regroupements.
- Enregistrez la ligne de données brute du collecteur exactement telle qu’elle a été reçue. Ne modifiez pas cette ligne. Ne changez pas la source brute. Créez une copie de travail pour le nettoyage et le regroupement. Enregistrez dans cette copie les repères que vous attribuez aux positions originales du tableau. Conservez l’identifiant de la vidéo, son URL, le code de langue et scrapedAt. Conservez status et isAutoGenerated.
- Lisez les lignes de sous-titres voisines lorsque leurs plages temporelles se chevauchent. Des mots identiques peuvent provenir de sous-titres à défilement. Dans ce cas, une même phrase prononcée apparaît de nouveau dans la ligne suivante. Supprimez la ligne supplémentaire uniquement lorsque les sous-titres et la lecture de la vidéo montrent que la phrase n’a été prononcée qu’une fois. Lisez ce moment dans une véritable vidéo en utilisant l’accès à un passage par une ligne de sous-titres YouTube. Des mots identiques ne constituent pas une preuve à eux seuls. Conservez une phrase répétée oralement pour insister. Conservez une instruction répétée. Ne supprimez pas toutes les phrases identiques de la vidéo. Notez les numéros des lignes de sous-titres originales qui justifient la modification.
- Placez une affirmation avec sa condition. Placez un exemple avec l’affirmation qu’il illustre. Placez une opposition avec l’affirmation dont elle limite la portée. Conservez une question avec sa réponse. Privilégiez un passage court et complet. Ne coupez pas à un nombre arbitraire de secondes. Ne coupez pas à un nombre arbitraire de mots. Vous pouvez diviser un très long passage à un véritable changement de sujet. Vérifiez ensuite qu’une limite nécessaire n’a pas été laissée dans l’autre partie.
- Créez une ligne de données par bloc. Les colonnes sont chunk_id, source_video_id, source_url, language, start_seconds, end_seconds, original_cue_indices, text et cleaned_text_version. start_seconds est le début le plus précoce des lignes de sous-titres du bloc. end_seconds est la fin la plus tardive des lignes de sous-titres du bloc. Appelez cette paire la plage du passage. Une plage de passage peut couvrir un silence ou un intervalle sans sous-titres. Un tel intervalle ne signifie pas que chaque seconde contenait des paroles. Si vous faites se chevaucher des blocs pour conserver du contexte, enregistrez ce chevauchement. Comptez une seule fois les éléments justificatifs répétés.
- Avant toute recherche, rédigez 3 à 5 questions. Rédigez une réponse étayée par la source pour chaque question. Repérez chaque élément nécessaire à la réponse. Un élément est une partie indispensable de la réponse. Un mot-clé commun ne suffit pas. Incluez une question pour laquelle les sous-titres ne fournissent aucun élément justificatif.
- Utilisez les mêmes questions pour les 2 regroupements. Notez le nombre de blocs à sélectionner avant d’examiner les résultats. Utilisez ce même nombre pour les 2 regroupements. Cet exemple pédagogique utilise 1 bloc. Notez l’identifiant du bloc que vous sélectionnez. Notez si ce bloc contient la réponse complète et ses conditions. Notez si la référence renvoie au bon passage. Une personne peut effectuer ces vérifications par simple lecture. Ne prétendez pas avoir exécuté une recherche par embeddings si vous avez seulement lu le texte.
- Conservez le regroupement le plus simple qui contient encore le contexte nécessaire. Ses horaires doivent aussi rester clairs. Un bloc plus court n’est pas meilleur si un élément nécessaire a disparu. Ne faites pas état d’un gain général à partir d’un très petit ensemble. Si la source ne fournit aucun élément justificatif, dites qu’elle ne permet pas de répondre. Ne comblez pas ce manque avec un récit vraisemblable.
Appliquez les actions à des lignes de sous-titres fictives
Les lignes de sous-titres de cette section sont un texte pédagogique fictif. VID-DEMO-01 n’est pas un véritable identifiant YouTube. Ne le recherchez pas. Le texte français affiché traduit des sous-titres sources fictifs en anglais. La cellule de langue indique donc en, la langue des sous-titres sources. Dans une véritable ligne de données, il faut recopier transcriptLanguageCode depuis la source. Il n’y a ni véritable URL ni date de publication.
| ligne de sous-titres | start_seconds | end_seconds | text |
|---|---|---|---|
| 1 | 0 | 6 | Enregistrez les documents par identifiant de source. |
| 2 | 5 | 9 | Enregistrez les documents par identifiant de source. |
| 3 | 9 | 15 | Conservez une version quand la source change. |
| 4 | 15 | 22 | Une nouvelle version n’est pas une nouvelle source. |
| 5 | 22 | 29 | Supprimez un import en double strictement identique uniquement si l’identifiant de source et la version correspondent. |
| 6 | 29 | 36 | Conservez les différentes versions, car le texte peut changer. |
La ligne de sous-titres 1 va de 0 à 6 secondes. Ce 0 est un véritable début. Il ne remplace pas une valeur inconnue. La ligne 2 va de 5 à 9 secondes. Les 2 plages se chevauchent. Les mots sont identiques. Cela ne prouve toujours pas que la phrase n’a été prononcée qu’une fois. Dans cet exemple inventé, une vérification par lecture de la vidéo le prouve. La ligne 2 reprend la même phrase prononcée que la ligne 1. Supprimez la ligne 2 du texte de travail. Conservez les numéros 1 et 2 pour assurer la traçabilité de cette modification. Laissez les 6 lignes de sous-titres dans la ligne de données source non modifiée.
La ligne de sous-titres 6 ne correspond pas au même moment de parole que la ligne 2. La ligne 6 donne une raison de conserver les différentes versions. Elle reste. Ne supprimez pas toutes les idées répétées dans la vidéo.
Les 2 regroupements ci-dessous utilisent cette copie de travail. Le nettoyage est commun aux 2. La comparaison porte sur les limites des blocs, pas sur 2 règles de nettoyage. cleaned_text_version est votre propre repère. Ce n’est pas un champ de l’Actor. Ici, le repère est clean-1. La ligne de sous-titres 2 reste dans la liste des numéros partout où son ancienne plage temporelle est couverte. Sa phrase n’est pas recopiée.
Le regroupement temporel découpe le texte aux limites des courtes lignes de sous-titres.
T1 couvre les lignes de sous-titres 1, 2 et 3, de 0 à 15 secondes. Son texte nettoyé est : « Enregistrez les documents par identifiant de source. Conservez une version quand la source change. »
T2 correspond à la ligne de sous-titres 4, de 15 à 22 secondes. Son texte est : « Une nouvelle version n’est pas une nouvelle source. »
T3 correspond à la ligne de sous-titres 5, de 22 à 29 secondes. Son texte est : « Supprimez un import en double strictement identique uniquement si l’identifiant de source et la version correspondent. »
T4 correspond à la ligne de sous-titres 6, de 29 à 36 secondes. Son texte est : « Conservez les différentes versions, car le texte peut changer. »
Le regroupement sémantique conserve chaque affirmation avec sa limite. M1 porte sur ce qui identifie un document et sur ce que signifie un changement. M2 porte sur les cas où un import en double peut être supprimé. Il s’agit d’un véritable changement de sujet.
M1 couvre les lignes de sous-titres 1, 2, 3 et 4, de 0 à 22 secondes. La ligne 2 sert uniquement à la traçabilité. Les phrases conservées sont : « Enregistrez les documents par identifiant de source. Conservez une version quand la source change. Une nouvelle version n’est pas une nouvelle source. »
M2 couvre les lignes de sous-titres 5 et 6, de 22 à 36 secondes. Les phrases conservées sont : « Supprimez un import en double strictement identique uniquement si l’identifiant de source et la version correspondent. Conservez les différentes versions, car le texte peut changer. »
La plage de 0 à 22 secondes est une plage de passage. Elle utilise le début le plus précoce et la fin la plus tardive. Elle ne signifie pas que chaque seconde contenait des paroles. M1 se termine à 22 secondes. M2 commence à 22 secondes. Ils ont une limite commune. Ils n’ont aucune phrase commune. Si vous faites ensuite se chevaucher des blocs volontairement, enregistrez ce chevauchement. Comptez une seule fois les éléments justificatifs répétés.
Ces 2 lignes issues du regroupement sémantique constituent la table de blocs qui réussit le test fictif ci-dessous.
| chunk_id | source_video_id | source_url | language | start_seconds | end_seconds | original_cue_indices | text | cleaned_text_version |
|---|---|---|---|---|---|---|---|---|
| M1 | VID-DEMO-01 | aucune, exemple fictif | en | 0 | 22 | 1, 2, 3, 4 | Enregistrez les documents par identifiant de source. Conservez une version quand la source change. Une nouvelle version n’est pas une nouvelle source. | clean-1 |
| M2 | VID-DEMO-01 | aucune, exemple fictif | en | 22 | 36 | 5, 6 | Supprimez un import en double strictement identique uniquement si l’identifiant de source et la version correspondent. Conservez les différentes versions, car le texte peut changer. | clean-1 |
Les lignes issues du regroupement temporel constituent l’ensemble de comparaison. Ce n’est pas la table retenue.
| chunk_id | source_video_id | source_url | language | start_seconds | end_seconds | original_cue_indices | text | cleaned_text_version |
|---|---|---|---|---|---|---|---|---|
| T1 | VID-DEMO-01 | aucune, exemple fictif | en | 0 | 15 | 1, 2, 3 | Enregistrez les documents par identifiant de source. Conservez une version quand la source change. | clean-1 |
| T2 | VID-DEMO-01 | aucune, exemple fictif | en | 15 | 22 | 4 | Une nouvelle version n’est pas une nouvelle source. | clean-1 |
| T3 | VID-DEMO-01 | aucune, exemple fictif | en | 22 | 29 | 5 | Supprimez un import en double strictement identique uniquement si l’identifiant de source et la version correspondent. | clean-1 |
| T4 | VID-DEMO-01 | aucune, exemple fictif | en | 29 | 36 | 6 | Conservez les différentes versions, car le texte peut changer. | clean-1 |
Les questions ont été fixées avant l’évaluation des regroupements. Le nombre de blocs à sélectionner a aussi été fixé. Il est de 1 bloc. La sélection est manuelle. Aucune recherche par embeddings n’a été exécutée. Aucune base de données n’a été utilisée.
Question 1 : Qu’est-ce qui identifie un document, et que se passe-t-il quand il change ? La réponse nécessite 3 éléments. Le document est lié à un identifiant de source. Un changement implique de conserver une version. Une nouvelle version n’est pas une nouvelle source.
Question 2 : Quand peut-on supprimer un import en double, et pourquoi conserver les autres versions ? La réponse nécessite 2 éléments. Supprimez-le uniquement si l’identifiant de source et la version correspondent. Conservez les autres versions, car le texte peut changer.
Question 3 : Combien de dollars coûte le stockage ? Aucune ligne de sous-titres ne donne de coût en dollars. La source ne permet pas de répondre.
Dans cette comparaison manuelle inventée, le choix pour la question 1 est T1 pour le regroupement temporel et M1 pour le regroupement sémantique. T1 contient l’identifiant de source et l’élément sur la conservation d’une version. T1 s’arrête à 15 secondes : il lui manque donc la ligne de sous-titres 4. Sans la ligne 4, une nouvelle version peut être prise à tort pour un nouveau document. Cette opposition constitue la condition. M1 conserve les 3 éléments. La ligne 4 seule échouerait aussi, car il lui manque l’identifiant de source et l’élément sur la conservation d’une version. Aucun bloc temporel ne contient à lui seul les 3 éléments. Réunir T1 et T2 permettrait de les rassembler, mais cela reviendrait à appliquer une règle à 2 blocs. Ce test n’utilise pas de règle à 2 blocs.
Dans cette comparaison manuelle inventée, le choix pour la question 2 est T3 pour le regroupement temporel et M2 pour le regroupement sémantique. T3 contient la règle de suppression. Il lui manque la raison. Cette raison est que le texte peut changer. Sans elle, la règle de suppression semble avoir une portée plus large que celle enseignée. T4 contient la raison, mais pas la règle de correspondance. Aucun bloc temporel ne contient à lui seul les 2 éléments. M2 les contient tous les 2.
Aucun bloc ne contient d’élément qui étaye une réponse à la question 3. Un bloc qui mentionne le stockage n’indique toujours pas de prix. Pour les 2 regroupements, il faut signaler l’absence d’éléments justificatifs. La réponse indique que la source ne permet pas de répondre.
| question | réponse possible | éléments nécessaires | bloc temporel sélectionné | bloc temporel complet | bloc sémantique sélectionné | bloc sémantique complet | plage de référence en secondes |
|---|---|---|---|---|---|---|---|
| Q1 | oui | identifiant de source ; conserver une version quand la source change ; une nouvelle version n’est pas une nouvelle source | T1 | non | M1 | oui | 0-22 |
| Q2 | oui | correspondance de l’identifiant de source et de la version ; le texte peut changer | T3 | non | M2 | oui | 22-36 |
| Q3 | non | aucun coût en dollars dans les lignes de sous-titres | aucun | sans élément justificatif | aucun | sans élément justificatif | aucune |
Ces plages de référence contiennent des moments distincts.
| question | secondes | ligne de sous-titres | rôle |
|---|---|---|---|
| Q1 | 0-6 | 1 | identifiant de source, conservé dans le texte |
| Q1 | 5-9 | 2 | même phrase prononcée, texte supprimé, numéro de ligne conservé |
| Q1 | 9-15 | 3 | conserver une version quand la source change |
| Q1 | 15-22 | 4 | une nouvelle version n’est pas une nouvelle source |
| Q2 | 22-29 | 5 | supprimer un doublon uniquement si l’identifiant de source et la version correspondent |
| Q2 | 29-36 | 6 | conserver les autres versions, car le texte peut changer |
Ici, un score est le nombre de vérifications réussies. L’étayage complet ne porte que sur les questions auxquelles la source permet de répondre.
Étayage complet = questions auxquelles la source permet de répondre et dont le bloc sélectionné contient tous les éléments nécessaires / questions auxquelles la source permet de répondre
Regroupement temporel = 0/2
Regroupement sémantique = 2/2
L’abstention signifie que vous ne répondez pas. Le décompte de l’abstention porte uniquement sur la question pour laquelle les sous-titres ne fournissent aucun élément justificatif.
Abstention = refus corrects de répondre / questions sans élément justificatif = 1/1
N’ajoutez pas 1/1 au 2. La vérification de l’absence d’éléments justificatifs est distincte.
Ces fractions concernent uniquement cette comparaison manuelle inventée. Elles ne constituent pas un test de référence des embeddings. Un test de référence fournirait un score mesuré. Elles ne représentent pas une amélioration mesurée de la qualité. Une amélioration de la qualité serait un gain démontré sur de véritables recherches. N’en déduisez pas de gain pour d’autres vidéos. Dans une autre vidéo, un court bloc temporel pourrait déjà contenir tous les éléments. Le regroupement le plus simple qui réussit le test pourrait alors être le regroupement temporel.
Une réponse fictive doit renvoyer à des éléments situés dans la plage conservée. Une personne chargée d’une vérification ultérieure contrôle la lecture de la vidéo. VID-DEMO-01 n’a pas de véritable page : l’étape de lecture est donc elle aussi fictive. Sur une véritable vidéo, utilisez l’accès à un passage par une ligne de sous-titres YouTube.
Réponse fictive à la question 1 : « L’identifiant de source identifie le document. Quand la source change, conservez une version. Une nouvelle version n’est pas une nouvelle source. » Référence : VID-DEMO-01, 0-22 secondes, lignes de sous-titres 1, 2, 3 et 4. Les éléments prononcés correspondent aux lignes 1, 3 et 4. La ligne 2 sert uniquement à garder une trace de la suppression.
Réponse fictive à la question 2 : « Supprimez un import en double strictement identique uniquement si l’identifiant de source et la version correspondent. Conservez les différentes versions, car le texte peut changer. » Référence : VID-DEMO-01, 22-36 secondes, lignes de sous-titres 5 et 6.
Réponse fictive à la question 3 : « La source ne permet pas de répondre. Aucune ligne de sous-titres n’indique de coût de stockage en dollars. » Il n’y a pas de plage de référence.
Avec la règle à 1 bloc, le regroupement sémantique est celui qui conserve le contexte nécessaire. Chaque réponse tient dans 1 bloc et les horaires restent clairs. Le regroupement temporel produit des blocs plus courts, mais il perd un élément. Pour ce cas inventé, conservez M1 et M2. Ne faites pas de ce choix une règle valable pour toutes les vidéos. Appliquez les mêmes 7 actions à votre propre fichier avant d’ajouter d’autres vidéos.
Sources et lectures complémentaires
Par Chronometrica · Mis à jour
Retour en haut ↑

