Автоматизация транскрипции аудио с n8n и Наговори
Автоматизация транскрипции аудио с n8n и Наговори
Вы записываете совещание, файл попадает в папку — и расшифровка автоматически появляется в ваших заметках. Без скриптов, без серверов, без ручных API-вызовов. В этом руководстве мы построим такой сценарий с помощью n8n — инструмента автоматизации с открытым кодом — и API Наговори.
Почему n8n?
n8n — это self-hosted платформа автоматизации с визуальным редактором. Как Zapier, но данные остаются у вас и нет платы за каждое выполнение. Поддерживает сотни сервисов и произвольные HTTP-запросы.
Для задач транскрипции n8n идеален:
- Триггер на всё: новый файл в Google Drive, сообщение в Telegram, вложение в email, webhook от CRM.
- Без кода: визуальные ноды для HTTP-запросов, условий и преобразования данных.
- Self-hosted: аудиофайлы и расшифровки не покидают вашу инфраструктуру.
- Повторы: встроенная обработка ошибок и автоматические ретраи.
Что мы создадим
Workflow, который:
- Срабатывает при появлении аудиофайла (Google Drive, Telegram или webhook)
- Загружает файл в Наговори через presigned URL
- Создаёт задание на транскрипцию
- Ожидает завершения (polling)
- Отправляет результат в Slack, Notion, email или другое
Предварительные требования
- Экземпляр n8n (self-hosted или n8n.cloud)
- API-ключ Наговори (создайте в Профиле)
- Место для результатов (Slack, Notion, Google Docs и т.д.)
Шаг 1: Настройка учётных данных
В n8n перейдите в Credentials и создайте Header Auth:
- Имя:
Nagovori API - Header Name:
Authorization - Header Value:
Bearer nag_ВАШ_КЛЮЧ
Эти данные будут использоваться во всех HTTP Request нодах.
Шаг 2: Создание триггера
Выберите триггер в зависимости от источника файлов:
Вариант A: Google Drive
Добавьте ноду Google Drive Trigger:
- Event: File Created
- Folder: папка для аудиозагрузок
- Filters: MIME-типы
audio/*
Вариант B: Webhook
Добавьте ноду Webhook для кастомных интеграций:
- Method: POST
- Path:
/transcribe - Ваша система отправляет POST с
{"file_url": "https://..."}.
Вариант C: Telegram
Добавьте ноду Telegram Trigger:
- Updates: Message
- Фильтруйте голосовые и аудио через последующую ноду IF.
Шаг 3: Получение presigned URL
Добавьте ноду HTTP Request:
- Method: POST
- URL:
https://api.nagovori.ru/v1/uploads/presign - Authentication: ваш
Nagovori APIcredential - Body (JSON):
{
"filename": "{{ $json.fileName || 'recording.mp3' }}",
"content_type": "{{ $json.mimeType || 'audio/mpeg' }}",
"size_bytes": {{ $json.fileSize || 0 }}
}
В ответе вы получите upload_url и object_key.
Шаг 4: Загрузка файла
Добавьте ещё одну ноду HTTP Request:
- Method: PUT
- URL:
{{ $json.upload_url }}(из ответа presign) - Body: Binary data (аудиофайл из триггера)
- Headers:
Content-Type: audio/mpeg
Шаг 5: Создание задания на транскрипцию
Добавьте ноду HTTP Request:
- Method: POST
- URL:
https://api.nagovori.ru/v1/transcriptions - Authentication: ваш
Nagovori APIcredential - Body (JSON):
{
"object_key": "{{ $node['Presign'].json.object_key }}",
"filename": "recording.mp3",
"content_type": "audio/mpeg",
"size_bytes": {{ $json.fileSize || 0 }},
"language": "auto"
}
Шаг 6: Ожидание результата
Наговори обрабатывает аудио асинхронно. Нужно опрашивать статус до completed или failed.
Создайте Loop с:
- Wait нода: 5 секунд
- HTTP Request нода:
- Method: GET
- URL:
https://api.nagovori.ru/v1/transcriptions/{{ $json.id }} - Authentication:
Nagovori API
- IF нода: проверка
status === "completed"или"failed"- Если да: выход из цикла
- Если нет: продолжение
Шаг 7: Отправка результата
Когда транскрипция завершена, направьте transcript_text в нужное место:
Slack
- Channel:
#transcripts - Message:
Новая расшифровка {{ $json.filename }}:\n\n{{ $json.transcript_text }}
Notion
- Operation: Create Page
- Title:
Совещание — {{ $json.filename }} - Content: поле
transcript_text
Отправьте письмо с текстом расшифровки.
Советы
- Таймаут: ограничьте опрос 20 итерациями (100 секунд). Длинные файлы могут обрабатываться несколько минут.
- Ошибки: добавьте Error Trigger workflow для уведомлений о сбоях.
- Пакетная обработка: используйте Split in Batches при обработке нескольких файлов (Наговори допускает 1 параллельную транскрипцию на аккаунт).
- Размер файла: presigned URL действителен 15 минут. Для больших файлов убедитесь, что загрузка завершается в это окно.
Стоимость
Каждая транскрипция списывает минуты из вашего баланса — так же, как через веб-интерфейс. Дополнительной платы за API нет. 60-минутная запись использует 60 минут баланса.
Следующие шаги
- Прочитайте полную документацию API
- Ознакомьтесь с примерами кода на Python, TypeScript и Go
- Изучите готовые workflow сообщества n8n