Перейти к основному содержимому
TransConvert

Video Conversion API

Convert video between MP4, MOV, AVI, MKV, and WEBM. Video encodes can take minutes, so this is an async, submit-then-poll endpoint rather than one blocking request — same ffmpeg engine behind TransConvert's website converter.

Конвертация видео и аудио может занимать несколько минут — слишком долго, чтобы держать открытым один синхронный запрос, поэтому вместо эндпоинта выше здесь используется схема «отправить, затем опрашивать». Отправьте файл, сразу получите job_id в ответ, а затем опрашивайте его статус, пока задача не завершится.

Отправка задачи

POST https://transconvert.com/api/v1/convert-async.php
Field Description
AuthorizationRequired. "Bearer tc_live_...".
categorySet to "video".
targetRequired. Output format code: "MP4", "MOV", "AVI", "MKV", or "WEBM".
fileRequired. The video file.
TransConvert
curl -X POST \
  https://transconvert.com/api/v1/convert-async.php \
  -H "Authorization: Bearer tc_live_your_key_here" \
  -F "category=video" \
  -F "target=MP4" \
  -F "file=@clip.mov" \
  -o output.mp4

Опрос статуса

Опрашивайте этот адрес каждые несколько секунд, передавая полученный job_id. «status» принимает одно из значений: queued, processing, completed или failed.

GET https://transconvert.com/api/v1/job-status.php?job_id=job_...
cURL
curl -H "Authorization: Bearer tc_live_your_key_here" \
  https://transconvert.com/api/v1/job-status.php?job_id=job_...

Скачивание результата

Когда status становится «completed», в ответе появляется download_url — тот же адрес статуса с добавленным &download=1. Запрос по нему передаёт необработанные байты конвертированного файла с теми же заголовками, что и у остальных эндпоинтов на этой странице. Результат удаляется сразу после скачивания либо автоматически по истечении короткого срока хранения, если его так и не скачали.

scheduleРезультаты задач удаляются сразу после скачивания либо автоматически по истечении короткого срока хранения, если их так и не скачали — скачивайте их не откладывая.

Ошибки

Каждая ошибка возвращает JSON с полем «code», по которому можно ветвить логику в коде, и человекочитаемым «message». Некоторые ошибки содержат дополнительные поля (например, quota_exceeded включает «limit» и «used»).

Status & code When it happens
401 missing_keyЗаголовок Authorization не был передан.
401 invalid_keyТакого ключа не существует или он отозван.
403 account_suspendedАккаунт, которому принадлежит этот ключ, заблокирован.
403 plan_requiredАккаунт на бесплатном тарифе — для доступа к API нужен Basic, Lite, Pro или Team.
400 invalid_category«category» не равно «image» или «document».
400 invalid_target«target» не является поддерживаемым выходным форматом для этой категории.
400 no_fileФайл не был передан или загрузка не удалась — поле должно называться «file».
413 file_too_largeФайл превышает максимальный размер загрузки для вашего тарифа.
429 quota_exceededМесячная квота минут конвертации по тарифу исчерпана. Обновляется в начале следующего календарного месяца.
429 concurrency_limitДля этого аккаунта уже выполняется слишком много конвертаций одновременно (общий лимит с сайтом) — дождитесь завершения одной из них и повторите запрос.
404 job_not_foundЗадачи с таким id для этого аккаунта не существует (тот же ответ возвращается и для job_id другого аккаунта — его существование никогда не раскрывается).
410 result_goneЗадача завершена, но её результат уже удалён (результаты удаляются сразу после скачивания либо автоматически по истечении короткого срока хранения).
400/415/422/500/503 conversion_failedСам файл не удалось конвертировать — причина указана в «message». Код статуса зависит от причины: 400/415/422 означают, что файл или формат назначения не сработают, сколько бы вы ни повторяли попытку; 500/503 означают проблему на стороне сервера, а 503 — тот случай, когда стоит выполнить короткую повторную попытку.

Supported formats

MP4, MOV, AVI, MKV, WEBM

По теме