

# Chronometrica ou Clockworks pour le texte des transcriptions TikTok et les segments horodatés

Choisissez Chronometrica si votre jeu de données exige le texte des sous-titres natifs de TikTok et des segments horodatés dans chaque ligne de résultat. Choisissez Clockworks si les sous-titres téléchargeables ou la transcription automatique en option comptent davantage. Ce choix repose sur les spécifications de sortie vérifiées de ces outils. Il ne prouve aucune différence de fiabilité. [Spécifications de Chronometrica](https://apify.com/chronometrica/tiktok-transcript-scraper), [spécifications de Clockworks](https://apify.com/clockworks/tiktok-transcript-extractor).

La question centrale est de savoir ce que votre programme doit recevoir ensuite. A-t-il besoin de texte et de temps prêts à être chargés depuis une ligne ? Ou attend-il un fichier de sous-titres ?

Un Actor est un programme hébergé de collecte de données. Une API permet aux programmes d’échanger des données. Ici, un segment horodaté désigne du texte de sous-titres associé à des temps de début et de fin en secondes. Un segment intégré contient ces valeurs directement dans la ligne de résultat.

Ce guide compare ces modes de chargement. Il explique aussi comment vérifier les sous-titres manquants, les langues demandées et les temps des segments avant d’allonger la liste des entrées.

## Choisissez la sortie dont votre programme a besoin

Partez du programme qui lira le résultat. Le format d’entrée dont il a besoin doit guider votre choix.

| Sortie requise | Outil adapté selon les vérifications |
| --- | --- |
| Texte des sous-titres natifs et tableaux de segments dans les lignes de résultat | Chronometrica |
| Sous-titres natifs téléchargeables avec horodatage | Clockworks |
| Texte généré en option lorsque les sous-titres natifs sont absents | Clockworks |

Chronometrica documente les champs intégrés `text` et `segments`. Chaque segment contient `startSeconds`, `endSeconds` et `text`. Cette structure convient à un programme qui attend des valeurs nommées en JSON, un format de données structuré avec des champs et des listes. [Spécifications de Chronometrica](https://apify.com/chronometrica/tiktok-transcript-scraper).

Clockworks documente des liens vers les sous-titres natifs dans `videoMeta.subtitleLinks`. Les fichiers VTT natifs conservent l’horodatage. Son champ facultatif `transcriptionLink` fournit une transcription automatique de la parole ; la transcription TXT générée contient un texte continu sans segments horodatés. VTT est un format de fichier de sous-titres. [Spécifications de Clockworks](https://apify.com/clockworks/tiktok-transcript-extractor).

Cette différence compte au moment où les données collectées entrent dans votre système. Un résultat peut contenir des informations utiles et nécessiter tout de même une étape de chargement avant que votre programme puisse les utiliser.

Décrivez cette étape avant de choisir. Si votre table doit comporter une colonne de début de segment, une colonne de fin de segment et une colonne de texte des sous-titres, vérifiez comment ces valeurs y seront chargées. Le nom du produit ne suffit pas à répondre à cette question.

## Définissez ce qui constitue un texte exploitable

Les sous-titres natifs sont les pistes de sous-titres disponibles dans la vidéo source. Ils constituent le type de source décrit dans les spécifications de Chronometrica examinées ici. Un résultat de sous-titres obtenu avec succès ne garantit pas à lui seul que chaque mot prononcé est transcrit correctement. Indiquez clairement le type de source dans votre jeu de données.

Avant de soumettre une URL, définissez vos critères d’acceptation. Ces critères indiquent à votre programme quels résultats il peut utiliser.

Par exemple, votre programme destinataire peut exiger tous les éléments suivants :

- Un résultat indiquant que les sous-titres natifs ont été obtenus avec succès.
- Une langue conforme aux exigences de l’étude.
- Le texte des sous-titres enregistré dans un champ de texte.
- Des limites de segments exprimées en secondes.
- Un lien vers l’entrée soumise et la vidéo.

Il s’agit d’exigences proposées pour les données, et non d’affirmations sur une extraction déjà effectuée. Adaptez-les à votre usage réel.

Déterminez si le texte complet suffit. Un index de recherche peut avoir besoin d’une piste de sous-titres entière. Une analyse fondée sur le temps exige des segments distincts. Si vous avez besoin des 2, conservez les 2 formes au lieu de tenter de reconstituer ensuite les limites des segments à partir du texte assemblé.

Déterminez aussi comment traiter un résultat sans succès à l’étape suivante. Il peut nécessiter un examen humain. Il peut être conservé dans une table d’audit. Il ne doit pas entrer dans l’analyse de texte comme s’il contenait une piste de sous-titres valide.

Cette décision préserve le sens de votre jeu de données. Un champ de sous-titres vide et une piste de sous-titres sans mots ne sont pas des faits équivalents. Vous devez vérifier le résultat avant de les traiter ainsi.

## Gardez chaque entrée soumise visible

Chronometrica renvoie une ligne de résultat pour chaque entrée soumise, y compris des résultats explicites sans succès. Ses champs documentés comprennent `inputIndex`, `inputUrl`, `videoId`, `videoUrl`, `languageCode`, `text`, `segments`, `status`, `statusReason`, `isBillable` et `scrapedAt`. [Spécifications de Chronometrica](https://apify.com/chronometrica/tiktok-transcript-scraper).

Cette structure est utile lorsque votre système doit rendre compte de toute la liste soumise. Vous pouvez conserver la référence de l’entrée et son résultat même lorsqu’aucun texte de sous-titres n’est disponible. Vous n’avez pas à déduire le résultat de l’absence d’un enregistrement réussi.

Les états de résultat publics comprennent `succeeded`, `no_public_captions`, `language_unavailable`, `duplicate_input` et `invalid_input`. Lisez l’état avant de charger le texte. Utilisez `statusReason` si vous avez besoin de plus de contexte sur le résultat renvoyé. [Spécifications de Chronometrica](https://apify.com/chronometrica/tiktok-transcript-scraper).

Gardez ces résultats distincts. Une langue demandée indisponible diffère d’une entrée sans sous-titres publics. Une entrée en double diffère aussi d’une nouvelle piste de sous-titres obtenue avec succès.

Ne remplacez pas tous les résultats sans succès par une valeur de texte vide en supprimant leur motif. Vous perdriez des informations nécessaires pour expliquer le jeu de données plus tard.

Une conception utile comporte 2 vues des mêmes données collectées. La première conserve tous les résultats renvoyés. La seconde contient uniquement les lignes qui respectent vos critères d’analyse de texte. Il s’agit d’une suggestion de conception en aval, et non d’une fonction supplémentaire de l’Actor.

Conservez les valeurs inconnues comme telles. Ne remplacez pas les temps manquants par 0. La valeur 0 correspond à un temps réel au début d’une vidéo. L’utiliser pour signaler une valeur manquante peut créer une fausse limite de segment.

## Vérifiez d’abord une seule entrée publique

Choisissez une vidéo publique pertinente pour le jeu de données prévu. Demandez la langue de sous-titres natifs dont vous avez besoin. Examinez ensuite le résultat renvoyé avant d’allonger la liste.

L’entrée suivante utilise le schéma public vérifié. L’URL illustre uniquement la structure de l’entrée. Elle ne prouve pas que cette vidéo dispose actuellement d’une piste de sous-titres.

```json
{
  "startUrls": [
    "https://www.tiktok.com/@hankgreen1/video/7047596209028074758"
  ],
  "preferredLanguages": [
    "en"
  ]
}
```

Vérifiez d’abord une seule entrée publique

Remplacez cette URL par celle de votre source publique pertinente. La liste `preferredLanguages` demande des langues de sous-titres natifs. Ici, `en` demande des sous-titres en anglais. Cette valeur ne demande pas de traduire une autre langue vers l’anglais. [Schéma d’entrée de Chronometrica](https://apify.com/chronometrica/tiktok-transcript-scraper/input-schema).

Chronometrica ne remplace pas les pistes manquantes par une traduction ou par une nouvelle transcription issue de la reconnaissance vocale. Vérifiez l’état renvoyé au lieu de supposer qu’une demande de sous-titres en anglais doit produire du texte en anglais. [Spécifications de Chronometrica](https://apify.com/chronometrica/tiktok-transcript-scraper).

Il existe aussi une Task publique pour les segments horodatés. Une Task est une configuration d’entrée enregistrée. Vous pouvez l’examiner comme point de départ, puis comparer son entrée à vos propres exigences. L’existence de cette configuration ne garantit pas la disponibilité actuelle des sous-titres pour la vidéo choisie. [Task de segments de transcription horodatés](https://apify.com/chronometrica/tiktok-transcript-scraper/examples/tiktok-timestamped-transcript-segments).

Une vérification limitée doit répondre à une question précise. Pour cette comparaison, une question utile est de savoir si votre programme destinataire peut lire les champs de segment requis directement dans une ligne obtenue avec succès. Ouvrir une page de résultat ne constitue que la première partie de cette vérification. Votre propre code de chargement doit aussi accepter les données.

## Préservez le sens des données lors du chargement

Si vous utilisez les données intégrées, conservez toute la ligne de résultat avant d’en créer une copie contenant uniquement le texte. Lisez ensuite `status`. Transmettez uniquement les résultats acceptés à l’étape d’analyse suivante.

Chargez `text` lorsque votre programme destinataire a besoin du texte complet des sous-titres. Chargez `segments` lorsqu’il a besoin de texte associé à des intervalles. Conservez les limites d’origine des segments et la langue renvoyée avec ces intervalles. Ces champs font partie de la sortie documentée de Chronometrica. [Spécifications de Chronometrica](https://apify.com/chronometrica/tiktok-transcript-scraper).

Si vous placez chaque segment dans une ligne distincte de la base de données, conservez un lien vers son résultat parent. Sinon, le texte du segment peut perdre sa référence d’entrée, sa langue ou le contexte de son résultat. Il s’agit d’un choix de stockage en aval. L’Actor n’a pas besoin de renvoyer la structure finale de votre base de données pour fournir un enregistrement source utile.

Pour les sous-titres natifs au format VTT, téléchargez le fichier et analysez ses blocs horodatés. Conservez le texte ainsi que les temps de début et de fin.

Quel que soit le mode de chargement, vérifiez l’unité de temps avant de calculer des durées ou de comparer un instant étudié à un intervalle. Les noms des champs, les valeurs stockées et les attentes de votre programme destinataire doivent concorder.

Ne fusionnez pas les segments simplement parce qu’un seul champ de texte est plus facile à stocker. Cette fusion peut être utile pour la recherche, mais elle supprime les limites des segments dans cette copie. Conservez la source horodatée à côté si vous avez besoin de ces limites plus tard.

Si vous utilisez une transcription automatique de la parole, identifiez-la séparément. Ne la présentez pas comme des sous-titres natifs récupérés.

## Un exemple fictif illustre le choix du mode de chargement

Cet exemple est fictif. Il ne s’agit ni d’une extraction réelle, ni d’un test comparatif, ni d’un résultat client.

Supposons que vous demandiez 3 vidéos. Pour 2 d’entre elles, des pistes de sous-titres natifs sont disponibles. La troisième renvoie un résultat signalant l’absence de sous-titres publics. Avec les données intégrées, vous obtenez 2 enregistrements prêts à l’emploi contenant du texte et des segments, ainsi qu’une ligne explicite sans succès.

Le traitement par fichiers pourrait charger 2 fichiers VTT et analyser leurs temps.

L’exemple garde la disponibilité des sous-titres constante. Il montre comment les mêmes pistes natives supposées sont intégrées dans un jeu de données en aval. Il ne montre pas qu’un produit trouve plus de sous-titres ou termine le travail plus vite que l’autre.

Supposons maintenant qu’un segment inventé contienne ces valeurs :

```json
{
  "startSeconds": 2.50,
  "endSeconds": 4.25,
  "text": "An invented caption for this example."
}
```

Un exemple fictif illustre le choix du mode de chargement

Sa durée est de `4.25 - 2.50 = 1.75` secondes. Un instant étudié à `3.00` secondes se trouve dans cet intervalle. Un instant étudié à `5.00` secondes ne s’y trouve pas.

Ce calcul permet une conclusion limitée : l’instant étudié se trouve dans l’intervalle du segment de sous-titres. Il ne situe pas chaque mot à un instant précis. Il n’explique pas non plus pourquoi les spectateurs ont regardé la vidéo, arrêté de la regarder ou interagi avec elle.

Conservez la ligne sans succès dans le jeu de données fictif. Ne lui attribuez pas un segment inventé avec un temps de début de 0. Ne traitez pas son texte manquant comme une preuve que la vidéo ne contient aucune parole.

Si votre programme destinataire exige les valeurs d’intervalle directement dans des lignes JSON, le résultat intégré répond à cette exigence. L’exemple permet de choisir un mode de chargement sans inventer de résultat de performance.

## Appliquez une méthode d’acceptation courte avant d’allonger la liste

Transformez la comparaison en une vérification d’acceptation limitée. Notez les critères à respecter, puis utilisez une entrée publique pertinente pour examiner le résultat réel.

1. Définissez la source et la structure requises. Précisez si votre programme destinataire a besoin de données issues de sous-titres natifs, du texte complet, de lignes horodatées ou d’un fichier. Nommez les champs requis.
2. Définissez la langue demandée pour les sous-titres natifs. Utilisez une langue adaptée à la tâche. N’incluez pas de traduction dans cette demande.
3. Lisez le résultat renvoyé. Conservez la référence de l’entrée soumise. Distinguez le succès, la langue indisponible, l’absence de sous-titres publics et les autres états renvoyés.
4. Chargez les valeurs requises. Vérifiez que votre programme destinataire peut lire les champs de texte et d’horodatage acceptés sans perdre leur lien.
5. Vérifiez le sens des valeurs temporelles. Confirmez l’unité avant toute soustraction ou vérification d’intervalle. Préservez les valeurs manquantes et les limites des segments.
6. Consignez la décision. Indiquez quel champ requis a satisfait au contrôle, quel résultat est apparu et ce qui reste inconnu avant d’allonger la liste.

Si vous exigez des données intégrées, formulez un critère d’acceptation concret : « Le programme destinataire peut lire `startSeconds`, `endSeconds` et le champ `text` des segments dans un résultat accepté. » Ce critère est plus utile que « la transcription semble bonne ».

Vérifiez la langue comme une condition distincte. Un résultat lisible peut tout de même ne pas respecter la langue requise. De même, le chargement réussi du texte complet ne prouve pas que votre code de chargement des segments fonctionne.

Gardez le résultat d’origine accessible pendant que vous examinez la copie chargée. Vous pouvez ainsi remonter d’une valeur manquante en aval à sa ligne source. Cela vous aide aussi à distinguer un résultat d’extraction d’une erreur dans votre propre code de chargement.

Si la piste native requise est indisponible, consignez ce constat. Ne modifiez pas le critère d’acceptation uniquement pour réussir cette vérification limitée. Déterminez si l’exigence elle-même peut changer, puis consignez explicitement ce changement.

## Ce que cette comparaison permet d’établir

La question publique observée porte sur une API stable pour le contenu TikTok. L’extrait historique conservé mentionne aussi des besoins de texte et d’horodatage. Il aide à définir le problème du lecteur, mais ne prouve la fiabilité d’aucun des 2 produits. [Question publique observée](https://www.reddit.com/r/smallbusiness/comments/1odqo5g/is_there_a_stable_api_to_get_tiktok_content/).

Les spécifications publiques utilisées ici ont été vérifiées le 20 octobre 2026. Elles étayent la comparaison des structures de sortie. Elles ne permettent pas de désigner un meilleur produit en matière de durée d’exécution, de prix, de disponibilité ou de fiabilité. Vérifiez de nouveau les spécifications en vigueur lorsque vous développez votre code de chargement.

Une étape de chargement plus simple peut être utile sans prouver que la collecte est plus rapide. Évaluez l’adéquation selon les exigences de votre programme destinataire et le résultat réel obtenu avec votre entrée de vérification.

Une fois que vous disposez de sous-titres horodatés adaptés, l’analyse du contenu devient une tâche distincte. Pour une méthode centrée sur les ouvertures de vidéos, consultez [le guide de codage des accroches TikTok](/fr/articles/codage-accroches-ouverture-tiktok/). Confirmez d’abord la source, la langue, le résultat et l’horodatage que votre analyse utilisera.

## Vérifiez un champ requis avant d’allonger la liste

Utilisez [Chronometrica TikTok Transcript Scraper](https://apify.com/chronometrica/tiktok-transcript-scraper) lorsque votre programme destinataire a besoin du texte des sous-titres natifs et de segments horodatés directement dans les lignes de résultat. Commencez par une entrée publique pertinente. Vérifiez son état, puis contrôlez un champ requis dans votre propre code de chargement avant d’allonger la liste.

Choisissez Clockworks si les sous-titres téléchargeables ou le texte généré en option répondent mieux à vos exigences. C’est la principale condition qui change la recommandation. [Spécifications de Clockworks](https://apify.com/clockworks/tiktok-transcript-extractor).

## Sources et lectures complémentaires

- [Spécifications de Chronometrica TikTok Transcript Scraper](https://apify.com/chronometrica/tiktok-transcript-scraper)
- [Schéma d’entrée de Chronometrica](https://apify.com/chronometrica/tiktok-transcript-scraper/input-schema)
- [Task Chronometrica de segments de transcription horodatés](https://apify.com/chronometrica/tiktok-transcript-scraper/examples/tiktok-timestamped-transcript-segments)
- [Spécifications de Clockworks TikTok Transcript Extractor](https://apify.com/clockworks/tiktok-transcript-extractor)
- [Schéma d’entrée de Clockworks](https://apify.com/clockworks/tiktok-transcript-extractor/input-schema)
- [Question publique sur une API TikTok stable](https://www.reddit.com/r/smallbusiness/comments/1odqo5g/is_there_a_stable_api_to_get_tiktok_content/)