# Link e opzioni di trascrizione

> Verifica i link accettati e scegli tra sottotitoli e IA. Configura la lingua e il riconoscimento dei parlanti.

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

Puoi partire da un link di YouTube, X, TikTok, Instagram, Facebook o Bluesky, oppure da un file. Nella tabella trovi anche le altre piattaforme accettate e i link da usare per le registrazioni pubbliche.

Nel body di `POST /v1/transcriptions` puoi aggiungere `source` per scegliere tra sottotitoli e audio, `diarize` per il riconoscimento dei parlanti e `language` per la lingua. Sono tutti facoltativi.

## Piattaforme supportate

Inserisci il link in `url`: l'API capisce da sola di quale piattaforma si tratta. Puoi anche specificare `platform`, purché corrisponda al link.

| Piattaforma | Link accettati |
|---|---|
| YouTube (`youtube`) | I formati di link elencati nella sezione dedicata qui sotto. |
| X (`x`) | Link a post con video su `x.com` o `twitter.com`, per esempio `https://x.com/user/status/1234567890`. |
| TikTok (`tiktok`) | Link a video su `tiktok.com`. Funzionano anche i link brevi `vm.tiktok.com`, `vt.tiktok.com` e `www.tiktok.com/t/`. |
| Instagram (`instagram`) | Reel e post con video su `instagram.com`, nei percorsi `/reel/`, `/reels/`, `/p/` o `/tv/`. Accettiamo anche i link a reel e post che includono prima il nome utente. |
| Facebook (`facebook`) | Video e reel su `facebook.com`, anche nei link watch. Puoi usare anche `fb.watch` e i link brevi `/share/v/` e `/share/r/`. |
| Bluesky (`bluesky`) | Link a post con video su `bsky.app`, per esempio `https://bsky.app/profile/user.example/post/3l3w4b5c6d7e2`. |
| [Twitch](https://transcript1.com/it/features/trascrivere-vod-twitch) (`twitch`) | VOD di trasmissioni già concluse: `twitch.tv/videos/<id>` oppure `/<channel>/v/<id>` (anche `video` al posto di `v`). Per le clip: `clips.twitch.tv/<slug>`, `twitch.tv/<channel>/clip/<slug>` o `/clip/<slug>`. Host accettati: `twitch.tv`, `www`, `m`, `go` e `clips.twitch.tv`. |
| [Dailymotion](https://transcript1.com/it/features/trascrivere-video-dailymotion) (`dailymotion`) | Video con link `dailymotion.com/video/<id>`, anche con `_title`, oppure `/embed/video/<id>` o `dai.ly/<id>`. Funzionano anche `www.dailymotion.com` e `touch.dailymotion.com`. |
| [Pinterest](https://transcript1.com/it/features/trascrivere-video-pinterest) (`pinterest`) | Pin con video nativo su `pinterest.com` o `www.pinterest.com`: `/pin/<id>/` o `/pin/<slug>--<id>/`. Trascriviamo il primo blocco video nativo. Non accettiamo video incorporati da altri siti, immagini, bacheche, `pin.it` o domini regionali. |
| [LinkedIn](https://transcript1.com/it/features/trascrivere-video-linkedin) (`linkedin`) | Post pubblici con video su `linkedin.com` o `www.linkedin.com`: `/posts/<slug>-<activity-id>-<four-character-suffix>` o `/feed/update/urn:li:activity:<id>/`. Non accettiamo profili, LinkedIn Learning, eventi o link `lnkd.in`. |
| [Snapchat Spotlight](https://transcript1.com/it/features/trascrizione-snapchat-spotlight) (`snapchat`) | Link `/spotlight/<id>` su `snapchat.com` o `www.snapchat.com`. Sono accettati i video Spotlight, non le storie o i profili. |

Per Twitch, Dailymotion, Pinterest, LinkedIn e Snapchat, il link deve usare HTTPS, senza credenziali né porte personalizzate. Deve portare a una singola registrazione pubblica: niente post privati o che richiedono il login, dirette ancora in corso o in elaborazione, profili, feed o raccolte. Non inviamo cookie di account alla piattaforma. I parametri temporali del link non accorciano la registrazione. Con le clip Twitch e Snapchat Spotlight, `media_id` può essere una stringa opaca: salvala senza modificarla e non tentare di ricostruire l'ID dall'URL.

Su X, TikTok, Instagram, Facebook e Bluesky, scegli un post pubblico. Se contiene più video, trascriviamo solo il primo. Non funzionano profili, storie, pagine di dirette o post fotografici di TikTok. Se serve il login, ricevi `login_required`; se manca la traccia audio, ricevi `no_audio`. In entrambi i casi non paghi.

Su YouTube, X, TikTok, Bluesky, Dailymotion e LinkedIn possiamo usare i sottotitoli, ma solo se il video ha una traccia adatta nella lingua originale. Su Instagram, Facebook, Twitch, Pinterest e Snapchat trascriviamo sempre l'audio con IA: scegli `auto` o `stt`, non `captions`. Il prezzo al minuto è identico per tutte le piattaforme e per i file, e dipende dalla durata misurata.

Per i link brevi, attieniti ai formati della tabella. Se al momento dell'invio il link di condivisione non contiene l'ID del post, non possiamo abbinarlo a una trascrizione precedente. Per riutilizzare le trascrizioni, preferisci il link completo del post.

| Piattaforma | Sottotitoli disponibili e timestamp |
|---|---|
| YouTube e X | Usiamo le tracce già presenti. I timestamp delle parole sono disponibili solo nei sottotitoli generati automaticamente da YouTube. |
| TikTok | Usiamo i sottotitoli nativi VTT o SRT, quando disponibili. Hanno i timestamp dei segmenti, non delle parole. |
| Bluesky | Accettiamo le tracce native del video sul PDS attendibile supportato, non host federati qualsiasi né video citati o esterni. Timestamp solo per i segmenti. |
| Dailymotion | Accettiamo file SRT diretti, non playlist di sottotitoli. Timestamp solo per i segmenti. Le tracce riconosciute come en-auto/fr-auto riportano auto_generated. |
| LinkedIn | Usiamo le tracce VTT dei post pubblici con video nativo, non di LinkedIn Learning. Timestamp solo per i segmenti. |

## Quali link YouTube usare

Metti il link del video in `url` e lascia fuori `platform`, oppure usa `youtube`. Accettiamo questi formati, sia con `www.` sia senza:

| Tipo di link | Esempio |
|---|---|
| Pagina di riproduzione | `https://www.youtube.com/watch?v=dQw4w9WgXcQ` |
| Link abbreviato | `https://youtu.be/dQw4w9WgXcQ` |
| Shorts | `https://www.youtube.com/shorts/dQw4w9WgXcQ` |
| Video incorporato | `https://www.youtube.com/embed/dQw4w9WgXcQ` |
| Link di una diretta | `https://www.youtube.com/live/dQw4w9WgXcQ` |
| Sito mobile e YouTube Music | `https://m.youtube.com/watch?v=dQw4w9WgXcQ`, `https://music.youtube.com/watch?v=dQw4w9WgXcQ` |

Non serve ripulire il link: ignoriamo parametri come `t`, `list` e `si` e riconosciamo lo stesso video in tutti i formati. Serve però l'URL completo, non il solo ID di 11 caratteri. Con pagine di canali, link a sole playlist o link non supportati ricevi `422 invalid_url`. Se `platform` ha un valore sconosciuto, ricevi `422 unsupported_platform` e l'elenco `supported_platforms`.

Il video deve essere pubblico o non in elenco. Per i video privati, con limiti di età o ancora in diretta ricevi rispettivamente `media_private`, `age_restricted` o `live_stream`. Se hai il file, puoi [caricarlo direttamente](https://transcript1.com/it/docs/uploads).

## source

Con `source` scegli se leggere i sottotitoli già presenti o trascrivere l'audio.

| Valore | Come funziona |
|---|---|
| `auto` (predefinito) | Cerca prima sottotitoli adatti nella lingua originale su YouTube, X, TikTok, Bluesky, Dailymotion e LinkedIn. Se non può usarli, trascrive l'audio con IA. |
| `captions` | La modalità `captions` (solo sottotitoli) funziona sulle piattaforme che supportano le tracce di sottotitoli. Non scarica audio e non avvia STT. Senza una traccia adatta ricevi `no_captions` e non paghi; se il recupero del contenuto della traccia non riesce, ricevi `fetch_failed`. Sulle altre piattaforme l'API risponde `422 invalid_request`. |
| `stt` | Usa sempre l'audio per la trascrizione con IA, senza cercare sottotitoli. |

Per i file, la trascrizione parte sempre dall'audio. Puoi impostare `source` su `auto` o `stt`; con `captions` ricevi `422 invalid_request`.

La traccia deve essere nella lingua richiesta, oppure in quella originale del video se `language` è `auto`. Su YouTube usiamo sottotitoli caricati dal creator o generati da YouTube in quella lingua, mai traduzioni automatiche. Scegliamo prima quelli del creator, poi le tracce di origine sconosciuta e infine quelle generate automaticamente. Una traccia di origine sconosciuta non va attribuita al creator.

Su X usiamo le tracce VTT disponibili: hanno i timestamp dei segmenti, ma mai quelli delle parole, anche quando i sottotitoli sono generati automaticamente. In modalità auto passiamo a STT se il contenuto della traccia manca o non si riesce a interpretarlo. Non lo facciamo per errori di routing, storage o programmazione. Con `stt` saltiamo sempre i sottotitoli.

## diarize

Attiva `diarize` per il riconoscimento dei parlanti. Di default vale `false`.

- Per distinguere chi parla serve la trascrizione dell'audio. Con `source` su `auto` e `diarize: true`, l'API avvia direttamente lo speech-to-text.
- Non abbinare `source: "captions"` a `diarize: true`: riceveresti `422 invalid_request`.
- Trovi etichette come `Speaker 1` e `Speaker 2` in `transcript.speakers` e nel campo `speaker` di ogni segmento. Nei formati `text` e `srt` il testo ha il prefisso `Speaker 1: `; in `vtt` c'è il tag voce `<v Speaker 1>`.

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

## language

Lascia `language` su `auto`, il valore predefinito, oppure indica un codice ISO 639-1 di due lettere, come `en`, `de` o `es`.

- Se usi i sottotitoli, `language` seleziona la lingua della traccia. Con `auto` scegliamo quella originale del video.
- Se usi lo speech-to-text, il provider riceve la lingua come suggerimento. Con `auto` la rileva da solo e ogni segmento riporta la propria `language`.

Nel campo `language` dell'oggetto trascrizione trovi la lingua prevalente.

## Da dove arriva il testo e quali dati ricevi

Controlla `transcript_source` per sapere da dove arriva il testo: `youtube_captions`, `x_captions`, `tiktok_captions`, `bluesky_captions`, `dailymotion_captions`, `linkedin_captions` o `speech_to_text`. Per i sottotitoli trovi anche `caption_kind`: `manual`, `auto_generated` oppure `null`. Quest'ultimo indica un'origine sconosciuta, non sottotitoli caricati dal creator.

| | `youtube_captions`, `caption_kind` `manual` | `youtube_captions`, `caption_kind` `auto_generated` | `speech_to_text` |
|---|---|---|---|
| Segmenti | Un segmento per ogni blocco di sottotitoli | Un segmento per ogni blocco di sottotitoli | Un nuovo segmento a ogni cambio di parlante o lingua, a fine frase o al raggiungimento di 15 secondi |
| Timestamp delle parole con `include=words` | Non disponibili (`words` è `null`) | Inizio di ogni parola; la fine coincide con l'inizio della successiva | Inizio e fine di ogni parola, con `confidence` |
| Riconoscimento dei parlanti | No | No | Sì, quando `diarize` è `true` |
| Lingua | Quella della traccia | Quella della traccia | Indicata per ogni segmento |

Conserviamo i sottotitoli di YouTube senza riscriverli, anche se contengono tag come `[Music]`. Per lo speech-to-text, la registrazione può durare fino a 5 ore; oltre questo limite ricevi `media_too_long`.

Per X (`x_captions`), TikTok, Bluesky, Dailymotion e LinkedIn ricevi solo i timestamp dei segmenti e nessuna etichetta dei parlanti. Anche per le tracce automatiche, `include=words` restituisce `words: null` in ogni segmento. Se ti servono i timestamp delle parole, scegli `source: "stt"`. Per il riconoscimento dei parlanti, attiva `diarize: true` con `auto` o `stt`.

## Quanto costa

Il prezzo non cambia tra sottotitoli e speech-to-text: consumi un credito per ogni minuto di registrazione, arrotondando per eccesso. Cambia l'origine del testo, non il costo. I dettagli sono in [Costi e limiti](https://transcript1.com/it/docs/billing-and-limits).
