# CLI — trascrivere dal terminale

> Trascrivi video da link e file dal terminale. Elabora cartelle, salva sottotitoli e usa le risposte JSON nei tuoi script o agenti.

Canonical: https://transcript1.com/it/docs/cli
Language: it
Last updated: 2026-10-18

Passa a `transcript1` il link di un video o il percorso di un file audio o video: il comando lo trascrive dal terminale. Puoi usare YouTube, X, TikTok, Instagram, Facebook e Bluesky, oltre alle piattaforme indicate qui sotto. La CLI è un eseguibile autonomo e non richiede Node.js. Per i link accettati e le restrizioni, consulta [Link e opzioni di trascrizione](https://transcript1.com/it/docs/sources-and-options).

Per i link dei social serve almeno la versione 1.2.0. Con la 1.1.0 o una precedente puoi usare solo YouTube: la CLI rifiuta gli altri link prima di contattare l'API. Aggiornala con `transcript1 update`.

La 1.2.0 copre le sei piattaforme iniziali. Per Twitch, Dailymotion, Pinterest, LinkedIn e Snapchat, usa una release che includa esplicitamente queste piattaforme. Una CLI meno recente potrebbe rifiutare quei link senza inviarli all'API.

Scegli post pubblici: se contengono più video, trascriviamo soltanto il primo. Controlla i link brevi ammessi e gli altri limiti in [Link e opzioni di trascrizione](https://transcript1.com/it/docs/sources-and-options).

## Installare la CLI

Su macOS e Linux, per x64 o ARM64, esegui:

```bash
curl -fsSL https://transcript1.com/install.sh | sh
```

Il programma di installazione salva l'eseguibile in `~/.local/bin`. Se devi aggiornare il PATH, ti mostra come farlo. Per scegliere un'altra cartella, imposta `TRANSCRIPT1_INSTALL_DIR`.

Puoi usare anche l'alias breve `t1` al posto di `transcript1`. Con zsh, l'installazione aggiunge `alias transcript1='noglob transcript1'` a `~/.zshrc` per accettare i link con `?` anche senza virgolette. Se non vuoi modificare la configurazione della shell, imposta `TRANSCRIPT1_NO_MODIFY_SHELL=1`.

Per Windows x64, lancia questo comando in PowerShell:

```powershell
irm https://transcript1.com/install.ps1 | iex
```

L'eseguibile finisce in `%LOCALAPPDATA%\Programs\transcript1`, insieme all'alias `t1.cmd`. L'installazione aggiunge la cartella al PATH del tuo utente. Poi apri un nuovo terminale.

## Collegare il tuo account

Avvia il login:

```bash
transcript1 login
```

La CLI apre transcript1.com nel browser; se lavori via SSH o senza schermo, mostra il link nel terminale. Verifica che il codice nel terminale coincida con quello della pagina e clicca “Approve”. Dopo la conferma, la CLI salva una chiave con nome `transcript1 CLI (<computer name>)`. La ritrovi in [“API keys”](https://transcript1.com/dashboard/account/tokens).

Se preferisci aprire tu il link, usa `transcript1 login --no-browser`.

Hai già una chiave? Incollala con `transcript1 login --with-key`, oppure passala tramite stdin: `transcript1 login < key.txt`.

In CI o con un agente, imposta `TRANSCRIPT1_API_KEY`: la CLI userà questa chiave anziché quella salvata. Un agente che non ha un terminale o una chiave può lanciare `transcript1 login < /dev/null` e mandarti il link per autorizzarlo.

Con `transcript1 logout`, la CLI revoca la propria chiave e la elimina dal computer. Se non riesce a revocarla, la elimina comunque in locale e ti chiede di revocarla in “API keys”. Per le chiavi incollate, la revoca va sempre fatta da quella pagina.

## Trascrivere un video da link

```bash
transcript1 'https://youtu.be/dQw4w9WgXcQ'
```

Il comando aspetta che il testo sia pronto, poi lo scrive su stdout. Gli aggiornamenti sull'avanzamento vanno su stderr. Su YouTube, X, TikTok, Bluesky, Dailymotion e LinkedIn cerca prima sottotitoli adatti nella lingua originale; se non può usarli, trascrive l'audio con IA.

In zsh è meglio racchiudere i link tra virgolette. Senza virgolette, `&` separa il comando. Anche `?` viene interpretato come carattere glob, a meno di usare l'alias aggiunto durante l'installazione.

## Trascrivere un file sul computer

```bash
transcript1 interview.mp3
transcript1 -f srt -o interview.srt interview.mp3
```

La CLI accetta file fino a 2 GB (2.000.000.000 byte) con estensione mp3, wav, m4a, flac, ogg, opus, mp4, mov, webm o mkv. Si occupa sia del caricamento sia dell'attesa della trascrizione.

## Elaborare più file o link insieme

Nello stesso comando puoi indicare più file, più link o una cartella:

```bash
transcript1 interview.mp3 lecture.mp4
transcript1 -o transcripts/ ./recordings
transcript1 --jobs 4 -o transcripts/ interview.mp3 'https://youtu.be/dQw4w9WgXcQ'
```

Puoi selezionare file con espressioni come `recordings/*.mp3`, anche su Windows. Se indichi una cartella, la CLI prende i file audio e video direttamente al suo interno e li ordina per nome. Con più input salva, di default, un file per ciascuno in `./transcripts`. Imposta `--jobs` per scegliere quante trascrizioni eseguire insieme: da 1 a 20, con 2 come valore predefinito.

Per leggere gli input da stdin, usa `-` e fornisci un link o un percorso per riga. Per esempio, su macOS o Linux:

```bash
transcript1 -o transcripts/ - < inputs.txt
```

La CLI ignora le righe vuote e quelle che cominciano con `#`. Se due input sono identici, li elabora una sola volta.

Con un input, `-o` sceglie il file da salvare. Se il percorso è una cartella esistente o finisce con `/`, lo tratta come cartella. Con più input, `-o` indica sempre una cartella. La CLI crea quelle che mancano.

Per i link YouTube e i file locali, se il file da salvare esiste già la CLI salta quell'input. Usa `--overwrite` per elaborarlo di nuovo:

```bash
transcript1 --overwrite -o transcripts/ ./recordings
```

## Scegliere formato e opzioni

| Opzione | Cosa fa |
|---|---|
| `-f`, `--format` | Sceglie `text` (predefinito), `srt`, `vtt` o `json`. Con JSON ricevi l'oggetto trascrizione dell'API. |
| `--speakers` | Attiva il riconoscimento dei parlanti, con etichette Speaker 1, Speaker 2 e così via. |
| `--timestamps` | Aggiunge `[hh:mm:ss]` all'inizio di ogni riga, solo nel formato text. |
| `--language` | Indica la lingua con un codice ISO 639-1 oppure lascia `auto`, il valore predefinito. |
| `--source` | Sceglie `auto` (predefinito) o `stt`. Su YouTube, X, TikTok, Bluesky, Dailymotion e LinkedIn puoi anche usare `captions` se c'è una traccia adatta. La modalità `captions` (solo sottotitoli) non scarica audio e non passa mai a STT. |
| `--fresh` | Avvia una nuova trascrizione del link, senza riusarne una delle ultime 24 ore. |

Per aggiungere sia il riconoscimento dei parlanti sia i timestamp:

```bash
transcript1 --speakers --timestamps --language en interview.mp3
```

Non puoi abbinare `--speakers` a `--source captions`. Con auto, il riconoscimento dei parlanti usa direttamente l'audio. Il comportamento dei sottotitoli su YouTube e X resta invariato; puoi recuperare le tracce disponibili anche su TikTok, Bluesky, Dailymotion e LinkedIn. Fuori da YouTube, queste tracce hanno i timestamp dei segmenti, non delle parole (`words: null`), anche se generate automaticamente. Trovi il confronto tra piattaforme e le regole sulla lingua in [Link e opzioni di trascrizione](https://transcript1.com/it/docs/sources-and-options).

## Usare la CLI negli script e con gli agenti

Se il tuo agente ha una shell, può installare la CLI e lanciare `transcript1 <link>` o `transcript1 <file>` dopo aver impostato `TRANSCRIPT1_API_KEY`. Se invece usa MCP, segui la guida per [collegare il server MCP](https://transcript1.com/it/docs/mcp).

Per leggere le risposte da uno script, usa `--json`. Scrive su stdout una riga JSON per ogni input appena termina, senza messaggi di avanzamento, riepiloghi o avvisi di aggiornamento:

```bash
transcript1 --json 'https://youtu.be/dQw4w9WgXcQ'
```

Per ogni job terminato, la riga contiene l'oggetto trascrizione dell'API con in più `input` e `reused`. Se il testo è stato salvato su disco, trovi `file` al posto di `transcript`.

Un errore avvenuto prima della creazione dell'ID contiene `input` e un oggetto `error` con `code` e `message`. Per gli input saltati ricevi `input`, `skipped` (`exists` o `out_of_minutes`) e, dove applicabile, `file`. Il valore `exists` riguarda solo link YouTube e file locali.

Con un solo input senza `-o`, `--json` include il testo nell'oggetto e ignora `-f`. Con più input senza `-o`, salva le trascrizioni in `./transcripts`: ogni riga JSON riporta quindi `file`, non `transcript`. Quando salva un file, usa il formato scelto con `-f`. Per nascondere avanzamento e riepiloghi senza togliere testo ed errori, usa `-q` o `--quiet`.

Se vuoi avviare la trascrizione e leggerla più tardi:

```bash
transcript1 --no-wait interview.mp3
transcript1 get <id>
```

Il primo comando stampa ID e stato, oppure l'oggetto se aggiungi `--json`. Usa quell'ID al posto di `<id>` nel secondo comando. `get` aspetta se la trascrizione è ancora in corso e accetta `-f`, `-o`, `--timestamps`, `--no-wait`, `--json` e `-q`.

## Aggiornare la CLI

```bash
transcript1 update
```

Quando stderr è un terminale, la CLI cerca aggiornamenti al massimo una volta ogni 24 ore. Se trova una release più recente, ti avvisa. Disattiva il controllo con `TRANSCRIPT1_NO_UPDATE_CHECK=1`; anche `--json` e `-q` lo disattivano.

## Leggere il codice di uscita

| Codice | Esito del comando |
|---|---|
| 0 | Nessun errore: ogni input è riuscito o, per link YouTube e file locali, il file da salvare esisteva già. |
| 1 | Almeno un input non è riuscito, oppure è stato saltato perché non avevi abbastanza minuti. |
| 2 | Controlla la sintassi del comando o l'accesso all'account. |
| 130 | Il comando è stato interrotto. |

Per l'elenco completo dei comandi e delle opzioni, esegui `transcript1 --help` oppure `transcript1` senza argomenti.
