

# Chronometrica vs Clockworks para texto de transcripciones y segmentos con tiempos de TikTok

Elige Chronometrica si tu conjunto de datos necesita texto de subtítulos nativos de TikTok y segmentos con tiempos dentro de cada fila de resultados. Elige Clockworks si te importan más los subtítulos descargables o la conversión opcional de voz a texto. Esta elección se basa en sus contratos de salida verificados. No demuestra una diferencia de fiabilidad. [Contrato de Chronometrica](https://apify.com/chronometrica/tiktok-transcript-scraper), [contrato de Clockworks](https://apify.com/clockworks/tiktok-transcript-extractor).

La pregunta clave es qué debe recibir el siguiente programa. ¿Necesita texto y tiempos listos para cargar desde una fila? ¿O espera un archivo de subtítulos?

Un Actor es un programa de recopilación de datos alojado en un servidor. Una API permite que los programas intercambien datos. Aquí, un segmento con tiempos es un texto de subtítulos vinculado a tiempos de inicio y fin en segundos. Que esté integrado en la fila significa que esos valores aparecen directamente dentro de la fila de resultados.

Esta guía compara esas opciones de carga. También muestra cómo comprobar la ausencia de subtítulos, los idiomas solicitados y los tiempos de los segmentos antes de ampliar una lista de entradas.

## Elige la salida que necesita tu siguiente programa

Empieza por el programa que leerá el resultado. La entrada que necesita debe guiar tu elección.

| Salida que necesitas | Opción adecuada según lo verificado |
| --- | --- |
| Texto de subtítulos nativos y listas de segmentos dentro de las filas de resultados | Chronometrica |
| Subtítulos nativos descargables con tiempos | Clockworks |
| Texto generado opcional cuando faltan subtítulos nativos | Clockworks |

Chronometrica documenta los campos `text` y `segments` integrados en la fila. Cada segmento contiene `startSeconds`, `endSeconds` y `text`. Esto sirve para un programa que espera valores con nombre en JSON, un formato de datos estructurados con campos y listas. [Contrato de Chronometrica](https://apify.com/chronometrica/tiktok-transcript-scraper).

Clockworks documenta enlaces a subtítulos nativos en `videoMeta.subtitleLinks`. Los archivos VTT nativos conservan los tiempos. Su campo opcional `transcriptionLink` proporciona una conversión de voz a texto generada; la transcripción TXT generada contiene texto continuo sin segmentos con tiempos. VTT es un formato de archivo de subtítulos. [Contrato de Clockworks](https://apify.com/clockworks/tiktok-transcript-extractor).

La diferencia importa cuando los datos recopilados entran en tu sistema. Un resultado puede contener información útil y aun así requerir un paso de carga antes de que tu programa pueda usarlo.

Anota ese paso antes de elegir. Si la tabla que necesitas tiene una columna de inicio del segmento, otra de fin del segmento y otra de texto de subtítulos, comprueba cómo llegarán esos valores a ella. El nombre de un producto por sí solo no responde a esa pregunta.

## Define qué texto se puede usar

Los subtítulos nativos son pistas de subtítulos disponibles en el vídeo de origen. Son el tipo de fuente que usa el contrato de Chronometrica que se analiza aquí. Obtener subtítulos con éxito no demuestra, por sí solo, que todas las palabras pronunciadas aparezcan correctamente. Identifica con claridad el tipo de fuente en tu conjunto de datos.

Antes de enviar una URL, define tus reglas de aceptación. Estas reglas indican a tu programa qué resultados puede usar.

Por ejemplo, el programa receptor puede necesitar todo lo siguiente:

- Un resultado satisfactorio de obtención de subtítulos nativos.
- Un idioma que cumpla el requisito del estudio.
- Texto de subtítulos guardado en un campo de texto.
- Límites de los segmentos expresados en segundos.
- Un vínculo con la entrada enviada y el vídeo.

Estos son requisitos de datos propuestos, no afirmaciones sobre una extracción ya realizada. Adáptalos a tu uso real.

Decide si basta con el texto completo. Un índice de búsqueda puede necesitar una pista completa de subtítulos. Una revisión basada en tiempos necesita segmentos separados. Si necesitas ambas formas, conserva las 2 en lugar de intentar reconstruir después los límites de los segmentos a partir del texto unido.

Decide también qué implica un resultado fallido para el siguiente paso. Puede necesitar una revisión humana. Puede conservarse en una tabla de auditoría. No debe pasar al análisis de texto como si contuviera una pista de subtítulos válida.

Esta decisión protege el significado de tu conjunto de datos. Un campo de subtítulos vacío y unos subtítulos que no contienen palabras no son hechos que puedas tratar como equivalentes sin comprobar el resultado.

## Mantén visible cada entrada enviada

Chronometrica devuelve una fila de resultados por cada entrada enviada, incluidos los resultados fallidos explícitos. Sus campos documentados incluyen `inputIndex`, `inputUrl`, `videoId`, `videoUrl`, `languageCode`, `text`, `segments`, `status`, `statusReason`, `isBillable` y `scrapedAt`. [Contrato de Chronometrica](https://apify.com/chronometrica/tiktok-transcript-scraper).

Esa estructura de filas resulta útil cuando tu sistema debe registrar lo ocurrido con toda la lista enviada. Puedes conservar la referencia de la entrada y su resultado aunque no haya texto de subtítulos disponible. No necesitas deducir un resultado a partir de la ausencia de un registro satisfactorio.

Los estados públicos de los resultados incluyen `succeeded`, `no_public_captions`, `language_unavailable`, `duplicate_input` e `invalid_input`. Lee el estado antes de cargar el texto. Usa `statusReason` cuando necesites más contexto sobre el resultado devuelto. [Contrato de Chronometrica](https://apify.com/chronometrica/tiktok-transcript-scraper).

Mantén estos resultados separados. Que un idioma solicitado no esté disponible es un resultado distinto de que una entrada no tenga subtítulos públicos. Una entrada duplicada también es un resultado distinto de la obtención satisfactoria de una nueva pista de subtítulos.

No conviertas todos los resultados fallidos en un mismo valor de texto vacío ni descartes el motivo. Eso eliminaría información que necesitarás para explicar después el conjunto de datos.

Un diseño útil ofrece 2 vistas de los mismos datos recopilados. La primera conserva todos los resultados devueltos. La segunda contiene solo las filas que cumplen tus reglas de análisis de texto. Este es un diseño sugerido para el procesamiento posterior, no una función adicional del Actor.

Conserva los valores desconocidos como desconocidos. No sustituyas los tiempos ausentes por 0. El 0 es un valor de tiempo real al inicio de un vídeo. Usarlo como marcador de un valor ausente puede crear un límite de segmento falso.

## Comprueba primero 1 entrada pública pequeña

Elige un vídeo público pertinente para el conjunto de datos que quieres crear. Solicita el idioma de subtítulos nativos que necesitas. Después, inspecciona el resultado devuelto antes de ampliar la lista.

La siguiente entrada usa el esquema público verificado. La URL solo ilustra la estructura de la entrada. No demuestra que este vídeo tenga una pista de subtítulos disponible en este momento.

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

Comprueba primero 1 entrada pública pequeña

Sustituye esa URL por una fuente pública pertinente para tu caso. La lista `preferredLanguages` solicita idiomas de subtítulos nativos. Aquí, `en` solicita subtítulos en inglés. No solicita traducir otro idioma al inglés. [Esquema de entrada de Chronometrica](https://apify.com/chronometrica/tiktok-transcript-scraper/input-schema).

Chronometrica no suple las pistas ausentes mediante traducción ni mediante un nuevo reconocimiento de voz. Comprueba el estado devuelto en lugar de suponer que una solicitud de inglés debe producir texto en inglés. [Contrato de Chronometrica](https://apify.com/chronometrica/tiktok-transcript-scraper).

También hay una Task pública de segmentos con marcas de tiempo. Una Task es una configuración de entrada guardada. Puedes inspeccionarla como punto de partida y después comprobar si su entrada cumple tu requisito. La existencia de esa configuración no demuestra que el vídeo elegido tenga subtítulos disponibles en este momento. [Task de segmentos de transcripción con marcas de tiempo](https://apify.com/chronometrica/tiktok-transcript-scraper/examples/tiktok-timestamped-transcript-segments).

Una comprobación pequeña debe responder a una pregunta concreta. Para esta comparación, una pregunta útil es si el programa receptor puede leer los campos de segmento necesarios directamente desde una fila con resultado satisfactorio. Abrir una página de resultados es solo la primera parte de esa comprobación. Tu propio programa de carga también debe aceptar los datos.

## Conserva el significado al cargar el resultado

Si usas datos integrados en la fila, conserva toda la fila de resultados antes de crear una copia que solo contenga texto. Después, lee `status`. Envía solo los resultados aceptados al siguiente paso del análisis.

Carga `text` cuando el programa receptor necesite el texto completo de los subtítulos. Carga `segments` cuando necesite texto vinculado a intervalos. Conserva los límites originales de los segmentos y el idioma devuelto junto con esos intervalos. Estos campos forman parte de la salida documentada de Chronometrica. [Contrato de Chronometrica](https://apify.com/chronometrica/tiktok-transcript-scraper).

Si guardas cada segmento en una fila separada de la base de datos, conserva un vínculo con el resultado al que pertenece. De lo contrario, el texto del segmento puede perder su referencia de entrada, su idioma o el contexto del resultado. Esta es una decisión de almacenamiento posterior. El Actor no necesita devolver la estructura final de tu base de datos para proporcionar un registro de origen útil.

Para un VTT nativo, descarga el archivo y analiza sus bloques con tiempos. Conserva el texto y los 2 límites de tiempo.

En cualquiera de los diseños de carga, comprueba la unidad de tiempo antes de calcular duraciones o comparar un instante de estudio con un intervalo. Los nombres de los campos, los valores guardados y lo que espera el programa receptor deben coincidir.

No unas los segmentos solo porque sea más fácil guardar un único campo de texto. Unirlos puede ser útil para las búsquedas, pero elimina los límites en esa copia. Conserva también la fuente con tiempos si vas a necesitar esos límites más adelante.

Si usas una conversión de voz a texto generada, identifícala por separado. No la llames subtítulos nativos recuperados.

## Un ejemplo ficticio muestra cómo decidir la carga

Este ejemplo es ficticio. No es una extracción en vivo, una prueba comparativa ni un resultado de un cliente.

Supongamos que solicitas 3 vídeos. Hay 2 con pistas de subtítulos nativos disponibles. El otro devuelve un resultado de ausencia de subtítulos públicos. En el flujo de trabajo con datos integrados en las filas, tienes 2 registros listos con texto y segmentos, y 1 fila explícita de resultado fallido.

El flujo de trabajo con archivos podría cargar 2 archivos VTT y analizar sus tiempos.

El ejemplo mantiene constante la disponibilidad de subtítulos. Muestra cómo las mismas pistas nativas supuestas entran en un conjunto de datos para su procesamiento posterior. No demuestra que un producto encuentre más subtítulos ni que termine antes el trabajo.

Ahora supongamos que 1 segmento inventado contiene estos valores:

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

Un ejemplo ficticio muestra cómo decidir la carga

Su duración es de `4.25 - 2.50 = 1.75` segundos. Un instante de estudio situado en `3.00` segundos está dentro de ese intervalo. Un instante de estudio situado en `5.00` segundos no lo está.

Ese cálculo respalda una afirmación limitada: el instante de estudio está dentro del intervalo de tiempo del segmento de subtítulos. No sitúa cada palabra en un tiempo exacto. Tampoco explica por qué los espectadores vieron el vídeo, dejaron de verlo o interactuaron con él.

Conserva la fila de resultado fallido en el conjunto de datos ficticio. No le asignes un segmento inventado con un tiempo de inicio de 0. No trates su texto ausente como prueba de que el vídeo no contiene voz.

Si el programa receptor necesita los valores del intervalo directamente en filas JSON, el resultado integrado en la fila cumple ese requisito. El ejemplo permite decidir cómo cargar los datos sin inventar un resultado de rendimiento.

## Usa un método breve de aceptación antes de ampliar la lista

Convierte la comparación en una pequeña comprobación de aceptación. Anota qué condiciones deben cumplirse y después usa 1 entrada pública pertinente para inspeccionar el resultado real.

1. Define la fuente y la estructura necesarias. Indica si el programa receptor necesita pruebas de subtítulos nativos, texto completo, filas con tiempos o un archivo. Especifica los campos necesarios.
2. Establece el idioma de subtítulos nativos solicitado. Usa un idioma que corresponda a la tarea. No incluyas la traducción en esta solicitud.
3. Lee el resultado devuelto. Conserva la referencia de la entrada enviada. Separa los resultados satisfactorios, el idioma no disponible, la ausencia de subtítulos públicos y los demás estados devueltos.
4. Carga los valores necesarios. Comprueba que el programa receptor pueda leer los campos aceptados de texto y tiempos sin perder la relación entre ellos.
5. Comprueba qué representan los tiempos. Confirma la unidad antes de hacer restas o comprobaciones de intervalos. Conserva los valores ausentes y los límites de los segmentos.
6. Registra la decisión. Indica qué campo necesario superó la comprobación, qué resultado apareció y qué sigue sin conocerse antes de ampliar la lista.

Si necesitas datos integrados en la fila, formula una condición de aceptación concreta: «El programa receptor puede leer `startSeconds`, `endSeconds` y el campo `text` del segmento desde un resultado aceptado». Eso es más útil que «la transcripción parece correcta».

Comprueba el idioma como una condición independiente. Un resultado legible puede incumplir el requisito de idioma. Del mismo modo, cargar el texto completo con éxito no demuestra que tu programa de carga de segmentos funcione.

Mantén disponible el resultado original mientras inspeccionas la copia cargada. Así podrás rastrear un valor ausente en el procesamiento posterior hasta su fila de origen. También te ayudará a distinguir un resultado de extracción de un error en tu propio código de carga.

Si la pista nativa necesaria no está disponible, registra ese hallazgo. No cambies la regla de aceptación solo para superar la pequeña comprobación. Decide si se puede cambiar el requisito en sí y después registra ese cambio de forma explícita.

## Qué puede demostrar esta comparación

La pregunta pública observada trata sobre una API estable para contenido de TikTok. El fragmento histórico guardado también menciona la necesidad de texto y marcas de tiempo. Ayuda a definir el problema del lector, pero no demuestra la fiabilidad de ninguno de los productos. [Pregunta pública observada](https://www.reddit.com/r/smallbusiness/comments/1odqo5g/is_there_a_stable_api_to_get_tiktok_content/).

Los contratos públicos usados aquí se verificaron el 20 de octubre de 2026. Respaldan la comparación de la estructura de salida. No establecen un ganador en tiempo de ejecución, precio, disponibilidad ni fiabilidad. Vuelve a comprobar el contrato vigente cuando implementes tu programa de carga.

Un paso de carga más sencillo puede ser útil sin demostrar que la recopilación sea más rápida. Evalúa si la opción es adecuada según lo que necesita el programa receptor y lo que devuelve realmente tu entrada de prueba pequeña.

Una vez que tengas datos adecuados de subtítulos con tiempos, el análisis de contenido pasa a ser una tarea independiente. Para conocer un método centrado en los inicios de los vídeos, consulta [la guía de codificación de ganchos de TikTok](/es/articles/codificar-ganchos-de-apertura-de-tiktok/). Primero confirma la fuente, el idioma, el resultado y los tiempos que usará tu análisis.

## Verifica 1 campo necesario antes de ampliar la lista

Usa [Chronometrica TikTok Transcript Scraper](https://apify.com/chronometrica/tiktok-transcript-scraper) cuando el programa receptor necesite texto de subtítulos nativos y segmentos con tiempos directamente dentro de las filas de resultados. Empieza con 1 entrada pública pertinente. Comprueba su estado y después verifica 1 campo necesario en tu propio programa de carga antes de ampliar la lista.

Elige Clockworks cuando los subtítulos descargables o el texto generado opcional se ajusten mejor a tu requisito. Esa sigue siendo la condición principal que cambia la recomendación. [Contrato de Clockworks](https://apify.com/clockworks/tiktok-transcript-extractor).

## Fuentes y lecturas adicionales

- [Contrato de Chronometrica TikTok Transcript Scraper](https://apify.com/chronometrica/tiktok-transcript-scraper)
- [Esquema de entrada de Chronometrica](https://apify.com/chronometrica/tiktok-transcript-scraper/input-schema)
- [Task de Chronometrica de segmentos de transcripción con marcas de tiempo](https://apify.com/chronometrica/tiktok-transcript-scraper/examples/tiktok-timestamped-transcript-segments)
- [Contrato de Clockworks TikTok Transcript Extractor](https://apify.com/clockworks/tiktok-transcript-extractor)
- [Esquema de entrada de Clockworks](https://apify.com/clockworks/tiktok-transcript-extractor/input-schema)
- [Pregunta pública sobre una API estable de TikTok](https://www.reddit.com/r/smallbusiness/comments/1odqo5g/is_there_a_stable_api_to_get_tiktok_content/)