# Links aceitos e opções

> Confira quais links funcionam e configure a origem da transcrição, o idioma e a identificação de falantes.

Canonical: https://transcript1.com/pt/docs/sources-and-options
Language: pt-BR
Last updated: 2026-10-20

Cole um link do YouTube, X, TikTok, Instagram, Facebook ou Bluesky, ou envie seu arquivo. Também aceitamos as gravações públicas das outras plataformas listadas abaixo. Para configurar a transcrição, use `source`, `diarize` e `language` no corpo de `POST /v1/transcriptions`. Esses campos são opcionais e controlam, respectivamente, a origem do texto, a identificação de falantes e o idioma.

## De quais plataformas você pode enviar links

Informe o endereço em `url`. Você não precisa preencher `platform`: a API reconhece a plataforma pelo link. Se preencher, use a plataforma correspondente ao endereço.

| Plataforma | Links aceitos |
|---|---|
| YouTube (`youtube`) | Use um dos formatos de link de vídeo da próxima seção. |
| X (`x`) | Link de um post com vídeo em `x.com` ou `twitter.com`. Exemplo: `https://x.com/user/status/1234567890`. |
| TikTok (`tiktok`) | Link do vídeo em `tiktok.com` ou link curto de `vm.tiktok.com`, `vt.tiktok.com` ou `www.tiktok.com/t/`. |
| Instagram (`instagram`) | Reels e posts com vídeo em `instagram.com`, nos caminhos `/reel/`, `/reels/`, `/p/` ou `/tv/`. O nome do usuário pode aparecer antes do caminho do reel ou post. |
| Facebook (`facebook`) | Vídeos e reels em `facebook.com`, incluindo links de watch. Também funcionam os links curtos `fb.watch`, `/share/v/` e `/share/r/`. |
| Bluesky (`bluesky`) | Link de um post com vídeo em `bsky.app`. Exemplo: `https://bsky.app/profile/user.example/post/3l3w4b5c6d7e2`. |
| [Twitch](https://transcript1.com/pt/features/transcrever-vod-da-twitch) (`twitch`) | Após o fim da transmissão, envie o VOD por `twitch.tv/videos/<id>` ou `/<channel>/v/<id>`; `video` também funciona. Para clipes, use `clips.twitch.tv/<slug>`, `twitch.tv/<channel>/clip/<slug>` ou `/clip/<slug>`. Hosts aceitos: `twitch.tv`, `www`, `m`, `go` e `clips.twitch.tv`. |
| [Dailymotion](https://transcript1.com/pt/features/transcrever-video-do-dailymotion) (`dailymotion`) | Use `dailymotion.com/video/<id>`, com ou sem `_title`, `/embed/video/<id>` ou `dai.ly/<id>`. Os hosts `www.dailymotion.com` e `touch.dailymotion.com` também funcionam. |
| [Pinterest](https://transcript1.com/pt/features/transcrever-video-do-pinterest) (`pinterest`) | Pins com vídeo da própria plataforma em `pinterest.com` ou `www.pinterest.com`, nos caminhos `/pin/<id>/` e `/pin/<slug>--<id>/`. Transcrevemos o primeiro bloco de vídeo nativo. Não aceitamos vídeos incorporados de outros sites, imagens, pastas, `pin.it` ou domínios regionais. |
| [LinkedIn](https://transcript1.com/pt/features/transcrever-video-do-linkedin) (`linkedin`) | Posts públicos com vídeo em `linkedin.com` ou `www.linkedin.com`: `/posts/<slug>-<activity-id>-<four-character-suffix>` ou `/feed/update/urn:li:activity:<id>/`. Links de perfis, LinkedIn Learning, eventos e `lnkd.in` não funcionam. |
| [Snapchat Spotlight](https://transcript1.com/pt/features/transcricao-do-snapchat-spotlight) (`snapchat`) | Use o caminho `/spotlight/<id>` em `snapchat.com` ou `www.snapchat.com`. Stories e perfis não funcionam. |

Nas cinco plataformas adicionais, use HTTPS e não inclua credenciais ou portas personalizadas na URL. Envie o link de uma gravação pública específica. Não aceitamos posts privados ou que exijam login, transmissões ao vivo ou ainda em processamento, perfis, feeds ou coleções. Não enviamos cookies de conta para acessar o conteúdo.

Parâmetros de tempo no link não recortam a gravação. Em clipes da Twitch e vídeos do Snapchat Spotlight, `media_id` pode ser uma string sem relação aparente com o link. Guarde o valor como veio na resposta, sem tentar reconstruí-lo pela URL.

No X, TikTok, Instagram, Facebook e Bluesky, o post precisa ser público. Se houver vários vídeos no mesmo post, transcrevemos só o primeiro. Não aceitamos perfis, stories, páginas de lives nem posts de fotos do TikTok. Se a plataforma exigir login, você recebe `login_required`. Se o vídeo não tiver faixa de áudio, recebe `no_audio`. Nos dois casos, você não paga.

Podemos aproveitar as legendas no idioma original do YouTube, X, TikTok, Bluesky, Dailymotion e LinkedIn, mas a disponibilidade depende do vídeo. No Instagram, Facebook, Twitch, Pinterest e Snapchat, usamos transcrição com IA nos modos `auto` e `stt`; essas plataformas não aceitam `captions`. O preço por minuto é o mesmo para todas as plataformas e para uploads, sempre com base na duração medida.

Só aceitamos os formatos de link curto listados na tabela. Se o link de compartilhamento não revelar o ID do post na hora do envio, não conseguimos associá-lo a uma transcrição anterior. Para reutilizar uma transcrição, prefira o link completo do post.

| Plataforma | Quais legendas usamos e quais marcações de tempo vêm |
|---|---|
| YouTube e X | Usamos as faixas já disponíveis. Só as legendas geradas automaticamente pelo YouTube trazem marcações de tempo por palavra. |
| TikTok | Buscamos as legendas nativas disponíveis em VTT ou SRT. As marcações de tempo são por segmento. |
| Bluesky | Buscamos legendas nativas no PDS confiável aceito pelo serviço. Não buscamos em qualquer host federado, nem em vídeos citados ou externos. As marcações de tempo são por segmento. |
| Dailymotion | Buscamos arquivos SRT diretos, não playlists de legendas. As marcações de tempo são por segmento. Quando identificamos faixas en-auto/fr-auto, informamos auto_generated. |
| LinkedIn | Buscamos faixas VTT em posts públicos com vídeo nativo. LinkedIn Learning fica de fora. As marcações de tempo são por segmento. |

## Quais links do YouTube funcionam

Coloque o endereço do vídeo em `url`. Deixe `platform` de fora ou use `youtube`. Aceitamos os formatos abaixo, com ou sem `www.`:

| Tipo de link | Exemplo |
|---|---|
| Página do vídeo | `https://www.youtube.com/watch?v=dQw4w9WgXcQ` |
| Link curto | `https://youtu.be/dQw4w9WgXcQ` |
| Shorts | `https://www.youtube.com/shorts/dQw4w9WgXcQ` |
| Embed | `https://www.youtube.com/embed/dQw4w9WgXcQ` |
| Caminho de live | `https://www.youtube.com/live/dQw4w9WgXcQ` |
| Versões mobile e de música | `https://m.youtube.com/watch?v=dQw4w9WgXcQ`, `https://music.youtube.com/watch?v=dQw4w9WgXcQ` |

Pode manter parâmetros como `t`, `list` e `si` no link: eles são ignorados. Formatos diferentes que apontam para o mesmo vídeo contam como o mesmo vídeo. Envie a URL completa; só o ID de 11 caracteres não basta.

Links de canal, de playlist sem vídeo ou fora dos formatos aceitos geram `422 invalid_url`. Se `platform` tiver um valor desconhecido, a resposta será `422 unsupported_platform`, com a lista `supported_platforms`.

O vídeo precisa ser público ou não listado. Vídeos privados geram `media_private`; com restrição de idade, `age_restricted`; e transmissões ao vivo, `live_stream`. Se você tem o arquivo, pode enviá-lo por [upload](https://transcript1.com/pt/docs/uploads).

## source

Escolha em `source` se o texto deve vir das legendas ou do áudio.

| Valor | O que acontece |
|---|---|
| `auto` (padrão) | Busca primeiro as legendas no idioma original do YouTube, X, TikTok, Bluesky, Dailymotion e LinkedIn. Se não puder usá-las, transcreve o áudio com IA. |
| `captions` | Usa o modo `captions` (somente legendas) nas plataformas com esse recurso, sem baixar áudio ou usar speech-to-text. Se não houver uma faixa que possa ser usada, retorna `no_captions`, sem cobrança. Se o download do conteúdo das legendas falhar, informa `fetch_failed`. As demais plataformas rejeitam essa opção com `422 invalid_request`. |
| `stt` | Vai direto à transcrição do áudio com IA, sem buscar legendas. |

Em uploads, sempre transcrevemos o áudio com speech-to-text. Use `auto` ou `stt` em `source`. O valor `captions` gera `422 invalid_request`.

Para usar uma faixa de legendas, ela precisa estar no idioma solicitado. Se `language` for `auto`, usamos o idioma original do vídeo. No YouTube, as legendas precisam ter sido enviadas pelo criador ou geradas pelo YouTube naquele idioma. Nunca usamos traduções automáticas. Priorizamos as legendas enviadas pelo criador, depois as de origem desconhecida e, por último, as geradas automaticamente. Não trate uma origem desconhecida como prova de autoria do criador.

No X, usamos as faixas VTT disponíveis. Elas trazem marcações de tempo por segmento, sem tempos por palavra, mesmo quando são geradas automaticamente. Com `auto`, podemos recorrer ao STT se as legendas estiverem indisponíveis ou não puderem ser lidas. Erros de rota, armazenamento ou programação não acionam essa alternativa. Com `stt`, pulamos as legendas em todos os casos.

## diarize

Ative `diarize` para identificar os falantes. Por padrão, o valor é `false`.

- A identificação de falantes depende de speech-to-text. Se usar `diarize: true` com `source` em `auto`, o serviço vai direto ao áudio, sem buscar legendas.
- Não combine `source: "captions"` e `diarize: true`: a API responde `422 invalid_request`.
- Você recebe rótulos como `Speaker 1` e `Speaker 2` em `transcript.speakers` e no campo `speaker` de cada segmento. Nos formatos `text` e `srt`, eles aparecem como prefixo `Speaker 1: `. No `vtt`, usamos a tag de voz `<v Speaker 1>`.

```json
{ "platform": "youtube", "url": "https://youtu.be/dQw4w9WgXcQ", "source": "stt", "diarize": true }
```

## language

Deixe `language` em `auto`, que é o padrão, ou informe um código ISO 639-1 de duas letras, como `en`, `de` ou `es`.

- Se o texto vier de legendas, `language` seleciona o idioma da faixa. Com `auto`, escolhemos o idioma original do vídeo.
- Na transcrição com IA, enviamos o código ao provedor de speech-to-text como uma indicação do idioma. Com `auto`, o serviço detecta o idioma e informa `language` em cada segmento.

No objeto principal da transcrição, `language` informa o idioma predominante.

## Como a transcrição vem na resposta

Confira `transcript_source` para saber de onde veio o texto. Os valores são `youtube_captions`, `x_captions`, `tiktok_captions`, `bluesky_captions`, `dailymotion_captions`, `linkedin_captions` e `speech_to_text`. Quando usamos legendas, `caption_kind` informa `manual`, `auto_generated` ou `null`. O valor `null` indica origem desconhecida; não significa que o criador enviou as legendas.

| | `youtube_captions`, `caption_kind` `manual` | `youtube_captions`, `caption_kind` `auto_generated` | `speech_to_text` |
|---|---|---|---|
| Segmentos | Um para cada trecho de legenda | Um para cada trecho de legenda | Um novo segmento a cada mudança de falante ou idioma, pontuação de fim de frase ou ao atingir 15 segundos |
| Marcações de tempo por palavra com `include=words` | Não há (`words` é `null`) | Início de cada palavra; o fim coincide com o início da próxima | Início e fim de cada palavra, com `confidence` |
| Identificação de falantes | Não | Não | Sim, quando `diarize` é `true` |
| Idioma | O mesmo da faixa de legendas | O mesmo da faixa de legendas | Informado por segmento |

Mantemos o texto das legendas como o YouTube publicou, incluindo tags como `[Music]`. Para transcrição com speech-to-text, a gravação pode ter até 5 horas. Acima disso, você recebe `media_too_long`.

As legendas do X (`x_captions`), TikTok, Bluesky, Dailymotion e LinkedIn só trazem marcações de tempo por segmento e não identificam falantes. Mesmo com `include=words`, cada segmento terá `words: null`, inclusive nas legendas geradas automaticamente. Para obter marcações de tempo por palavra com IA, use `source: "stt"`. Para identificar falantes, combine `diarize: true` com `auto` ou `stt`.

## Quanto custa cada modo

Você paga o mesmo usando legendas ou speech-to-text: um crédito por minuto da gravação, com arredondamento para cima. Escolher a origem do texto não muda o preço. Consulte [Planos, minutos e limites](https://transcript1.com/pt/docs/billing-and-limits).
