# Работа из терминала (CLI)

> Расшифровывайте видео по ссылке и файлы через transcript1 CLI. Обрабатывайте целые папки, сохраняйте субтитры и передавайте JSON скриптам и ИИ-агентам.

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

Команда `transcript1` принимает ссылку на видео или путь к аудио- или видеофайлу и возвращает транскрипт. Подойдут YouTube, X, TikTok, Instagram, Facebook и Bluesky; для других платформ проверьте требования к версии ниже. Все форматы ссылок и ограничения собраны в разделе [«Источники и параметры»](https://transcript1.com/ru/docs/sources-and-options). CLI устанавливается отдельным исполняемым файлом, без Node.js.

Поддержка ссылок из соцсетей появилась в CLI 1.2.0. Версии 1.1.0 и старше работают только с YouTube: другие ссылки они отклонят ещё до запроса к API. Обновить CLI можно командой `transcript1 update`.

Версия 1.2.0 — минимальная для первых шести платформ, но не гарантия поддержки Twitch, Dailymotion, Pinterest, LinkedIn и Snapchat. Для них нужен релиз, в который уже добавлена соответствующая платформа. Старый клиент может отклонить ссылку, не обращаясь к API.

Пост должен быть публичным. Если в нём несколько видео, получим текст только из первого. Какие короткие ссылки работают — см. [«Источники и параметры»](https://transcript1.com/ru/docs/sources-and-options).

## Установка

На macOS и Linux с архитектурой x64 или ARM64 выполните:

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

Исполняемый файл появится в `~/.local/bin`. Если папку нужно добавить в PATH, установщик подскажет как. Для установки в другую папку задайте `TRANSCRIPT1_INSTALL_DIR`.

Вместе с `transcript1` появится короткая команда `t1`. Для zsh установщик добавит в `~/.zshrc` строку `alias transcript1='noglob transcript1'`: она позволяет передавать ссылки с `?` без кавычек. Если не хотите менять настройки оболочки, задайте `TRANSCRIPT1_NO_MODIFY_SHELL=1`.

На Windows x64 выполните в PowerShell:

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

Установщик сохранит CLI в `%LOCALAPPDATA%\Programs\transcript1`, добавит короткую команду `t1.cmd` и включит папку в пользовательский PATH. После установки откройте новый терминал.

## Как войти

Запустите вход:

```bash
transcript1 login
```

CLI откроет transcript1.com в браузере. По SSH или без графического окружения вы получите ссылку в терминале. Откройте её, сверьте код на странице с кодом в терминале и нажмите «Approve». После подтверждения CLI сохранит ключ `transcript1 CLI (<computer name>)`. Этот ключ будет виден на странице [«API keys»](https://transcript1.com/dashboard/account/tokens).

Чтобы только вывести ссылку и не открывать браузер, используйте `transcript1 login --no-browser`.

Уже есть ключ? Вставьте его через `transcript1 login --with-key` или передайте через stdin: `transcript1 login < key.txt`.

Для CI и ИИ-агентов задайте переменную `TRANSCRIPT1_API_KEY`: CLI использует её вместо сохранённого ключа. Если у агента нет интерактивного терминала и ключа, он может вызвать `transcript1 login < /dev/null` и передать вам ссылку для подтверждения доступа.

Для выхода выполните `transcript1 logout`. Команда отзовёт ключ CLI и удалит локальную копию. Если отзыв не удался, локальная копия всё равно удалится, а CLI попросит отозвать ключ вручную на странице «API keys». Ключи, которые вы вставили сами, всегда нужно отзывать на этой странице.

## Видео по ссылке

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

Команда дождётся готового текста и выведет его в stdout; сообщения о ходе работы пойдут в stderr. Сначала используем подходящие субтитры на языке оригинала с YouTube, X, TikTok, Bluesky, Dailymotion или LinkedIn. Если их нет, распознаём речь с помощью ИИ.

В zsh безопаснее заключать ссылку в кавычки. Без них `&` разделит команду, а `?` запустит поиск по шаблону. Добавленный установщиком алиас отключает обработку `?`, но не `&`.

## Файл с компьютера

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

Передайте путь к файлу — CLI сам загрузит его и дождётся текста. Максимальный размер — 2 ГБ (2 000 000 000 байт). Подходящие расширения: mp3, wav, m4a, flac, ogg, opus, mp4, mov, webm и mkv.

## Несколько записей за один запуск

Укажите несколько файлов, ссылок или целую папку:

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

Можно использовать шаблоны вроде `recordings/*.mp3`, в том числе на Windows. Из папки CLI берёт только аудио- и видеофайлы верхнего уровня и сортирует их по имени. При обработке нескольких записей по умолчанию создаёт отдельный файл для каждой в `./transcripts`. Число одновременных задач задаётся флагом `--jobs`: от 1 до 20, по умолчанию 2.

Список можно передать через stdin: одна ссылка или путь на строку, вместо аргументов — `-`. Пример для оболочки macOS или Linux:

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

CLI пропускает пустые строки и комментарии, начинающиеся с `#`. Если одна и та же строка встречается несколько раз, обрабатывает её только один раз.

Для одной записи `-o` задаёт имя файла. Если указанный путь уже является папкой или заканчивается на `/`, текст сохраняется в эту папку. Для нескольких записей `-o` всегда указывает папку. Если её ещё нет, CLI создаст её.

Если файл транскрипта уже существует, CLI пропустит соответствующую ссылку YouTube или локальный файл. Для повторной обработки добавьте `--overwrite`:

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

## Форматы и параметры

| Флаг | Для чего нужен |
|---|---|
| `-f`, `--format` | Выбирает `text` (по умолчанию), `srt`, `vtt` или `json`. В JSON приходит объект транскрибации из API. |
| `--speakers` | Включает определение говорящих с метками Speaker 1, Speaker 2 и далее. |
| `--timestamps` | Ставит `[hh:mm:ss]` перед каждой строкой. Работает только с `text`. |
| `--language` | Задаёт язык кодом ISO 639-1. По умолчанию — `auto`. |
| `--source` | Выбирает `auto` (по умолчанию) или `stt`. Для YouTube, X, TikTok, Bluesky, Dailymotion и LinkedIn есть также `captions`, если доступна подходящая дорожка. Режим `captions` (только субтитры) не скачивает аудио и не переходит на STT. |
| `--fresh` | Создаёт новую транскрибацию по ссылке вместо использования прежней за последние 24 часа. |

Так можно включить определение говорящих и временные метки:

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

Вместе передать `--speakers` и `--source captions` нельзя. При `auto` флаг `--speakers` сразу включает распознавание речи, без субтитров. YouTube и X по-прежнему работают со своими дорожками; кроме них доступны субтитры TikTok, Bluesky, Dailymotion и LinkedIn. У всех субтитров не с YouTube есть метки только для сегментов: даже автоматические дорожки возвращают `words: null`. Подробная таблица и правила выбора языка — в разделе [«Источники и параметры»](https://transcript1.com/ru/docs/sources-and-options).

## Скрипты и ИИ-агенты

Агенту с доступом к оболочке достаточно установить CLI и задать `TRANSCRIPT1_API_KEY`. После этого он может вызывать `transcript1 <link>` или `transcript1 <file>`. Если ваш клиент работает через MCP, используйте [настройку MCP-сервера](https://transcript1.com/ru/docs/mcp).

Для автоматизации добавьте `--json`. По мере завершения задач в stdout будет приходить по одной JSON-строке для каждой записи — без прогресса, сводки и уведомлений об обновлении:

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

Для завершённой задачи строка содержит объект транскрибации из API, а также `input` и `reused`. Если текст сохранён в файл, вместо `transcript` будет поле `file`. Если ошибка возникла до создания ID, вы получите `input` и объект `error` с `code` и `message`.

Для пропущенной записи придут `input`, причина в `skipped` (`exists` или `out_of_minutes`) и, когда применимо, `file`. Причина `exists` используется только для ссылок YouTube и локальных файлов.

Для одной записи без `-o` флаг `--json` возвращает транскрипт прямо в объекте; `-f` при этом не учитывается. Для нескольких записей без `-o` тексты сохраняются в `./transcripts`, а JSON-строки содержат `file` вместо `transcript`. При записи в файл формат всегда задаётся через `-f`. Если нужно убрать только прогресс и сводку, но оставить текст и ошибки, используйте `-q` или `--quiet`.

Задачу можно запустить и забрать текст позже:

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

Подставьте вместо `<id>` ID из первой команды. Флаг `--no-wait` выводит ID и статус, а в сочетании с `--json` — объект. Команда `get` дожидается завершения задачи. Ей доступны флаги `-f`, `-o`, `--timestamps`, `--no-wait`, `--json` и `-q`.

## Как обновить CLI

```bash
transcript1 update
```

Если stderr подключён к терминалу, CLI проверяет новые релизы не чаще раза в 24 часа. Когда обновление есть, появляется уведомление. Проверку можно отключить через `TRANSCRIPT1_NO_UPDATE_CHECK=1`; флаги `--json` и `-q` также скрывают уведомление.

## Коды завершения

| Код | Что означает |
|---|---|
| 0 | Все записи обработаны либо пропущены, потому что для ссылки YouTube или локального файла уже есть файл транскрипта. |
| 1 | Хотя бы одну запись не удалось обработать или пришлось пропустить из-за нехватки минут. |
| 2 | Неверный вызов команды или проблема со входом. |
| 130 | Выполнение прервано. |

Полный список команд и флагов доступен через `transcript1 --help` или просто `transcript1` без аргументов.
