
A principal questão é o que seu aplicativo deve fazer quando uma consulta de transcrição falha. Ele precisa explicar a falha, manter um registro e decidir se deve tentar novamente? Ou basta mostrar que nenhuma transcrição foi retornada?
Para a primeira necessidade, recomendamos Chronometrica. Seus detalhes de falha separados fornecem ao aplicativo informações para essas decisões. Porém, um registro de falha mais completo não pode fazer uma transcrição indisponível aparecer. Nenhum teste em condições equivalentes nas evidências fornecidas demonstra uma diferença de estabilidade, bloqueio, velocidade, recuperação ou taxa de sucesso.
A Chronometrica publica este guia. A comparação usa contratos públicos verificados em 20 de outubro de 2026. Ela compara o comportamento documentado, não o desempenho medido em produção.
Escolha o resultado que seu aplicativo precisa explicar
Um Actor é um programa de coleta de dados hospedado. Seu aplicativo fornece entradas, executa o Actor e lê os resultados. O contrato de resultados define o que seu aplicativo pode esperar receber.
Na extração de transcrições, um resultado bem-sucedido é apenas parte desse contrato. Seu aplicativo também precisa de uma regra para uma entrada que não produz transcrição. Essa regra afeta a mensagem exibida ao usuário e a próxima ação do aplicativo.
Uma pergunta pública de um desenvolvedor descreve sucesso local seguido de falhas em produção, solicitações bloqueadas, resultados vazios e comportamento pouco claro nas novas tentativas. A pergunta trata de outra biblioteca Python de transcrições. Ela mostra por que é importante ter resultados compreensíveis. Ela não fornece evidências de testes sobre nenhum dos Actors comparados aqui.
Comece pela decisão que afeta o usuário:
| Seu aplicativo precisa… | Contrato a considerar | Motivo |
|---|---|---|
| Explicar diferentes entradas com falha | Chronometrica | Os detalhes de falha separados incluem campos tipados de resultado. |
| Criar uma fila com limite de novas tentativas | Chronometrica | O indicador `isRetryable` retornado ajuda nessa decisão. |
| Armazenar uma transcrição ou um valor de indisponibilidade | Topaz Sharingan | Seu resultado documentado de transcrição ou null pode ser suficiente. |
Fontes: contrato de resultados do Chronometrica, contrato de resultados do Topaz Sharingan.
Escolha o contrato mais simples quando ele atender a todo o requisito. Escolha o contrato detalhado quando o aplicativo precisar distinguir os resultados e agir com base neles. Assim, a escolha se baseia no comportamento do aplicativo, em vez de uma afirmação sem respaldo sobre qual serviço falha com menos frequência.
Leia juntos os registros bem-sucedidos e os detalhes de falha do Chronometrica
O Chronometrica coloca 1 vídeo único do YouTube com resultado bem-sucedido em cada linha do conjunto de dados padrão. Um conjunto de dados é a coleção desses registros de resultado. Entradas com falha não se tornam linhas bem-sucedidas do conjunto de dados e não são linhas de transcrição faturáveis. O resumo separado `OUTPUT` informa dados da execução e pode incluir `failedInputDetails`. Contrato do Chronometrica.
Essa separação importa quando você lê um conjunto de dados com poucos registros. Um conjunto de dados com menos registros que sua lista de entradas não prova que todas as entradas tiveram sucesso. Ele informa quais registros de transcrição bem-sucedidos estão presentes. Você também deve examinar os resultados informados para as entradas que não produziram um registro.
Mantenha `includeFailedInputDetails` definido como `true`. Os detalhes de falha documentados incluem a identificação segura da entrada, `errorCategory`, `errorCode` e `isRetryable`. A categoria agrupa o tipo de falha. O código fornece um valor mais específico, legível por máquina. O indicador de nova tentativa informa se a falha relatada permite tentar novamente. Esquema de entrada do Chronometrica, contrato de resultados.
Seu aplicativo pode usar esses detalhes para criar sua própria visão de todas as entradas enviadas. Associe cada transcrição bem-sucedida ou detalhe de entrada com falha à identificação da entrada correspondente. Não associe os registros pela posição na lista. A ausência de uma linha bem-sucedida torna a posição uma forma insegura de vincular uma entrada a um resultado.
Mantenha separados o resultado de origem e a mensagem exibida pelo aplicativo. O resultado registra o que a consulta informou. A mensagem exibida explica esse resultado ao usuário. Assim, você pode mudar o texto sem alterar a observação armazenada.
Trate a disponibilidade do idioma como uma decisão separada
Antes de executar qualquer um dos fluxos, decida se seu aplicativo exige um idioma específico para as legendas. Para ser utilizável, uma transcrição deve atender a esse requisito e conter texto.
A configuração `preferredLanguages` do Chronometrica é estrita quando preenchida. Se o idioma solicitado estiver indisponível, o Actor retorna `LANGUAGE_UNAVAILABLE`, em vez de selecionar outro idioma sem avisar. Essa configuração não traduz legendas. O Chronometrica lê legendas públicas nativas da plataforma e não oferece conversão de fala em texto como alternativa. Contrato do Chronometrica, esquema de entrada.
Esse comportamento atende a um aplicativo cujos usuários precisam receber legendas no idioma solicitado. Ele também define um limite claro: um vídeo com legendas em outro idioma ainda pode não atender ao requisito do aplicativo.
Não classifique esse resultado como uma transcrição bem-sucedida apenas porque existe algum texto de legenda. Mantenha o idioma solicitado no registro da entrada. Assim, o aplicativo pode explicar que não encontrou legendas que atendessem à solicitação.
Se os usuários puderem aceitar outro idioma, defina essa escolha no aplicativo antes de ampliar o fluxo. Uma mudança no requisito de idioma é uma mudança na solicitação. Mantenha essa mudança separada de uma nova tentativa da solicitação original. Para saber mais sobre a disponibilidade de legendas, consulte o guia de extração de legendas do YouTube.
Examine um conjunto fictício de registros ausentes
O exemplo a seguir é fictício. Ele não é uma execução real, um teste comparativo ou um resultado de cliente.
Um aplicativo envia 8 IDs únicos de vídeo com um idioma solicitado para as legendas. 5 vídeos têm legendas utilizáveis. 1 não tem legendas públicas. 1 não tem o idioma solicitado. 1 apresenta uma falha de acesso que o indicador retornado marca como apta a uma nova tentativa.
Para esse conjunto inventado de entradas, a proporção com legendas disponíveis é:
`5 / 8 × 100 = 62.5%`
O cálculo descreve apenas esse conjunto fictício. Ele não estima a taxa real de sucesso de nenhum dos Actors.
Com a estrutura de resultados documentada do Chronometrica, o aplicativo leria 5 linhas de transcrição bem-sucedidas e 3 detalhes de entradas com falha. Ele não adicionaria 3 linhas inventadas de falha ao conjunto de dados de transcrições bem-sucedidas. O aplicativo poderia então apresentar 5 registros de transcrição e 3 resultados não resolvidos. Contrato de resultados do Chronometrica.
Esses resultados não resolvidos precisam de mensagens diferentes. O aplicativo pode explicar que 1 consulta não encontrou legendas públicas. Pode explicar que outra não encontrou o idioma solicitado. Para a falha de acesso, pode informar que uma nova tentativa, sujeita a um limite, está prevista porque o indicador retornado permite essa decisão.
Somente o caso marcado pelo indicador entra na fila de novas tentativas. O aplicativo não tenta novamente todas as entradas sem uma linha bem-sucedida no conjunto de dados. Um indicador que permite tentar novamente dá respaldo a outra tentativa. Ele não promete que essa tentativa terá sucesso.
Se o aplicativo tentar essa entrada novamente depois, ele registra um novo resultado. Ele mantém a primeira observação para que o registro continue mostrando o que ocorreu em cada tentativa.
Esse exemplo permite testar a regra de decisão na prática. Se seu aplicativo precisa dessas mensagens separadas e da fila de novas tentativas, escolha o contrato detalhado. Se todo o requisito for um valor de transcrição que possa ser null, o contrato mais simples pode atender à necessidade.
Use uma entrada pequena para verificar o contrato de resultados
Uma verificação pequena permite confirmar que seu aplicativo consegue ler os registros documentados antes de adicionar mais entradas. Ela não comprova a confiabilidade em produção.
O JSON a seguir usa campos públicos de entrada documentados. A URL ilustra o formato da entrada. Ela não garante a existência atual de legendas nem um resultado específico. Substitua-a por uma fonte pública relevante.
{
"startUrls": [
"https://www.youtube.com/watch?v=dQw4w9WgXcQ"
],
"includeFailedInputDetails": true
}Os campos estão documentados no esquema de entrada do Chronometrica. Um exemplo público de Task oferece um ponto de partida relacionado. Uma Task é uma configuração de entrada salva. Nem o exemplo do esquema nem o link da Task comprovam uma execução concluída para este guia.
Use este método curto para verificar o fluxo:
- Defina a entrada e a regra de aceitação. Crie uma lista de vídeos sem duplicatas. Registre qualquer idioma exigido. Decida o que conta como texto de legenda utilizável e o que o aplicativo mostrará quando nenhuma transcrição utilizável for retornada.
- Mantenha os detalhes de falha ativados. Envie uma entrada pública pequena com `includeFailedInputDetails` definido como `true`. Confirme que seu aplicativo consegue ler o conjunto de dados bem-sucedidos e o resultado separado `OUTPUT`.
- Associe os resultados às entradas. Use a identificação documentada da entrada para vincular resultados a solicitações. Compare os registros bem-sucedidos com os detalhes de entradas com falha. Não trate um conjunto de dados com poucos registros como um relato completo da lista enviada.
- Verifique a decisão sobre a falha. Leia os campos de falha retornados. Separe os resultados de disponibilidade dos casos explicitamente marcados como aptos a uma nova tentativa. Não conclua que uma nova tentativa é permitida apenas pela ausência de uma transcrição.
- Aplique uma política com limite de novas tentativas. Defina um número máximo de tentativas no aplicativo. Tente novamente apenas os casos elegíveis. Mantenha a observação de cada tentativa e pare quando atingir o limite.
- Mostre o estado final com honestidade. Quando as novas tentativas terminarem sem uma transcrição, mantenha a entrada como não resolvida. Não transforme texto ausente em um registro vazio bem-sucedido nem sugira que outra tentativa recuperará esse texto.
Se uma entrada não tiver um registro bem-sucedido correspondente nem um detalhe de falha correspondente nos dados lidos pelo aplicativo, preserve essa incerteza. Verifique as informações da execução e o código que lê os resultados. Não invente um resultado para fazer as contagens coincidirem.
A verificação tem sucesso quando seu aplicativo consegue conferir os registros recebidos, explicar seus resultados e tomar a decisão prevista para o usuário. Não é preciso produzir uma transcrição para cada vídeo enviado para provar que o método de leitura dos resultados funciona.
Defina limites de novas tentativas antes de adicionar mais entradas
Uma fila de novas tentativas é uma lista de entradas que seu aplicativo planeja enviar novamente. Aqui, seu objetivo é específico: dar às entradas com falha elegíveis outra chance limitada, mantendo um registro claro.
Escolha o limite de tentativas antes de ampliar a lista. Sem um limite, uma falha que permite tentar novamente pode permanecer em um ciclo, mesmo quando nenhuma nova tentativa tem sucesso. Uma regra clara de parada também permite que o aplicativo informe ao usuário quando as tentativas automáticas terminaram.
Mantenha nos registros do aplicativo a entrada enviada, o idioma exigido, o resultado observado e a ordem das tentativas. Essas são escolhas de registro do aplicativo, não afirmações sobre campos adicionais na saída do Actor. Elas permitem distinguir a solicitação original de tentativas posteriores ou de solicitações alteradas.
Preserve os valores ausentes. Um valor desconhecido deve permanecer desconhecido. Não substitua um valor ausente por 0 nem use uma transcrição vazia como prova de sucesso. Seu aplicativo deve conseguir distinguir entre texto recebido, uma falha informada e um resultado que ainda não foi determinado.
Trate as falhas de disponibilidade como observações sobre a solicitação naquele momento. Você não precisa tentar essas entradas novamente de forma automática para manter um registro preciso. Se o usuário mudar o idioma solicitado ou pedir uma nova verificação depois, salve isso como uma nova solicitação ou observação.
Essas regras tornam o comportamento do aplicativo compreensível. Elas não dependem de uma afirmação de que uma nova tentativa recuperará as legendas.
Escolha o Actor com base no requisito do aplicativo
O Chronometrica é uma boa opção quando a ausência de uma transcrição precisa se tornar um resultado explicado. Seus campos de falha verificados permitem associar entradas, criar mensagens separadas para o usuário e decidir sobre novas tentativas com limite. Esse é o motivo específico para recomendá-lo a um aplicativo que precisa explicar consultas sem sucesso. Contrato do Chronometrica.
O principal limite é a disponibilidade das legendas. Registros detalhados de falha explicam por que uma consulta não forneceu texto utilizável. Eles não criam legendas, não as traduzem e não oferecem conversão de fala em texto como alternativa.
Escolha Topaz Sharingan quando seu resultado documentado de transcrição ou null atender ao requisito do aplicativo. Seu esquema de entrada inclui `startUrls` e `timestamps`. Um resultado null faz parte do contrato declarado e não é evidência de um defeito. Contrato do Topaz Sharingan, esquema de entrada.
Se a estabilidade relativa for o fator decisivo, esta comparação não pode resolver a escolha. As evidências verificadas não contêm um teste de desempenho em condições equivalentes. Inclua essa incerteza na decisão, em vez de tratar um registro de erro mais detalhado como prova de uma taxa de sucesso maior.
Fontes e leituras adicionais
Por Chronometrica · Atualizado
Voltar ao topo ↑