550W · API для разработчиков

API для разработчиков

API обработки изображений и видео

Что можно создать

Быстрая интеграция

1

Пополнить баланс

Видеозадачи оплачиваются в зависимости от длительности обработки и разрешения. Изображение стоит 10 кредитов за успешную задачу; неудачная обработка не оплачивается.

Использование и оплата
2

Создать API Key

Добавляйте userNo и API Key в каждый запрос. Загрузка необязательна: используйте /open/uploadVideo или укажите общедоступный videoUrl.

Создать API Key
3

Примеры интеграции

Выберите сценарий для своего продукта. Каждый шаг ведёт прямо к описанию соответствующего API.

Примеры интеграции
Base URLhttps://www.550wai.cnPOST · multipart/form-data

Быстрый старт

Добавляйте userNo и API Key в каждый запрос. Загрузка необязательна: используйте /open/uploadVideo или укажите общедоступный videoUrl.

curl -X POST https://www.550wai.cn/open/submitTask \\
  -H 'Content-Type: application/x-www-form-urlencoded' \\
  --data-urlencode 'userNo=YOUR_USER_NO' --data-urlencode 'apiKey=YOUR_API_KEY' \\
  --data-urlencode 'videoUrl=https://example.com/video.mp4' \\
  --data-urlencode 'width=1920' --data-urlencode 'height=1080' --data-urlencode 'duration=30' \\
  --data-urlencode 'x1=0' --data-urlencode 'y1=0' --data-urlencode 'x2=1920' --data-urlencode 'y2=200'

Общие правила

Обязательно

Добавляйте userNo и API Key в каждый запрос. Загрузка необязательна: используйте /open/uploadVideo или укажите общедоступный videoUrl.

Ответ

Ответы содержат code и message. Задачи проходят состояния waiting и processing, затем success или failed. При успехе используйте resultUrl, при ошибке проверьте failCode. Файлы результата имеют срок действия. Для международных аккаунтов (clientType=overseas) поле message возвращается на английском. В логике используйте независимые от языка code, status, failCode и имена полей.

Удаление субтитров и водяных знаков с видео

uploadVideo → submitTask → taskDetail

Состояния задачи

Ответы содержат code и message. Задачи проходят состояния waiting и processing, затем success или failed. При успехе используйте resultUrl, при ошибке проверьте failCode. Файлы результата имеют срок действия.

waiting→processing→successfailed

Обрабатывайте ошибки с помощью code, message, status, failCode и refundStatus.

Асинхронные задачи и надежность

Проверки статуса задач и вебхуки

Настройте общедоступный HTTPS callbackUrl для получения окончательного статуса задачи. Альтернативно, запросите taskDetail с помощью taskId и постепенно увеличивайте время между проверками.

Идемпотентные попытки

Для каждой новой задачи передавайте уникальный Idempotency-Key. При повторной отправке той же задачи используйте тот же ключ, чтобы получить исходный taskId без создания дубликата и повторного списания кредитов.

Асинхронная обработка изображений

Установите для sync значение false, сохраните task.taskId и вызывайте imageWatermarkTaskDetail, пока статус не станет success или failed. В случае успеха прочтите task.resultUrl.

resultUrl · 24 h

Примеры интеграции

Выберите сценарий для своего продукта. Каждый шаг ведёт прямо к описанию соответствующего API.

Удаление субтитров и водяных знаков с видео

  1. videoUrl · uploadVideo · Удаление субтитров и водяных знаков с видео · uploadVideo
  2. submitTask · Удаление субтитров и водяных знаков с видео · submitTask
  3. taskId · taskDetail · callbackUrl
  4. При success скачайте resultUrl; при failed проверьте failCode и failReason.

Удаление водяных знаков с изображений

  1. removeImageWatermark · Удаление водяных знаков с изображений · removeImageWatermark
  2. sync=true → resultUrl · sync=false → taskId
  3. imageWatermarkTaskDetail · Проверьте итоговый статус

Задачи и аккаунт

  1. userNo · apiKey · Обязательно в каждом запросе
  2. queryCredits · Задачи и аккаунт · credits
  3. taskList · Удаление субтитров и водяных знаков с видео · Задачи и аккаунт. Удаленные задачи исключаются из taskDetail и taskList. Значения состояния задачи остаются waiting, processing, success или failed.

Доступные методы

POST/open/uploadVideo

Удаление субтитров и водяных знаков с видео · uploadVideo

POST/open/submitTask

Удаление субтитров и водяных знаков с видео · submitTask

POST/open/taskDetail

Удаление субтитров и водяных знаков с видео · Состояния задачи

POST/open/taskList

Удаление субтитров и водяных знаков с видео · Задачи и аккаунт. Удаленные задачи исключаются из taskDetail и taskList. Значения состояния задачи остаются waiting, processing, success или failed.

POST/open/deleteTask

Удалить задачу · Помечает видеозадачу как удалённую и сразу возвращает ответ. Загруженный исходник, результат обработки и файлы повторных попыток затем асинхронно удаляются из VOD в фоновом режиме. Списанные кредиты не возвращаются. Удаленные задачи исключаются из taskDetail и taskList. Значения состояния задачи остаются waiting, processing, success или failed.

POST/open/removeImageWatermark

Удаление водяных знаков с изображений · removeImageWatermark

POST/open/imageWatermarkTaskDetail

Удаление водяных знаков с изображений · Состояния задачи

POST/open/queryCredits

Задачи и аккаунт · credits

POST

/open/uploadVideo

Удаление субтитров и водяных знаков с видео · uploadVideo

Формат запроса: multipart/form-data

Параметры запроса

ПолеТипОбязательноОписание
userNostringДа550W userNo
apiKeystringДаAPI Key
filefileДаMP4/MOV · ≤ 1080p · ≤ 30 min · Размер файла ≤ 1 GiB

Поля ответа

ПолеТипОписание
codenumberКод результата; 200 означает успех
messagestringСообщение о состоянии
videoUrlstringURL загруженного видео
coverUrlstringURL-адрес обложки видео
widthnumberШирина видео в пикселях
heightnumberВысота видео в пикселях
durationnumberПродолжительность видео в секундах

Ошибки endpoint

codeЗначениеОписание
-100Ошибка аутентификации или квотыТипичные причины: userNo · API Key · credits
-200Недопустимый параметрТипичные причины: field · URL · size · duration · Idempotency-Key
-500Внутренняя ошибкаТипичные причины: server · retry
POST

/open/submitTask

Удаление субтитров и водяных знаков с видео · submitTask

Формат запроса: application/x-www-form-urlencoded

Параметры запроса

ПолеТипОбязательноОписание
userNostringДа550W userNo
apiKeystringДаAPI Key
videoUrlstringДаHTTP(S) URL · ≤ 2048 символов
widthnumberДаширина видео · px
heightnumberДавысота видео · px · max ≤ 1920 · min ≤ 1080
durationnumberДа1–1800 s
x1numberДавверху слева X · px
y1numberДавверху слева Y · px
x2numberДавнизу справа X · px
y2numberДавнизу справа Y · px · x1 = y1 = x2 = y2 = 0: полный кадр
modestringНетnormal (по умолчанию) · protect
fileNamestringНетUTF-8
coverUrlstringНетHTTP(S) URL
callbackUrlstringНетHTTPS webhook · окончательный статус задачи
removeAudiobooleanНетtrue · false (по умолчанию)
Idempotency-Key / idempotencyKeystringРекомендуется≤ 128 символов · безопасно повторить попытку

Поля ответа

ПолеТипОписание
codenumberКод результата; 200 означает успех
messagestringСообщение о состоянии
taskIdstringИдентификатор задачи для запросов состояния
statusstringwaiting · processing · success · failed

Ошибки endpoint

codeЗначениеОписание
-100Ошибка аутентификации или квотыТипичные причины: userNo · API Key · credits
-200Недопустимый параметрТипичные причины: field · URL · size · duration · Idempotency-Key
-300Запрос отклонёнТипичные причины: taskId · ownership · state
-401Временная блокировка аккаунтаТипичные причины: Первое учитываемое нарушение: 1 час; второе: 24 часа. Срабатывания во время блокировки не учитываются, не продлевают и не усиливают её.
-402Постоянная блокировка аккаунтаТипичные причины: Третье учитываемое нарушение навсегда блокирует аккаунт.
-600Неподдерживаемый формат видеоТипичные причины: codec · bit depth · HDR · audio
POST

/open/taskDetail

Удаление субтитров и водяных знаков с видео · Состояния задачи

Формат запроса: form / query

Параметры запроса

ПолеТипОбязательноОписание
userNostringДа550W userNo
apiKeystringДаAPI Key
taskIdstringДа1–64 символов
subUserIdstringНет≤ 128 символов · право собственности пользователя

Поля ответа

ПолеТипОписание
taskIdstringИдентификатор задачи для запросов состояния
statusstringwaiting · processing · success · failed
widthnumberШирина видео в пикселях
heightnumberВысота видео в пикселях
durationnumberПродолжительность видео в секундах
x1numberx1
y1numbery1
x2numberx2
y2numbery2
modestringmode
costnumberКредиты, списанные за эту задачу
resultUrlstringURL-адрес результата; действителен в течение 24 часов после генерации
failCodestringСтабильный идентификатор отказа
failReasonstringПричина сбоя задачи
refundStatusnumberСтатус возврата кредитов

Ошибки endpoint

codeЗначениеОписание
-100Ошибка аутентификации или квотыТипичные причины: userNo · API Key · credits
-300Запрос отклонёнТипичные причины: taskId · ownership · state
-500Внутренняя ошибкаТипичные причины: server · retry
POST

/open/taskList

Удаление субтитров и водяных знаков с видео · Задачи и аккаунт. Удаленные задачи исключаются из taskDetail и taskList. Значения состояния задачи остаются waiting, processing, success или failed.

Формат запроса: form / query

Параметры запроса

ПолеТипОбязательноОписание
userNostringДа550W userNo
apiKeystringДаAPI Key
pagenumberНет≥ 0 · по умолчанию 0
sizenumberНет1–100 · по умолчанию 20
subUserIdstringНет≤ 128 символов · право собственности пользователя

Поля ответа

ПолеТипОписание
totalnumberКоличество не удаленных задач
pagenumberНомер страницы
sizenumberКоличество задач на странице
listarrayСписок не удаленных задач

Ошибки endpoint

codeЗначениеОписание
-100Ошибка аутентификации или квотыТипичные причины: userNo · API Key · credits
-200Недопустимый параметрТипичные причины: field · URL · size · duration · Idempotency-Key
-500Внутренняя ошибкаТипичные причины: server · retry
POST

/open/deleteTask

Удалить задачу · Помечает видеозадачу как удалённую и сразу возвращает ответ. Загруженный исходник, результат обработки и файлы повторных попыток затем асинхронно удаляются из VOD в фоновом режиме. Списанные кредиты не возвращаются. Удаленные задачи исключаются из taskDetail и taskList. Значения состояния задачи остаются waiting, processing, success или failed.

Формат запроса: form / query

Параметры запроса

ПолеТипОбязательноОписание
userNostringДа550W userNo
apiKeystringДаAPI Key
taskIdstringДа1–64 символов
subUserIdstringНет≤ 128 символов · право собственности пользователя

Поля ответа

ПолеТипОписание
codenumberКод результата; 200 означает успех
messagestringСообщение о состоянии

Ошибки endpoint

codeЗначениеОписание
-100Ошибка аутентификации или квотыТипичные причины: userNo · API Key · credits
-200Недопустимый параметрТипичные причины: field · URL · size · duration · Idempotency-Key
-300Запрос отклонёнТипичные причины: taskId · ownership · state
-500Внутренняя ошибкаТипичные причины: server · retry
POST

/open/removeImageWatermark

Удаление водяных знаков с изображений · removeImageWatermark

Формат запроса: multipart/form-data

Параметры запроса

ПолеТипОбязательноОписание
userNostringДа550W userNo
apiKeystringДаAPI Key
filefileДаJPG · PNG · BMP · WebP · AVIF · TIFF · SVG · ≤ 50 MiB
syncbooleanНетtrue (по умолчанию) · false
operationIdstringНетидентификатор отслеживания

Поля ответа

ПолеТипОписание
codenumberКод результата; 200 означает успех
messagestringСообщение о состоянии
creditsAfternumberКредиты, оставшиеся после обработки
taskobjectРезультат обработки или асинхронная задача

Ошибки endpoint

codeЗначениеОписание
-100Ошибка аутентификации или квотыТипичные причины: userNo · API Key · credits
-200Недопустимый параметрТипичные причины: field · URL · size · duration · Idempotency-Key
-300Запрос отклонёнТипичные причины: taskId · ownership · state
-500Внутренняя ошибкаТипичные причины: server · retry
POST

/open/imageWatermarkTaskDetail

Удаление водяных знаков с изображений · Состояния задачи

Формат запроса: form / query

Параметры запроса

ПолеТипОбязательноОписание
userNostringДа550W userNo
apiKeystringДаAPI Key
taskIdstringДа1–64 символов

Поля ответа

ПолеТипОписание
statusstringwaiting · processing · success · failed
resultUrlstringURL-адрес результата; действителен в течение 24 часов после генерации
failCodestringСтабильный идентификатор отказа
failReasonstringПричина сбоя задачи
costnumberКредиты, списанные за эту задачу
expiredTimestringСрок действия URL результата

Ошибки endpoint

codeЗначениеОписание
-100Ошибка аутентификации или квотыТипичные причины: userNo · API Key · credits
-300Запрос отклонёнТипичные причины: taskId · ownership · state
-500Внутренняя ошибкаТипичные причины: server · retry
POST

/open/queryCredits

Задачи и аккаунт · credits

Формат запроса: form / query

Параметры запроса

ПолеТипОбязательноОписание
userNostringДа550W userNo
apiKeystringДаAPI Key

Поля ответа

ПолеТипОписание
codenumberКод результата; 200 означает успех
messagestringСообщение о состоянии
userNostringИдентификатор пользователя
creditsnumberДоступные кредиты

Ошибки endpoint

codeЗначениеОписание
-100Ошибка аутентификации или квотыТипичные причины: userNo · API Key · credits
-500Внутренняя ошибкаТипичные причины: server · retry

Общие поля запроса

ПолеОбязательноОписание
userNoДа550W userNo
apiKeyДаAPI Key
Idempotency-KeyРекомендуется≤ 128 · retry-safe
callbackUrlНетHTTPS webhook · final status

Поля видеозадачи

ПолеТипОписание
videoUrlstringHTTP(S) URL · ≤ 2048 символов
widthnumberширина видео · px
heightnumberвысота видео · px · max ≤ 1920 · min ≤ 1080
durationnumber1–1800 s
x1numberвверху слева X · px
y1numberвверху слева Y · px
x2numberвнизу справа X · px
y2numberвнизу справа Y · px · x1 = y1 = x2 = y2 = 0: полный кадр
modestringnormal (по умолчанию) · protect
removeAudiobooleantrue · false (по умолчанию)

Ответ и статус задачи

Ответы содержат code и message. Задачи проходят состояния waiting и processing, затем success или failed. При успехе используйте resultUrl, при ошибке проверьте failCode. Файлы результата имеют срок действия.

{ "code": 200, "message": "success", "taskId": "...", "status": "waiting" }

Коды ошибок

CodeЗначениеТипичные причины
200Успешноmessage: "success"
-100Ошибка аутентификации или квотыuserNo · API Key · credits
-200Недопустимый параметрfield · URL · size · duration · Idempotency-Key
-300Запрос отклонёнtaskId · ownership · state
-401Временная блокировка аккаунтаПервое учитываемое нарушение: 1 час; второе: 24 часа. Срабатывания во время блокировки не учитываются, не продлевают и не усиливают её.
-402Постоянная блокировка аккаунтаТретье учитываемое нарушение навсегда блокирует аккаунт.
-500Внутренняя ошибкаserver · retry
-600Неподдерживаемый формат видеоcodec · bit depth · HDR · audio

Идентификаторы сбоев задач (failCode)

failCode — это строковый идентификатор, а не числовой code. Оно появляется только в случае сбоя задачи. Используйте failCode, чтобы определить причину; не анализируйте переведенное сообщение failReason.

failCodeЗначение
VIDEO_UNREACHABLEURL-адрес видео не является общедоступным.
VIDEO_METADATA_UNAVAILABLEНе удалось получить достоверные метаданные видео.
VIDEO_RESOLUTION_UNSUPPORTEDИзмеренное разрешение видео превышает поддерживаемый диапазон
VIDEO_DURATION_UNSUPPORTEDИзмеренная продолжительность видео превышает 30 минут.
VIDEO_CODEC_UNSUPPORTEDВидеокодек не поддерживается
VIDEO_BIT_DEPTH_UNSUPPORTEDБитовая глубина видео не поддерживается
VIDEO_HDR_UNSUPPORTEDHDR, PQ или HLG не поддерживаются.
VIDEO_AUDIO_UNSUPPORTEDАудиокодек не поддерживается
VIDEO_CONTAINER_UNSUPPORTEDФормат видеоконтейнера не поддерживается.
VIDEO_PREPARE_FAILEDНе удалось подготовить, проверить или удалить аудио видео.

Скопировать пример и вызвать

/open/submitTask

// JavaScript
const form = new URLSearchParams({
  userNo: USER_NO, apiKey: API_KEY, videoUrl: VIDEO_URL,
  width: '1920', height: '1080', duration: '30',
  x1: '0', y1: '0', x2: '1920', y2: '200'
});
const response = await fetch('https://www.550wai.cn/open/submitTask', {
  method: 'POST',
  body: form,
});

# Python
import requests
r = requests.post('https://www.550wai.cn/open/submitTask', data={
  'userNo': USER_NO, 'apiKey': API_KEY, 'videoUrl': VIDEO_URL,
  'width': 1920, 'height': 1080, 'duration': 30,
  'x1': 0, 'y1': 0, 'x2': 1920, 'y2': 200
})

/open/removeImageWatermark

// JavaScript
const imageFile = document.querySelector('#image-file').files[0];
const imageForm = new FormData();
imageForm.append('userNo', USER_NO);
imageForm.append('apiKey', API_KEY);
imageForm.append('file', imageFile);
imageForm.append('sync', 'true');
const imageResponse = await fetch(
  'https://www.550wai.cn/open/removeImageWatermark',
  { method: 'POST', body: imageForm }
);

# Python
import requests
IMAGE_FILE_PATH = '/path/to/image-file'
with open(IMAGE_FILE_PATH, 'rb') as image:
  r = requests.post(
    'https://www.550wai.cn/open/removeImageWatermark',
    data={'userNo': USER_NO, 'apiKey': API_KEY, 'sync': 'true'},
    files={'file': image}
  )

Использование и оплата

Видеозадачи оплачиваются в зависимости от длительности обработки и разрешения. Изображение стоит 10 кредитов за успешную задачу; неудачная обработка не оплачивается.

Разрешение видеоТарифПример
width × height ≤ 921,600 · 720p или ниже1.3 кредитов / s1280×720 · 30 s ≈ 39 кредитов
width × height > 921,600 · До 1080p1.6 кредитов / s1920×1080 · 30 s ≈ 48 кредитов

Запросы задач возвращают только данные авторизованного пользователя.

Обрабатывайте ошибки с помощью code, message, status, failCode и refundStatus.

Купить кредиты

Видеозадачи оплачиваются в зависимости от длительности обработки и разрешения. Изображение стоит 10 кредитов за успешную задачу; неудачная обработка не оплачивается.

Цены →