550W · API dla deweloperów

API dla deweloperów

API przetwarzania obrazów i wideo

Co możesz zbudować

Szybka integracja

1

Dodaj kredyty

Zadania wideo są rozliczane według czasu przetwarzania i rozdzielczości. Obrazy kosztują 10 kredytów za udane zadanie; nieudane przetwarzanie nie jest naliczane.

Użycie i rozliczenia
2

Wygeneruj API Key

Do każdego żądania dodaj userNo i API Key. Przesyłanie jest opcjonalne: użyj /open/uploadVideo lub podaj publiczny videoUrl.

Wygeneruj API Key
3

Przykłady integracji

Wybierz przepływ odpowiedni dla Twojego produktu. Każdy krok prowadzi bezpośrednio do opisu API.

Przykłady integracji
Base URLhttps://www.550wai.cnPOST · multipart/form-data

Szybki start

Do każdego żądania dodaj userNo i API Key. Przesyłanie jest opcjonalne: użyj /open/uploadVideo lub podaj publiczny 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'

Konwencje

Wymagane

Do każdego żądania dodaj userNo i API Key. Przesyłanie jest opcjonalne: użyj /open/uploadVideo lub podaj publiczny videoUrl.

Odpowiedź

Odpowiedzi zawierają code i message. Zadania przechodzą ze stanu waiting do processing, a następnie do success lub failed. Po sukcesie użyj resultUrl, a po błędzie sprawdź failCode. Pliki wynikowe wygasają. Dla kont międzynarodowych (clientType=overseas) pole message jest zwracane po angielsku. W logice używaj niezależnych od języka pól code, status, failCode i nazw pól.

Usuwanie napisów i znaków wodnych z wideo

uploadVideo → submitTask → taskDetail

Stany zadania

Odpowiedzi zawierają code i message. Zadania przechodzą ze stanu waiting do processing, a następnie do success lub failed. Po sukcesie użyj resultUrl, a po błędzie sprawdź failCode. Pliki wynikowe wygasają.

waiting→processing→successfailed

Obsługuj błędy za pomocą code, message, status, failCode i refundStatus.

Zadania asynchroniczne i niezawodność

Sprawdzanie statusu zadań i webhooki

Skonfiguruj publicznie dostępny protokół HTTPS callbackUrl, aby otrzymać ostateczny status zadania. Alternatywnie, wyślij zapytanie do taskDetail za pomocą taskId i stopniowo zwiększaj czas pomiędzy sprawdzeniami.

Idempotentne ponowne próby

Dla każdego nowego zadania wyślij unikalny Idempotency-Key. Ponawiając to samo przesłanie, użyj tego samego klucza, aby otrzymać pierwotny taskId bez tworzenia kolejnego zadania ani ponownego pobierania kredytów.

Asynchroniczne przetwarzanie obrazu

Ustaw sync na false, zapisz task.taskId i wywołaj imageWatermarkTaskDetail, aż status zmieni się na success lub failed. Jeśli się powiedzie, przeczytaj task.resultUrl.

resultUrl · 24 h

Przykłady integracji

Wybierz przepływ odpowiedni dla Twojego produktu. Każdy krok prowadzi bezpośrednio do opisu API.

Usuwanie napisów i znaków wodnych z wideo

  1. videoUrl · uploadVideo · Usuwanie napisów i znaków wodnych z wideo · uploadVideo
  2. submitTask · Usuwanie napisów i znaków wodnych z wideo · submitTask
  3. taskId · taskDetail · callbackUrl
  4. Przy success pobierz resultUrl; przy failed sprawdź failCode i failReason.

Zadania i konto

  1. userNo · apiKey · Wymagane w każdym żądaniu
  2. queryCredits · Zadania i konto · credits
  3. taskList · Usuwanie napisów i znaków wodnych z wideo · Zadania i konto. Usunięte zadania są wykluczone z taskDetail i taskList. Wartości statusu zadania pozostają waiting, processing, success lub failed.

Dostępne endpointy

POST/open/uploadVideo

Usuwanie napisów i znaków wodnych z wideo · uploadVideo

POST/open/submitTask

Usuwanie napisów i znaków wodnych z wideo · submitTask

POST/open/taskDetail

Usuwanie napisów i znaków wodnych z wideo · Stany zadania

POST/open/taskList

Usuwanie napisów i znaków wodnych z wideo · Zadania i konto. Usunięte zadania są wykluczone z taskDetail i taskList. Wartości statusu zadania pozostają waiting, processing, success lub failed.

POST/open/deleteTask

Usuń zadanie · Oznacza zadanie wideo jako usunięte i natychmiast zwraca odpowiedź. Przesłany plik źródłowy, wynik i pliki ponowień są następnie asynchronicznie usuwane z VOD w tle. Pobrane kredyty nie są zwracane. Usunięte zadania są wykluczone z taskDetail i taskList. Wartości statusu zadania pozostają waiting, processing, success lub failed.

POST/open/removeImageWatermark

Usuwanie znaków wodnych z obrazów · removeImageWatermark

POST/open/imageWatermarkTaskDetail

Usuwanie znaków wodnych z obrazów · Stany zadania

POST/open/queryCredits

Zadania i konto · credits

POST

/open/uploadVideo

Usuwanie napisów i znaków wodnych z wideo · uploadVideo

Format żądania: multipart/form-data

Parametry żądania

PoleTypWymaganeOpis
userNostringTak550W userNo
apiKeystringTakAPI Key
filefileTakMP4/MOV · ≤ 1080p · ≤ 30 min · Rozmiar pliku ≤ 1 GiB

Pola odpowiedzi

PoleTypOpis
codenumberKod wyniku; 200 oznacza sukces
messagestringKomunikat o stanie
videoUrlstringAdres URL przesłanego filmu
coverUrlstringAdres URL okładki filmu
widthnumberSzerokość wideo w pikselach
heightnumberWysokość wideo w pikselach
durationnumberCzas trwania filmu w sekundach

Błędy endpointu

codeZnaczenieOpis
-100Błąd uwierzytelniania lub limituTypowe przyczyny: userNo · API Key · credits
-200Nieprawidłowy parametrTypowe przyczyny: field · URL · size · duration · Idempotency-Key
-500Błąd wewnętrznyTypowe przyczyny: server · retry
POST

/open/submitTask

Usuwanie napisów i znaków wodnych z wideo · submitTask

Format żądania: application/x-www-form-urlencoded

Parametry żądania

PoleTypWymaganeOpis
userNostringTak550W userNo
apiKeystringTakAPI Key
videoUrlstringTakHTTP(S) URL · ≤ 2048 znaków
widthnumberTakszerokość wideo · px
heightnumberTakwysokość wideo · px · max ≤ 1920 · min ≤ 1080
durationnumberTak1–1800 s
x1numberTaklewy górny róg X · px
y1numberTaklewy górny róg Y · px
x2numberTakprawy dolny róg X · px
y2numberTakprawy dolny róg Y · px · x1 = y1 = x2 = y2 = 0: pełna klatka
modestringNienormal (domyślny) · protect
fileNamestringNieUTF-8
coverUrlstringNieHTTP(S) URL
callbackUrlstringNieHTTPS webhook · ostateczny status zadania
removeAudiobooleanNietrue · false (domyślny)
Idempotency-Key / idempotencyKeystringZalecane≤ 128 znaków · można bezpiecznie spróbować ponownie

Pola odpowiedzi

PoleTypOpis
codenumberKod wyniku; 200 oznacza sukces
messagestringKomunikat o stanie
taskIdstringIdentyfikator zadania dla zapytań o status
statusstringwaiting · processing · success · failed

Błędy endpointu

codeZnaczenieOpis
-100Błąd uwierzytelniania lub limituTypowe przyczyny: userNo · API Key · credits
-200Nieprawidłowy parametrTypowe przyczyny: field · URL · size · duration · Idempotency-Key
-300Żądanie odrzuconeTypowe przyczyny: taskId · ownership · state
-401Tymczasowe zawieszenie kontaTypowe przyczyny: Pierwsze skuteczne naruszenie: 1 godzina; drugie: 24 godziny. Wykrycia podczas zawieszenia nie są liczone, nie przedłużają go ani nie zaostrzają.
-402Trwała blokada kontaTypowe przyczyny: Trzecie skuteczne naruszenie trwale blokuje konto.
-600Nieobsługiwany format wideoTypowe przyczyny: codec · bit depth · HDR · audio
POST

/open/taskDetail

Usuwanie napisów i znaków wodnych z wideo · Stany zadania

Format żądania: form / query

Parametry żądania

PoleTypWymaganeOpis
userNostringTak550W userNo
apiKeystringTakAPI Key
taskIdstringTak1–64 znaków
subUserIdstringNie≤ 128 znaków · własność użytkownika

Pola odpowiedzi

PoleTypOpis
taskIdstringIdentyfikator zadania dla zapytań o status
statusstringwaiting · processing · success · failed
widthnumberSzerokość wideo w pikselach
heightnumberWysokość wideo w pikselach
durationnumberCzas trwania filmu w sekundach
x1numberx1
y1numbery1
x2numberx2
y2numbery2
modestringmode
costnumberKredyty pobrane za to zadanie
resultUrlstringAdres URL wyniku; ważne przez 24 godziny po wygenerowaniu
failCodestringStabilny identyfikator awarii
failReasonstringPrzyczyna niepowodzenia zadania
refundStatusnumberStan zwrotu kredytów

Błędy endpointu

codeZnaczenieOpis
-100Błąd uwierzytelniania lub limituTypowe przyczyny: userNo · API Key · credits
-300Żądanie odrzuconeTypowe przyczyny: taskId · ownership · state
-500Błąd wewnętrznyTypowe przyczyny: server · retry
POST

/open/taskList

Usuwanie napisów i znaków wodnych z wideo · Zadania i konto. Usunięte zadania są wykluczone z taskDetail i taskList. Wartości statusu zadania pozostają waiting, processing, success lub failed.

Format żądania: form / query

Parametry żądania

PoleTypWymaganeOpis
userNostringTak550W userNo
apiKeystringTakAPI Key
pagenumberNie≥ 0 · domyślny 0
sizenumberNie1–100 · domyślny 20
subUserIdstringNie≤ 128 znaków · własność użytkownika

Pola odpowiedzi

PoleTypOpis
totalnumberLiczba zadań, które nie zostały usunięte
pagenumberNumer strony
sizenumberLiczba zadań na stronę
listarrayLista nieusuniętych zadań

Błędy endpointu

codeZnaczenieOpis
-100Błąd uwierzytelniania lub limituTypowe przyczyny: userNo · API Key · credits
-200Nieprawidłowy parametrTypowe przyczyny: field · URL · size · duration · Idempotency-Key
-500Błąd wewnętrznyTypowe przyczyny: server · retry
POST

/open/deleteTask

Usuń zadanie · Oznacza zadanie wideo jako usunięte i natychmiast zwraca odpowiedź. Przesłany plik źródłowy, wynik i pliki ponowień są następnie asynchronicznie usuwane z VOD w tle. Pobrane kredyty nie są zwracane. Usunięte zadania są wykluczone z taskDetail i taskList. Wartości statusu zadania pozostają waiting, processing, success lub failed.

Format żądania: form / query

Parametry żądania

PoleTypWymaganeOpis
userNostringTak550W userNo
apiKeystringTakAPI Key
taskIdstringTak1–64 znaków
subUserIdstringNie≤ 128 znaków · własność użytkownika

Pola odpowiedzi

PoleTypOpis
codenumberKod wyniku; 200 oznacza sukces
messagestringKomunikat o stanie

Błędy endpointu

codeZnaczenieOpis
-100Błąd uwierzytelniania lub limituTypowe przyczyny: userNo · API Key · credits
-200Nieprawidłowy parametrTypowe przyczyny: field · URL · size · duration · Idempotency-Key
-300Żądanie odrzuconeTypowe przyczyny: taskId · ownership · state
-500Błąd wewnętrznyTypowe przyczyny: server · retry
POST

/open/removeImageWatermark

Usuwanie znaków wodnych z obrazów · removeImageWatermark

Format żądania: multipart/form-data

Parametry żądania

PoleTypWymaganeOpis
userNostringTak550W userNo
apiKeystringTakAPI Key
filefileTakJPG · PNG · BMP · WebP · AVIF · TIFF · SVG · ≤ 50 MiB
syncbooleanNietrue (domyślny) · false
operationIdstringNieidentyfikator śledzenia

Pola odpowiedzi

PoleTypOpis
codenumberKod wyniku; 200 oznacza sukces
messagestringKomunikat o stanie
creditsAfternumberKredyty pozostałe po przetworzeniu
taskobjectWynik przetwarzania lub zadanie asynchroniczne

Błędy endpointu

codeZnaczenieOpis
-100Błąd uwierzytelniania lub limituTypowe przyczyny: userNo · API Key · credits
-200Nieprawidłowy parametrTypowe przyczyny: field · URL · size · duration · Idempotency-Key
-300Żądanie odrzuconeTypowe przyczyny: taskId · ownership · state
-500Błąd wewnętrznyTypowe przyczyny: server · retry
POST

/open/imageWatermarkTaskDetail

Usuwanie znaków wodnych z obrazów · Stany zadania

Format żądania: form / query

Parametry żądania

PoleTypWymaganeOpis
userNostringTak550W userNo
apiKeystringTakAPI Key
taskIdstringTak1–64 znaków

Pola odpowiedzi

PoleTypOpis
statusstringwaiting · processing · success · failed
resultUrlstringAdres URL wyniku; ważne przez 24 godziny po wygenerowaniu
failCodestringStabilny identyfikator awarii
failReasonstringPrzyczyna niepowodzenia zadania
costnumberKredyty pobrane za to zadanie
expiredTimestringCzas ważności wynikowego adresu URL

Błędy endpointu

codeZnaczenieOpis
-100Błąd uwierzytelniania lub limituTypowe przyczyny: userNo · API Key · credits
-300Żądanie odrzuconeTypowe przyczyny: taskId · ownership · state
-500Błąd wewnętrznyTypowe przyczyny: server · retry
POST

/open/queryCredits

Zadania i konto · credits

Format żądania: form / query

Parametry żądania

PoleTypWymaganeOpis
userNostringTak550W userNo
apiKeystringTakAPI Key

Pola odpowiedzi

PoleTypOpis
codenumberKod wyniku; 200 oznacza sukces
messagestringKomunikat o stanie
userNostringIdentyfikator użytkownika
creditsnumberDostępne kredyty

Błędy endpointu

codeZnaczenieOpis
-100Błąd uwierzytelniania lub limituTypowe przyczyny: userNo · API Key · credits
-500Błąd wewnętrznyTypowe przyczyny: server · retry

Wspólne pola żądania

PoleWymaganeOpis
userNoTak550W userNo
apiKeyTakAPI Key
Idempotency-KeyZalecane≤ 128 · retry-safe
callbackUrlNieHTTPS webhook · final status

Pola zadania wideo

PoleTypOpis
videoUrlstringHTTP(S) URL · ≤ 2048 znaków
widthnumberszerokość wideo · px
heightnumberwysokość wideo · px · max ≤ 1920 · min ≤ 1080
durationnumber1–1800 s
x1numberlewy górny róg X · px
y1numberlewy górny róg Y · px
x2numberprawy dolny róg X · px
y2numberprawy dolny róg Y · px · x1 = y1 = x2 = y2 = 0: pełna klatka
modestringnormal (domyślny) · protect
removeAudiobooleantrue · false (domyślny)

Odpowiedź i stan zadania

Odpowiedzi zawierają code i message. Zadania przechodzą ze stanu waiting do processing, a następnie do success lub failed. Po sukcesie użyj resultUrl, a po błędzie sprawdź failCode. Pliki wynikowe wygasają.

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

Kody błędów

CodeZnaczenieTypowe przyczyny
200Powodzeniemessage: "success"
-100Błąd uwierzytelniania lub limituuserNo · API Key · credits
-200Nieprawidłowy parametrfield · URL · size · duration · Idempotency-Key
-300Żądanie odrzuconetaskId · ownership · state
-401Tymczasowe zawieszenie kontaPierwsze skuteczne naruszenie: 1 godzina; drugie: 24 godziny. Wykrycia podczas zawieszenia nie są liczone, nie przedłużają go ani nie zaostrzają.
-402Trwała blokada kontaTrzecie skuteczne naruszenie trwale blokuje konto.
-500Błąd wewnętrznyserver · retry
-600Nieobsługiwany format wideocodec · bit depth · HDR · audio

Identyfikatory niepowodzeń zadań (failCode)

failCode to identyfikator łańcuchowy, a nie numeryczny code. Pojawia się tylko wtedy, gdy zadanie się nie powiedzie. Użyj failCode, aby określić przyczynę; nie analizuj przetłumaczonego komunikatu failReason.

failCodeZnaczenie
VIDEO_UNREACHABLEAdres URL filmu nie jest publicznie dostępny
VIDEO_METADATA_UNAVAILABLENie udało się uzyskać wiarygodnych metadanych wideo.
VIDEO_RESOLUTION_UNSUPPORTEDZmierzona rozdzielczość wideo przekracza obsługiwany zakres
VIDEO_DURATION_UNSUPPORTEDZmierzony czas trwania filmu przekracza 30 minut
VIDEO_CODEC_UNSUPPORTEDKodek wideo nie jest obsługiwany
VIDEO_BIT_DEPTH_UNSUPPORTEDGłębia bitowa wideo nie jest obsługiwana
VIDEO_HDR_UNSUPPORTEDHDR, PQ i HLG nie są obsługiwane
VIDEO_AUDIO_UNSUPPORTEDKodek audio nie jest obsługiwany
VIDEO_CONTAINER_UNSUPPORTEDFormat kontenera wideo nie jest obsługiwany
VIDEO_PREPARE_FAILEDPrzygotowanie, sprawdzenie lub usunięcie dźwięku wideo nie powiodło się

Skopiuj przykład i wywołaj

/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}
  )

Użycie i rozliczenia

Zadania wideo są rozliczane według czasu przetwarzania i rozdzielczości. Obrazy kosztują 10 kredytów za udane zadanie; nieudane przetwarzanie nie jest naliczane.

Rozdzielczość wideoStawkaPrzykład
width × height ≤ 921,600 · 720p lub mniej1.3 kredytów / s1280×720 · 30 s ≈ 39 kredytów
width × height > 921,600 · Do 1080p1.6 kredytów / s1920×1080 · 30 s ≈ 48 kredytów

Zapytania o zadania zwracają tylko dane uwierzytelnionego użytkownika.

Obsługuj błędy za pomocą code, message, status, failCode i refundStatus.

Kup kredyty

Zadania wideo są rozliczane według czasu przetwarzania i rozdzielczości. Obrazy kosztują 10 kredytów za udane zadanie; nieudane przetwarzanie nie jest naliczane.

Cennik →