ДокументацияБыстрый старт
Быстрый старт
Получите первый транскрипт по ссылке на видео или из файла. Создание API-ключа и примеры для cURL, Python и Node.js.
Для работы с API нужен ключ. Ниже вы создадите его, отправите ссылку или файл и получите готовый текст. Все запросы идут на https://api.transcript1.com, ключ передаётся в заголовке Authorization.
1. Создайте аккаунт и API-ключ
Откройте страницу регистрации. Можно зарегистрироваться по почте, через Google или Microsoft. После подтверждения почты вы получите 60 бесплатных минут. При регистрации через Google или Microsoft они доступны сразу. Бесплатные минуты выдаём один раз на аккаунт, карта не нужна.
В личном кабинете откройте «API keys» (/dashboard/account/tokens) и создайте ключ. Он начинается с t1_. Скопируйте его сразу: повторно посмотреть ключ нельзя. Сохраните его в переменной окружения TRANSCRIPT1_API_KEY:
export TRANSCRIPT1_API_KEY="t1_..."2. Отправьте ссылку на видео
Можно отправить ссылку на YouTube, X, TikTok, Instagram, Facebook, Bluesky, Twitch, Dailymotion, Pinterest, LinkedIn или Snapchat. Нужна публичная запись; подходящие ссылки и ограничения собраны в разделе «Источники и параметры». Платформу API определит сам, поэтому platform можно не указывать. Начнём с YouTube.
Вызовите POST /v1/transcriptions со ссылкой на видео. С wait=60 сервер подождёт до 60 секунд, прежде чем ответить. Сам текст в ответ на создание не приходит: его нужно получить через GET /v1/transcriptions/:id?wait=60, как в примере на Python. В Node.js SDK уже есть логика ожидания и чтения транскрипта; ключ он возьмёт из TRANSCRIPT1_API_KEY.
cURL
curl -X POST "https://api.transcript1.com/v1/transcriptions?wait=60" \
-H "Authorization: Bearer $TRANSCRIPT1_API_KEY" \
-H "Content-Type: application/json" \
-d '{"url":"https://www.youtube.com/watch?v=dQw4w9WgXcQ"}'Python
import os
import requests
headers = {"Authorization": f"Bearer {os.environ['TRANSCRIPT1_API_KEY']}"}
response = requests.post(
"https://api.transcript1.com/v1/transcriptions?wait=60",
headers=headers,
json={"url": "https://www.youtube.com/watch?v=dQw4w9WgXcQ"},
)
response.raise_for_status()
transcription = response.json()
while True:
transcription = requests.get(
f"https://api.transcript1.com/v1/transcriptions/{transcription['id']}?wait=60",
headers=headers,
).json()
if transcription["status"] in ("completed", "failed", "canceled"):
break
if transcription["status"] == "completed":
print(transcription["transcript"]["text"])
else:
print(transcription["status"], transcription["error"])Node.js
Сохраните код в index.mjs и запустите node index.mjs. Если предпочитаете расширение .js, добавьте "type": "module" в package.json.
// npm i @transcript1/sdk
import { Transcript1 } from '@transcript1/sdk';
const t1 = new Transcript1();
const transcription = await t1.transcribe('https://www.youtube.com/watch?v=dQw4w9WgXcQ');
console.log(transcription.transcript.text);По умолчанию сначала проверяем субтитры на языке оригинала. Это работает для YouTube, X, TikTok, Bluesky, Dailymotion и LinkedIn. Если подходящей дорожки нет, распознаём речь с помощью ИИ. Для YouTube и X правила работы с субтитрами остаются прежними. В субтитрах не с YouTube размечены только сегменты, без временных меток отдельных слов.
Если задать source=stt или включить определение говорящих, API сразу распознаёт речь из аудио. Режим captions (только субтитры), напротив, не скачивает аудио и не запускает STT. Подробнее о выборе режима — в разделе «Источники и параметры».
3. Получите готовый текст
Код HTTP-ответа подскажет, что делать дальше:
200— задача уже завершилась: проверьте, какой у неёstatus—completed,failedилиcanceled.202— задача ещё выполняется. ВызывайтеGET /v1/transcriptions/:id?wait=60, пока не получите конечныйstatus. Каждый такой запрос ждёт до 60 секунд.
При completed в ответе будет транскрипт. Пример ниже сокращён:
{
"id": "tr_8fK2Lm0PqRsTuVwXyZaBcD",
"object": "transcription",
"status": "completed",
"transcript_source": "youtube_captions",
"language": "en",
"billed_minutes": 4,
"transcript": {
"text": "Welcome back to the channel. Today we are looking at how transcripts are made.",
"speakers": [],
"segments": [
{ "start": 0, "end": 4.2, "speaker": null, "language": "en", "text": "Welcome back to the channel." },
{ "start": 4.2, "end": 9.8, "speaker": null, "language": "en", "text": "Today we are looking at how transcripts are made." }
]
}
}Полный текст находится в transcript.text. В transcript.segments он разбит на сегменты: start и end задают начало и конец каждого сегмента в секундах.
Нужен текстовый файл или субтитры? Укажите формат text, srt или vtt:
curl "https://api.transcript1.com/v1/transcriptions/tr_8fK2Lm0PqRsTuVwXyZaBcD?format=srt" \
-H "Authorization: Bearer $TRANSCRIPT1_API_KEY"Здесь используется GET /v1/transcriptions/:id?format=srt. Текст и субтитры доступны только при completed. Пока задача не завершилась, API вернёт JSON с текущим статусом, даже если вы указали другой формат.
4. Отправьте файл
Аудио- или видеофайл с компьютера можно передать одним запросом multipart/form-data. Так загружаются файлы до 95 МБ:
curl -X POST "https://api.transcript1.com/v1/transcriptions?wait=60" \
-H "Authorization: Bearer $TRANSCRIPT1_API_KEY" \
-F [email protected]Файлы до 2 ГБ загружайте по частям. Если соединение прервётся, загрузку можно продолжить. Порядок запросов — в разделе «Загрузка файлов».
Что дальше
- Источники и параметры — выберите субтитры или распознавание речи, язык и определение говорящих.
- Загрузка файлов — отправьте файл целиком или по частям.
- Вебхуки — настройте подписанные уведомления о завершении транскрибации.
- MCP-сервер — подключите Claude, ChatGPT, Cursor, VS Code или Claude Code.
- Справочник API — найдите нужный эндпоинт и его параметры.
Дата обновления 14 октября 2026 г.