550W · API для розробників

API для розробників

API обробки зображень і відео

Що можна створити

Завдання й обліковий запис

Стани завдання · Завдання й обліковий запис

Доступні endpoint →

Швидка інтеграція

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.

Доступні endpoint

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 кредитів за успішне завдання; невдала обробка не оплачується.

Ціни →