# CLI transcript1

> Transcrivez des vidéos et des fichiers depuis le terminal, traitez des dossiers entiers et récupérez du texte, des sous-titres ou du JSON pour vos scripts et agents.

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

Passez un lien vidéo ou un fichier audio ou vidéo à `transcript1` : la commande prépare sa transcription. Elle accepte YouTube, X, TikTok, Instagram, Facebook et Bluesky, ainsi que les plateformes ajoutées dans les versions indiquées ci-dessous. Consultez [Sources et options](https://transcript1.com/fr/docs/sources-and-options) pour les liens acceptés et leurs restrictions. Le CLI s'installe seul, sans Node.js.

Pour les liens des réseaux sociaux, installez au minimum la version 1.2.0. Avec la version 1.1.0 ou une version antérieure, seuls les liens YouTube fonctionnent : le CLI refuse les autres avant même d'appeler l'API. Pour le mettre à jour, lancez `transcript1 update`.

La version 1.2.0 couvre les six plateformes d'origine. Pour Twitch, Dailymotion, Pinterest, LinkedIn et Snapchat, il vous faut une version qui intègre ces plateformes. Un ancien CLI peut refuser leurs liens avant de les envoyer au serveur.

Utilisez des publications publiques. Si un post contient plusieurs vidéos, nous transcrivons seulement la première. Les liens courts acceptés et les limites figurent dans [Sources et options](https://transcript1.com/fr/docs/sources-and-options).

## Installation

Sur macOS ou Linux (x64 ou ARM64) :

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

Le binaire s'installe dans `~/.local/bin`. Si votre PATH ne contient pas ce dossier, l'installateur vous indique quoi ajouter. Pour choisir un autre dossier, définissez `TRANSCRIPT1_INSTALL_DIR`.

Vous pouvez aussi utiliser le raccourci `t1`. Sous zsh, l'installateur ajoute `alias transcript1='noglob transcript1'` dans `~/.zshrc` : les liens avec `?` fonctionnent alors sans guillemets. Définissez `TRANSCRIPT1_NO_MODIFY_SHELL=1` si vous ne souhaitez pas modifier votre configuration shell.

Sous Windows x64, ouvrez PowerShell :

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

Le CLI s'installe dans `%LOCALAPPDATA%\Programs\transcript1`, avec le raccourci `t1.cmd`. L'installateur ajoute ce dossier à votre PATH utilisateur. Ouvrez ensuite un nouveau terminal.

## Connexion

Lancez la commande de connexion :

```bash
transcript1 login
```

Votre navigateur ouvre transcript1.com. En SSH ou sans interface graphique, le CLI affiche le lien à ouvrir. Vérifiez que le code de la page correspond à celui du terminal, puis cliquez sur « Approve ». Le CLI attend votre accord, puis enregistre une clé nommée `transcript1 CLI (<computer name>)`. Elle apparaît dans [« API keys »](https://transcript1.com/dashboard/account/tokens).

Pour obtenir le lien sans ouvrir le navigateur, ajoutez `--no-browser` : `transcript1 login --no-browser`.

Vous avez déjà une clé ? Collez-la avec `transcript1 login --with-key`, ou transmettez-la sur l'entrée standard : `transcript1 login < key.txt`.

Dans une CI ou pour un agent, définissez `TRANSCRIPT1_API_KEY`. Cette variable passe avant la clé enregistrée. Sans terminal ni clé, un agent peut lancer `transcript1 login < /dev/null`, puis vous transmettre le lien pour autoriser la connexion.

Pour vous déconnecter, lancez `transcript1 logout`. La commande révoque la clé créée par le CLI et l'efface de votre ordinateur. Si elle n'arrive pas à la révoquer, elle efface quand même la copie locale et vous invite à terminer dans « API keys ». Les clés que vous avez collées doivent toujours être révoquées depuis cette page.

## Transcrire une vidéo en ligne

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

Le texte s'affiche sur stdout quand la transcription est prête ; vous suivez la progression sur stderr. Sur YouTube, X, TikTok, Bluesky, Dailymotion et LinkedIn, le CLI utilise d'abord les sous-titres dans la langue d'origine s'ils sont exploitables. Sinon, il passe à la transcription par IA.

Sous zsh, pensez aux guillemets autour du lien. Sans eux, `&` sépare les commandes et `?` sert de joker. L'alias ajouté à l'installation évite le problème du `?`, pas celui du `&`.

## Transcrire un fichier

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

Le CLI envoie le fichier, puis attend que le texte soit prêt. Vous pouvez importer jusqu'à 2 Go (2 000 000 000 octets), avec les extensions mp3, wav, m4a, flac, ogg, opus, mp4, mov, webm et mkv.

## Transcrire plusieurs fichiers ou liens

Indiquez plusieurs fichiers, plusieurs liens ou un dossier :

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

Vous pouvez utiliser un motif comme `recordings/*.mp3`, même sous Windows. Si vous indiquez un dossier, le CLI prend ses fichiers audio et vidéo, les trie par nom et ne parcourt pas les sous-dossiers. Avec plusieurs fichiers ou liens, il enregistre une transcription par source dans `./transcripts` par défaut. Réglez le nombre de traitements simultanés avec `--jobs` : de 1 à 20, avec 2 par défaut.

Pour lire les sources depuis stdin, passez `-`, avec un lien ou un chemin de fichier par ligne. Exemple sous macOS ou Linux :

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

Le CLI ignore les lignes vides et celles qui commencent par `#`. Il ne traite qu'une fois les lignes identiques.

Avec une seule source, `-o` indique le fichier à créer. Le CLI y voit un dossier si ce chemin existe déjà comme dossier ou se termine par `/`. Avec plusieurs sources, `-o` désigne toujours un dossier. Le CLI crée les dossiers manquants.

Pour les liens YouTube et les fichiers locaux, le CLI passe au suivant si le fichier de transcription existe déjà. Ajoutez `--overwrite` pour relancer la transcription et remplacer ce fichier :

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

## Formats et options

| Option | Utilisation |
|---|---|
| `-f`, `--format` | Choisissez `text` (par défaut), `srt`, `vtt` ou `json`. Avec `json`, vous recevez l'objet de transcription de l'API. |
| `--speakers` | Ajoute les étiquettes Speaker 1, Speaker 2, etc. aux interventions. |
| `--timestamps` | Ajoute `[hh:mm:ss]` au début de chaque ligne, en format texte uniquement. |
| `--language` | Indiquez un code de langue ISO 639-1, ou laissez `auto` (valeur par défaut). |
| `--source` | Choisissez `auto` (par défaut) ou `stt`. Sur YouTube, X, TikTok, Bluesky, Dailymotion et LinkedIn, vous pouvez aussi choisir `captions` (sous-titres uniquement) si une piste est exploitable. Ce mode ne télécharge pas l'audio et ne lance jamais le STT. |
| `--fresh` | Relance la transcription du lien au lieu de réutiliser celle des dernières 24 heures. |

Pour afficher à la fois les locuteurs et les horodatages :

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

Ne combinez pas `--speakers` avec `--source captions`. En mode auto, demander l'identification des locuteurs lance la transcription audio sans passer par les sous-titres. Le fonctionnement des sous-titres YouTube et X ne change pas ; TikTok, Bluesky, Dailymotion et LinkedIn permettent aussi de récupérer les pistes disponibles. Hors YouTube, les sous-titres donnent les temps par segment, pas par mot (`words: null`), même pour les pistes générées automatiquement. Consultez [Sources et options](https://transcript1.com/fr/docs/sources-and-options) pour les possibilités de chaque plateforme et le choix de la langue.

## Scripts et agents

Si votre agent peut exécuter des commandes shell, faites-lui installer le CLI et définissez `TRANSCRIPT1_API_KEY`. Il peut ensuite appeler `transcript1 <link>` ou `transcript1 <file>`. Pour un client MCP, suivez plutôt la [configuration du serveur MCP](https://transcript1.com/fr/docs/mcp).

Ajoutez `--json` pour exploiter stdout dans un script. Chaque traitement terminé produit une ligne JSON, sans progression, récapitulatif ni notification de mise à jour :

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

La ligne contient l'objet de transcription de l'API, complété par `input` et `reused`. Si le CLI enregistre le texte dans un fichier, `file` remplace `transcript`. Si une erreur survient avant la création d'un identifiant, la ligne contient `input` et un objet `error` avec `code` et `message`. Pour une source ignorée, vous recevez `input`, `skipped` (`exists` ou `out_of_minutes`) et, s'il y a lieu, `file`. Le motif `exists` concerne uniquement les liens YouTube et les fichiers locaux.

Sans `-o`, le comportement dépend du nombre de sources. Avec une seule, `--json` inclut le texte dans l'objet et ignore `-f`. Avec plusieurs, le CLI écrit les transcriptions dans `./transcripts` et indique `file` au lieu de `transcript` dans chaque ligne JSON. Dès qu'il écrit un fichier, `-f` choisit son format. Pour masquer seulement la progression et les récapitulatifs, utilisez `-q` ou `--quiet` : le texte et les erreurs restent visibles.

Vous pouvez aussi lancer la transcription, puis la récupérer dans un second temps :

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

La première commande affiche un identifiant : utilisez-le à la place de `<id>`. Avec `--no-wait`, vous recevez l'identifiant et le statut, ou l'objet complet si vous ajoutez `--json`. La commande `get` attend la fin du traitement. Elle accepte `-f`, `-o`, `--timestamps`, `--no-wait`, `--json` et `-q`.

## Mises à jour

```bash
transcript1 update
```

Quand stderr est un terminal, le CLI cherche une mise à jour au maximum une fois toutes les 24 heures et vous prévient si une version est disponible. Pour désactiver cette vérification, définissez `TRANSCRIPT1_NO_UPDATE_CHECK=1`. Les options `--json` et `-q` la désactivent aussi.

## Codes de sortie

| Code | À interpréter comme suit |
|---|---|
| 0 | Toutes les sources ont été traitées, ou ignorées parce que le fichier existait déjà (liens YouTube et fichiers locaux). |
| 1 | Au moins un traitement a échoué, ou le CLI a ignoré une source faute de minutes. |
| 2 | La commande est incorrecte ou la connexion au compte pose problème. |
| 130 | Vous avez interrompu la commande. |

Pour consulter toutes les commandes et options, lancez `transcript1 --help` ou simplement `transcript1`.
