Usuwanie napisów i znaków wodnych z wideo
Usuwanie napisów i znaków wodnych z wideo · submitTask
Usuwanie napisów i znaków wodnych z wideo →550W · API dla deweloperów
API przetwarzania obrazów i wideo
Usuwanie napisów i znaków wodnych z wideo · submitTask
Usuwanie napisów i znaków wodnych z wideo →Usuwanie znaków wodnych z obrazów · removeImageWatermark
Usuwanie znaków wodnych z obrazów →Stany zadania · Zadania i konto
Dostępne endpointy →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 rozliczeniaDo każdego żądania dodaj userNo i API Key. Przesyłanie jest opcjonalne: użyj /open/uploadVideo lub podaj publiczny videoUrl.
Wygeneruj API KeyWybierz przepływ odpowiedni dla Twojego produktu. Każdy krok prowadzi bezpośrednio do opisu API.
Przykłady integracjihttps://www.550wai.cnPOST · multipart/form-dataDo 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'Do każdego żądania dodaj userNo i API Key. Przesyłanie jest opcjonalne: użyj /open/uploadVideo lub podaj publiczny videoUrl.
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.
uploadVideo → submitTask → taskDetail
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ą.
Obsługuj błędy za pomocą code, message, status, failCode i refundStatus.
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.
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.
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
Wybierz przepływ odpowiedni dla Twojego produktu. Każdy krok prowadzi bezpośrednio do opisu API.
videoUrl · uploadVideo · Usuwanie napisów i znaków wodnych z wideo · uploadVideosubmitTask · Usuwanie napisów i znaków wodnych z wideo · submitTasktaskId · taskDetail · callbackUrlremoveImageWatermark · Usuwanie znaków wodnych z obrazów · removeImageWatermarksync=true → resultUrl · sync=false → taskIdimageWatermarkTaskDetail · Sprawdź końcowy statususerNo · apiKey · Wymagane w każdym żądaniuqueryCredits · Zadania i konto · creditstaskList · 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./open/uploadVideoUsuwanie napisów i znaków wodnych z wideo · uploadVideo
/open/submitTaskUsuwanie napisów i znaków wodnych z wideo · submitTask
/open/taskDetailUsuwanie napisów i znaków wodnych z wideo · Stany zadania
/open/taskListUsuwanie 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.
/open/deleteTaskUsuń 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.
/open/removeImageWatermarkUsuwanie znaków wodnych z obrazów · removeImageWatermark
/open/imageWatermarkTaskDetailUsuwanie znaków wodnych z obrazów · Stany zadania
/open/queryCreditsZadania i konto · credits
/open/uploadVideoUsuwanie napisów i znaków wodnych z wideo · uploadVideo
Format żądania: multipart/form-data
| Pole | Typ | Wymagane | Opis |
|---|---|---|---|
userNo | string | Tak | 550W userNo |
apiKey | string | Tak | API Key |
file | file | Tak | MP4/MOV · ≤ 1080p · ≤ 30 min · Rozmiar pliku ≤ 1 GiB |
| Pole | Typ | Opis |
|---|---|---|
code | number | Kod wyniku; 200 oznacza sukces |
message | string | Komunikat o stanie |
videoUrl | string | Adres URL przesłanego filmu |
coverUrl | string | Adres URL okładki filmu |
width | number | Szerokość wideo w pikselach |
height | number | Wysokość wideo w pikselach |
duration | number | Czas trwania filmu w sekundach |
| code | Znaczenie | Opis |
|---|---|---|
-100 | Błąd uwierzytelniania lub limitu | Typowe przyczyny: userNo · API Key · credits |
-200 | Nieprawidłowy parametr | Typowe przyczyny: field · URL · size · duration · Idempotency-Key |
-500 | Błąd wewnętrzny | Typowe przyczyny: server · retry |
/open/submitTaskUsuwanie napisów i znaków wodnych z wideo · submitTask
Format żądania: application/x-www-form-urlencoded
| Pole | Typ | Wymagane | Opis |
|---|---|---|---|
userNo | string | Tak | 550W userNo |
apiKey | string | Tak | API Key |
videoUrl | string | Tak | HTTP(S) URL · ≤ 2048 znaków |
width | number | Tak | szerokość wideo · px |
height | number | Tak | wysokość wideo · px · max ≤ 1920 · min ≤ 1080 |
duration | number | Tak | 1–1800 s |
x1 | number | Tak | lewy górny róg X · px |
y1 | number | Tak | lewy górny róg Y · px |
x2 | number | Tak | prawy dolny róg X · px |
y2 | number | Tak | prawy dolny róg Y · px · x1 = y1 = x2 = y2 = 0: pełna klatka |
mode | string | Nie | normal (domyślny) · protect |
fileName | string | Nie | UTF-8 |
coverUrl | string | Nie | HTTP(S) URL |
callbackUrl | string | Nie | HTTPS webhook · ostateczny status zadania |
removeAudio | boolean | Nie | true · false (domyślny) |
Idempotency-Key / idempotencyKey | string | Zalecane | ≤ 128 znaków · można bezpiecznie spróbować ponownie |
| Pole | Typ | Opis |
|---|---|---|
code | number | Kod wyniku; 200 oznacza sukces |
message | string | Komunikat o stanie |
taskId | string | Identyfikator zadania dla zapytań o status |
status | string | waiting · processing · success · failed |
| code | Znaczenie | Opis |
|---|---|---|
-100 | Błąd uwierzytelniania lub limitu | Typowe przyczyny: userNo · API Key · credits |
-200 | Nieprawidłowy parametr | Typowe przyczyny: field · URL · size · duration · Idempotency-Key |
-300 | Żądanie odrzucone | Typowe przyczyny: taskId · ownership · state |
-401 | Tymczasowe zawieszenie konta | Typowe przyczyny: Pierwsze skuteczne naruszenie: 1 godzina; drugie: 24 godziny. Wykrycia podczas zawieszenia nie są liczone, nie przedłużają go ani nie zaostrzają. |
-402 | Trwała blokada konta | Typowe przyczyny: Trzecie skuteczne naruszenie trwale blokuje konto. |
-600 | Nieobsługiwany format wideo | Typowe przyczyny: codec · bit depth · HDR · audio |
/open/taskDetailUsuwanie napisów i znaków wodnych z wideo · Stany zadania
Format żądania: form / query
| Pole | Typ | Wymagane | Opis |
|---|---|---|---|
userNo | string | Tak | 550W userNo |
apiKey | string | Tak | API Key |
taskId | string | Tak | 1–64 znaków |
subUserId | string | Nie | ≤ 128 znaków · własność użytkownika |
| Pole | Typ | Opis |
|---|---|---|
taskId | string | Identyfikator zadania dla zapytań o status |
status | string | waiting · processing · success · failed |
width | number | Szerokość wideo w pikselach |
height | number | Wysokość wideo w pikselach |
duration | number | Czas trwania filmu w sekundach |
x1 | number | x1 |
y1 | number | y1 |
x2 | number | x2 |
y2 | number | y2 |
mode | string | mode |
cost | number | Kredyty pobrane za to zadanie |
resultUrl | string | Adres URL wyniku; ważne przez 24 godziny po wygenerowaniu |
failCode | string | Stabilny identyfikator awarii |
failReason | string | Przyczyna niepowodzenia zadania |
refundStatus | number | Stan zwrotu kredytów |
| code | Znaczenie | Opis |
|---|---|---|
-100 | Błąd uwierzytelniania lub limitu | Typowe przyczyny: userNo · API Key · credits |
-300 | Żądanie odrzucone | Typowe przyczyny: taskId · ownership · state |
-500 | Błąd wewnętrzny | Typowe przyczyny: server · retry |
/open/taskListUsuwanie 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
| Pole | Typ | Wymagane | Opis |
|---|---|---|---|
userNo | string | Tak | 550W userNo |
apiKey | string | Tak | API Key |
page | number | Nie | ≥ 0 · domyślny 0 |
size | number | Nie | 1–100 · domyślny 20 |
subUserId | string | Nie | ≤ 128 znaków · własność użytkownika |
| Pole | Typ | Opis |
|---|---|---|
total | number | Liczba zadań, które nie zostały usunięte |
page | number | Numer strony |
size | number | Liczba zadań na stronę |
list | array | Lista nieusuniętych zadań |
| code | Znaczenie | Opis |
|---|---|---|
-100 | Błąd uwierzytelniania lub limitu | Typowe przyczyny: userNo · API Key · credits |
-200 | Nieprawidłowy parametr | Typowe przyczyny: field · URL · size · duration · Idempotency-Key |
-500 | Błąd wewnętrzny | Typowe przyczyny: server · retry |
/open/deleteTaskUsuń 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
| Pole | Typ | Wymagane | Opis |
|---|---|---|---|
userNo | string | Tak | 550W userNo |
apiKey | string | Tak | API Key |
taskId | string | Tak | 1–64 znaków |
subUserId | string | Nie | ≤ 128 znaków · własność użytkownika |
| Pole | Typ | Opis |
|---|---|---|
code | number | Kod wyniku; 200 oznacza sukces |
message | string | Komunikat o stanie |
| code | Znaczenie | Opis |
|---|---|---|
-100 | Błąd uwierzytelniania lub limitu | Typowe przyczyny: userNo · API Key · credits |
-200 | Nieprawidłowy parametr | Typowe przyczyny: field · URL · size · duration · Idempotency-Key |
-300 | Żądanie odrzucone | Typowe przyczyny: taskId · ownership · state |
-500 | Błąd wewnętrzny | Typowe przyczyny: server · retry |
/open/removeImageWatermarkUsuwanie znaków wodnych z obrazów · removeImageWatermark
Format żądania: multipart/form-data
| Pole | Typ | Wymagane | Opis |
|---|---|---|---|
userNo | string | Tak | 550W userNo |
apiKey | string | Tak | API Key |
file | file | Tak | JPG · PNG · BMP · WebP · AVIF · TIFF · SVG · ≤ 50 MiB |
sync | boolean | Nie | true (domyślny) · false |
operationId | string | Nie | identyfikator śledzenia |
| Pole | Typ | Opis |
|---|---|---|
code | number | Kod wyniku; 200 oznacza sukces |
message | string | Komunikat o stanie |
creditsAfter | number | Kredyty pozostałe po przetworzeniu |
task | object | Wynik przetwarzania lub zadanie asynchroniczne |
| code | Znaczenie | Opis |
|---|---|---|
-100 | Błąd uwierzytelniania lub limitu | Typowe przyczyny: userNo · API Key · credits |
-200 | Nieprawidłowy parametr | Typowe przyczyny: field · URL · size · duration · Idempotency-Key |
-300 | Żądanie odrzucone | Typowe przyczyny: taskId · ownership · state |
-500 | Błąd wewnętrzny | Typowe przyczyny: server · retry |
/open/imageWatermarkTaskDetailUsuwanie znaków wodnych z obrazów · Stany zadania
Format żądania: form / query
| Pole | Typ | Wymagane | Opis |
|---|---|---|---|
userNo | string | Tak | 550W userNo |
apiKey | string | Tak | API Key |
taskId | string | Tak | 1–64 znaków |
| Pole | Typ | Opis |
|---|---|---|
status | string | waiting · processing · success · failed |
resultUrl | string | Adres URL wyniku; ważne przez 24 godziny po wygenerowaniu |
failCode | string | Stabilny identyfikator awarii |
failReason | string | Przyczyna niepowodzenia zadania |
cost | number | Kredyty pobrane za to zadanie |
expiredTime | string | Czas ważności wynikowego adresu URL |
| code | Znaczenie | Opis |
|---|---|---|
-100 | Błąd uwierzytelniania lub limitu | Typowe przyczyny: userNo · API Key · credits |
-300 | Żądanie odrzucone | Typowe przyczyny: taskId · ownership · state |
-500 | Błąd wewnętrzny | Typowe przyczyny: server · retry |
/open/queryCreditsZadania i konto · credits
Format żądania: form / query
| Pole | Typ | Wymagane | Opis |
|---|---|---|---|
userNo | string | Tak | 550W userNo |
apiKey | string | Tak | API Key |
| Pole | Typ | Opis |
|---|---|---|
code | number | Kod wyniku; 200 oznacza sukces |
message | string | Komunikat o stanie |
userNo | string | Identyfikator użytkownika |
credits | number | Dostępne kredyty |
| code | Znaczenie | Opis |
|---|---|---|
-100 | Błąd uwierzytelniania lub limitu | Typowe przyczyny: userNo · API Key · credits |
-500 | Błąd wewnętrzny | Typowe przyczyny: server · retry |
| Pole | Wymagane | Opis |
|---|---|---|
userNo | Tak | 550W userNo |
apiKey | Tak | API Key |
Idempotency-Key | Zalecane | ≤ 128 · retry-safe |
callbackUrl | Nie | HTTPS webhook · final status |
| Pole | Typ | Opis |
|---|---|---|
videoUrl | string | HTTP(S) URL · ≤ 2048 znaków |
width | number | szerokość wideo · px |
height | number | wysokość wideo · px · max ≤ 1920 · min ≤ 1080 |
duration | number | 1–1800 s |
x1 | number | lewy górny róg X · px |
y1 | number | lewy górny róg Y · px |
x2 | number | prawy dolny róg X · px |
y2 | number | prawy dolny róg Y · px · x1 = y1 = x2 = y2 = 0: pełna klatka |
mode | string | normal (domyślny) · protect |
removeAudio | boolean | true · false (domyślny) |
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" }| Code | Znaczenie | Typowe przyczyny |
|---|---|---|
200 | Powodzenie | message: "success" |
-100 | Błąd uwierzytelniania lub limitu | userNo · API Key · credits |
-200 | Nieprawidłowy parametr | field · URL · size · duration · Idempotency-Key |
-300 | Żądanie odrzucone | taskId · ownership · state |
-401 | Tymczasowe zawieszenie konta | Pierwsze skuteczne naruszenie: 1 godzina; drugie: 24 godziny. Wykrycia podczas zawieszenia nie są liczone, nie przedłużają go ani nie zaostrzają. |
-402 | Trwała blokada konta | Trzecie skuteczne naruszenie trwale blokuje konto. |
-500 | Błąd wewnętrzny | server · retry |
-600 | Nieobsługiwany format wideo | codec · bit depth · HDR · audio |
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.
| failCode | Znaczenie |
|---|---|
VIDEO_UNREACHABLE | Adres URL filmu nie jest publicznie dostępny |
VIDEO_METADATA_UNAVAILABLE | Nie udało się uzyskać wiarygodnych metadanych wideo. |
VIDEO_RESOLUTION_UNSUPPORTED | Zmierzona rozdzielczość wideo przekracza obsługiwany zakres |
VIDEO_DURATION_UNSUPPORTED | Zmierzony czas trwania filmu przekracza 30 minut |
VIDEO_CODEC_UNSUPPORTED | Kodek wideo nie jest obsługiwany |
VIDEO_BIT_DEPTH_UNSUPPORTED | Głębia bitowa wideo nie jest obsługiwana |
VIDEO_HDR_UNSUPPORTED | HDR, PQ i HLG nie są obsługiwane |
VIDEO_AUDIO_UNSUPPORTED | Kodek audio nie jest obsługiwany |
VIDEO_CONTAINER_UNSUPPORTED | Format kontenera wideo nie jest obsługiwany |
VIDEO_PREPARE_FAILED | Przygotowanie, sprawdzenie lub usunięcie dźwięku wideo nie powiodło się |
/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}
)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ść wideo | Stawka | Przykład |
|---|---|---|
| width × height ≤ 921,600 · 720p lub mniej | 1.3 kredytów / s | 1280×720 · 30 s ≈ 39 kredytów |
| width × height > 921,600 · Do 1080p | 1.6 kredytów / s | 1920×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.
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 →