/result
Получить результат транскрибации
GET
https://gptunnel.ru/v1/audio/transcriptions Возвращает текущее состояние задачи и результат распознавания. Рекомендуется использовать callback_url в методе /create, чтобы получать результат автоматически.
Headers
| Параметр | Тип | Описание |
|---|---|---|
Authorization* | string | API ключ |
Параметры запроса
| Параметр | Тип | Описание |
|---|---|---|
task_id* | string | ID задачи, полученный из /create |
Пример запроса
curl --request GET \ --url 'https://gptunnel.ru/v1/audio/transcriptions?task_id=example_id' \ --header 'Authorization: YOUR_API_KEY'import axios from 'axios'
const response = await axios({ method: 'GET', url: 'https://gptunnel.ru/v1/audio/transcriptions?task_id=6a47bb78fb3f0d852e64c8e3', headers: { Authorization: 'YOUR_API_KEY', },})
console.log(response.data)import requests
response = requests.get( 'https://gptunnel.ru/v1/audio/transcriptions', params={'task_id': '6a47bb78fb3f0d852e64c8e3'}, headers={'Authorization': 'YOUR_API_KEY'},)
print(response.json())Пример ответа
{ "code": 0, "id": "6a47bb78fb3f0d852e64c8e3", "status": "done", "result": { "provider": "whisper-large", "metadata": { "duration": 25.93, "channels": 1 }, "results": { "channels": [ { "alternatives": [ { "transcript": "Пример распознанного текста…", "confidence": 0.99 } ] } ] } }, "error_title": null, "error_description": null}{ "code": 0, "id": "6a47bb78fb3f0d852e64c8e3", "status": "processing", "result": null, "error_title": null, "error_description": null}{ "code": 0, "id": "6a47bb78fb3f0d852e64c8e3", "status": "failed", "result": null, "error_title": "SOURCE_UNREACHABLE", "error_description": "The source did not serve the audio file (failed to fetch remote content). Make sure the URL is publicly accessible to external servers without cookies or user-agent filtering, and returns a correct Content-Length."}{ "code": 4, "message": "Record not found."}Доставка через webhook (callback_url)
Если при создании задачи в /create передан callback_url, после
перехода задачи в терминальный статус (done или failed) на этот URL отправляется
POST-запрос с телом результата. Структура тела совпадает с ответом /result: те же
error_title и error_description, поэтому ветвиться по классификации ошибок можно как при
опросе, так и на вебхуке.
{ "id": "6a47bb78fb3f0d852e64c8e3", "status": "done", "url": null, "result": { "provider": "whisper-large", "metadata": { "duration": 25.93, "channels": 1 }, "results": { "channels": [ { "alternatives": [{ "transcript": "Пример распознанного текста…", "confidence": 0.99 }] } ] } }, "error_title": null, "error_description": null}{ "id": "6a47bb78fb3f0d852e64c8e3", "status": "failed", "url": null, "error_title": "SOURCE_UNREACHABLE", "error_description": "The source did not serve the audio file (failed to fetch remote content). Make sure the URL is publicly accessible to external servers without cookies or user-agent filtering, and returns a correct Content-Length."}Ошибки транскрибации (status: failed)
Если задача завершилась со status: "failed", поле error_title содержит машиночитаемый код причины, а error_description — пояснение:
| error_title | Причина | Стоит ли повторять запрос |
|---|---|---|
SOURCE_UNREACHABLE | Провайдер распознавания не смог скачать файл по audio_url (хост блокирует внешние серверы, требует cookies, фильтрует по User-Agent). | Нет — сначала перенесите файл на хостинг, доступный извне. |
UNSUPPORTED_MEDIA | Кодек или контейнер файла не поддерживается провайдером. | Нет — сконвертируйте файл в поддерживаемый формат (например, mp3 или wav). |
TIMEOUT_TRY_AGAIN_LATER | Временный сбой или перегрузка сервиса. | Да — повторите запрос позже. |
EXCEPTION | Прочая ошибка обработки. | Можно повторить; если ошибка воспроизводится — обратитесь в поддержку. |