550W · API para programadores

API para programadores

API de processamento de imagens e vídeos

O que pode criar

Integração rápida

1

Adicionar créditos

As tarefas de vídeo são cobradas conforme a duração do processamento e a resolução. As imagens custam 10 créditos por tarefa concluída; falhas de processamento não são cobradas.

Utilização e faturação
2

Gerar API Key

Inclua userNo e API Key em todos os pedidos. O carregamento é opcional: utilize /open/uploadVideo ou indique diretamente uma videoUrl pública.

Gerar API Key
3

Exemplos de integração

Escolha o fluxo adequado ao seu produto. Cada etapa leva diretamente à referência da API.

Exemplos de integração
Base URLhttps://www.550wai.cnPOST · multipart/form-data

Início rápido

Inclua userNo e API Key em todos os pedidos. O carregamento é opcional: utilize /open/uploadVideo ou indique diretamente uma videoUrl pública.

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'

Convenções

Obrigatório

Inclua userNo e API Key em todos os pedidos. O carregamento é opcional: utilize /open/uploadVideo ou indique diretamente uma videoUrl pública.

Resposta

As respostas incluem code e message. As tarefas passam por waiting e processing até success ou failed. Em caso de sucesso, utilize resultUrl; em caso de falha, consulte failCode. Os ficheiros de resultado expiram. Para contas internacionais (clientType=overseas), message é devolvido em inglês. Use code, status, failCode e os nomes dos campos na lógica.

Remoção de legendas e marcas d’água de vídeo

uploadVideo → submitTask → taskDetail

Estados da tarefa

As respostas incluem code e message. As tarefas passam por waiting e processing até success ou failed. Em caso de sucesso, utilize resultUrl; em caso de falha, consulte failCode. Os ficheiros de resultado expiram.

waiting→processing→successfailed

Trate os erros com code, message, status, failCode e refundStatus.

Tarefas assíncronas e fiabilidade

Verificações de status de tarefas e Webhooks

Configure um HTTPS callbackUrl publicamente acessível para receber o status final da tarefa. Alternativamente, consulte taskDetail com taskId e aumente gradualmente o tempo entre as verificações.

Novas tentativas idempotentes

Envie um Idempotency-Key único para cada nova tarefa. Ao repetir o mesmo envio, reutilize a chave para obter o taskId original sem criar outra tarefa nem descontar créditos duas vezes.

Processamento de imagem assíncrono

Defina sync como false, salve task.taskId e chame imageWatermarkTaskDetail até que o status seja success ou failed. Em caso de sucesso, leia task.resultUrl.

resultUrl · 24 h

Exemplos de integração

Escolha o fluxo adequado ao seu produto. Cada etapa leva diretamente à referência da API.

Remoção de legendas e marcas d’água de vídeo

  1. videoUrl · uploadVideo · Remoção de legendas e marcas d’água de vídeo · uploadVideo
  2. submitTask · Remoção de legendas e marcas d’água de vídeo · submitTask
  3. taskId · taskDetail · callbackUrl
  4. Em success, descarregue resultUrl; em failed, consulte failCode e failReason.

Remoção de marcas d’água em imagens

  1. removeImageWatermark · Remoção de marcas d’água em imagens · removeImageWatermark
  2. sync=true → resultUrl · sync=false → taskId
  3. imageWatermarkTaskDetail · Consulte o estado final

Tarefas e conta

  1. userNo · apiKey · Obrigatório em cada pedido
  2. queryCredits · Tarefas e conta · credits
  3. taskList · Remoção de legendas e marcas d’água de vídeo · Tarefas e conta. As tarefas eliminadas não aparecem em taskDetail nem em taskList. Os estados possíveis continuam a ser waiting, processing, success ou failed.

Endpoints disponíveis

POST/open/uploadVideo

Remoção de legendas e marcas d’água de vídeo · uploadVideo

POST/open/submitTask

Remoção de legendas e marcas d’água de vídeo · submitTask

POST/open/taskDetail

Remoção de legendas e marcas d’água de vídeo · Estados da tarefa

POST/open/taskList

Remoção de legendas e marcas d’água de vídeo · Tarefas e conta. As tarefas eliminadas não aparecem em taskDetail nem em taskList. Os estados possíveis continuam a ser waiting, processing, success ou failed.

POST/open/deleteTask

Eliminar tarefa · Marca uma tarefa de vídeo como eliminada e devolve uma resposta imediata. O ficheiro original carregado, o resultado e os ficheiros de novas tentativas são depois removidos do VOD de forma assíncrona em segundo plano. Os créditos já cobrados não são reembolsados. As tarefas eliminadas não aparecem em taskDetail nem em taskList. Os estados possíveis continuam a ser waiting, processing, success ou failed.

POST/open/removeImageWatermark

Remoção de marcas d’água em imagens · removeImageWatermark

POST/open/imageWatermarkTaskDetail

Remoção de marcas d’água em imagens · Estados da tarefa

POST/open/queryCredits

Tarefas e conta · credits

POST

/open/uploadVideo

Remoção de legendas e marcas d’água de vídeo · uploadVideo

Formato do pedido: multipart/form-data

Parâmetros da solicitação

CampoTipoObrigatórioDescrição
userNostringSim550W userNo
apiKeystringSimAPI Key
filefileSimMP4/MOV · ≤ 1080p · ≤ 30 min · Tamanho do ficheiro ≤ 1 GiB

Campos da resposta

CampoTipoDescrição
codenumberCódigo de resultado; 200 significa sucesso
messagestringMensagem de estado
videoUrlstringURL do vídeo enviado
coverUrlstringURL da capa do vídeo
widthnumberLargura do vídeo em pixels
heightnumberAltura do vídeo em pixels
durationnumberDuração do vídeo em segundos

Erros do endpoint

codeSignificadoDescrição
-100Falha de autenticação ou quotaCausas comuns: userNo · API Key · credits
-200Parâmetro inválidoCausas comuns: field · URL · size · duration · Idempotency-Key
-500Erro internoCausas comuns: server · retry
POST

/open/submitTask

Remoção de legendas e marcas d’água de vídeo · submitTask

Formato do pedido: application/x-www-form-urlencoded

Parâmetros da solicitação

CampoTipoObrigatórioDescrição
userNostringSim550W userNo
apiKeystringSimAPI Key
videoUrlstringSimHTTP(S) URL · ≤ 2048 caracteres
widthnumberSimlargura do vídeo · px
heightnumberSimaltura do vídeo · px · max ≤ 1920 · min ≤ 1080
durationnumberSim1–1800 s
x1numberSimcanto superior esquerdo X · px
y1numberSimcanto superior esquerdo Y · px
x2numberSimcanto inferior direito X · px
y2numberSimcanto inferior direito Y · px · x1 = y1 = x2 = y2 = 0: quadro completo
modestringNãonormal (predefinido) · protect
fileNamestringNãoUTF-8
coverUrlstringNãoHTTP(S) URL
callbackUrlstringNãoHTTPS webhook · estado final da tarefa
removeAudiobooleanNãotrue · false (predefinido)
Idempotency-Key / idempotencyKeystringRecomendado≤ 128 caracteres · é seguro tentar novamente

Campos da resposta

CampoTipoDescrição
codenumberCódigo de resultado; 200 significa sucesso
messagestringMensagem de estado
taskIdstringIdentificador da tarefa para consultas de estado
statusstringwaiting · processing · success · failed

Erros do endpoint

codeSignificadoDescrição
-100Falha de autenticação ou quotaCausas comuns: userNo · API Key · credits
-200Parâmetro inválidoCausas comuns: field · URL · size · duration · Idempotency-Key
-300Pedido recusadoCausas comuns: taskId · ownership · state
-401Suspensão temporária da contaCausas comuns: Primeira infração efetiva: 1 hora; segunda: 24 horas. Deteções durante a suspensão não contam, prolongam nem agravam a sanção.
-402Bloqueio permanente da contaCausas comuns: A terceira infração efetiva bloqueia a conta permanentemente.
-600Formato de vídeo não suportadoCausas comuns: codec · bit depth · HDR · audio
POST

/open/taskDetail

Remoção de legendas e marcas d’água de vídeo · Estados da tarefa

Formato do pedido: form / query

Parâmetros da solicitação

CampoTipoObrigatórioDescrição
userNostringSim550W userNo
apiKeystringSimAPI Key
taskIdstringSim1–64 caracteres
subUserIdstringNão≤ 128 caracteres · titularidade do utilizador

Campos da resposta

CampoTipoDescrição
taskIdstringIdentificador da tarefa para consultas de estado
statusstringwaiting · processing · success · failed
widthnumberLargura do vídeo em pixels
heightnumberAltura do vídeo em pixels
durationnumberDuração do vídeo em segundos
x1numberx1
y1numbery1
x2numberx2
y2numbery2
modestringmode
costnumberCréditos cobrados por esta tarefa
resultUrlstringURL de resultado; válido por 24 horas após a geração
failCodestringIdentificador de falha estável
failReasonstringMotivo da falha da tarefa
refundStatusnumberEstado da devolução de créditos

Erros do endpoint

codeSignificadoDescrição
-100Falha de autenticação ou quotaCausas comuns: userNo · API Key · credits
-300Pedido recusadoCausas comuns: taskId · ownership · state
-500Erro internoCausas comuns: server · retry
POST

/open/taskList

Remoção de legendas e marcas d’água de vídeo · Tarefas e conta. As tarefas eliminadas não aparecem em taskDetail nem em taskList. Os estados possíveis continuam a ser waiting, processing, success ou failed.

Formato do pedido: form / query

Parâmetros da solicitação

CampoTipoObrigatórioDescrição
userNostringSim550W userNo
apiKeystringSimAPI Key
pagenumberNão≥ 0 · predefinido 0
sizenumberNão1–100 · predefinido 20
subUserIdstringNão≤ 128 caracteres · titularidade do utilizador

Campos da resposta

CampoTipoDescrição
totalnumberNúmero de tarefas não excluídas
pagenumberNúmero da página
sizenumberNúmero de tarefas por página
listarrayLista de tarefas não excluídas

Erros do endpoint

codeSignificadoDescrição
-100Falha de autenticação ou quotaCausas comuns: userNo · API Key · credits
-200Parâmetro inválidoCausas comuns: field · URL · size · duration · Idempotency-Key
-500Erro internoCausas comuns: server · retry
POST

/open/deleteTask

Eliminar tarefa · Marca uma tarefa de vídeo como eliminada e devolve uma resposta imediata. O ficheiro original carregado, o resultado e os ficheiros de novas tentativas são depois removidos do VOD de forma assíncrona em segundo plano. Os créditos já cobrados não são reembolsados. As tarefas eliminadas não aparecem em taskDetail nem em taskList. Os estados possíveis continuam a ser waiting, processing, success ou failed.

Formato do pedido: form / query

Parâmetros da solicitação

CampoTipoObrigatórioDescrição
userNostringSim550W userNo
apiKeystringSimAPI Key
taskIdstringSim1–64 caracteres
subUserIdstringNão≤ 128 caracteres · titularidade do utilizador

Campos da resposta

CampoTipoDescrição
codenumberCódigo de resultado; 200 significa sucesso
messagestringMensagem de estado

Erros do endpoint

codeSignificadoDescrição
-100Falha de autenticação ou quotaCausas comuns: userNo · API Key · credits
-200Parâmetro inválidoCausas comuns: field · URL · size · duration · Idempotency-Key
-300Pedido recusadoCausas comuns: taskId · ownership · state
-500Erro internoCausas comuns: server · retry
POST

/open/removeImageWatermark

Remoção de marcas d’água em imagens · removeImageWatermark

Formato do pedido: multipart/form-data

Parâmetros da solicitação

CampoTipoObrigatórioDescrição
userNostringSim550W userNo
apiKeystringSimAPI Key
filefileSimJPG · PNG · BMP · WebP · AVIF · TIFF · SVG · ≤ 50 MiB
syncbooleanNãotrue (predefinido) · false
operationIdstringNãoidentificador de acompanhamento

Campos da resposta

CampoTipoDescrição
codenumberCódigo de resultado; 200 significa sucesso
messagestringMensagem de estado
creditsAfternumberCréditos restantes após processamento
taskobjectResultado do processamento ou tarefa assíncrona

Erros do endpoint

codeSignificadoDescrição
-100Falha de autenticação ou quotaCausas comuns: userNo · API Key · credits
-200Parâmetro inválidoCausas comuns: field · URL · size · duration · Idempotency-Key
-300Pedido recusadoCausas comuns: taskId · ownership · state
-500Erro internoCausas comuns: server · retry
POST

/open/imageWatermarkTaskDetail

Remoção de marcas d’água em imagens · Estados da tarefa

Formato do pedido: form / query

Parâmetros da solicitação

CampoTipoObrigatórioDescrição
userNostringSim550W userNo
apiKeystringSimAPI Key
taskIdstringSim1–64 caracteres

Campos da resposta

CampoTipoDescrição
statusstringwaiting · processing · success · failed
resultUrlstringURL de resultado; válido por 24 horas após a geração
failCodestringIdentificador de falha estável
failReasonstringMotivo da falha da tarefa
costnumberCréditos cobrados por esta tarefa
expiredTimestringTempo de expiração do URL de resultado

Erros do endpoint

codeSignificadoDescrição
-100Falha de autenticação ou quotaCausas comuns: userNo · API Key · credits
-300Pedido recusadoCausas comuns: taskId · ownership · state
-500Erro internoCausas comuns: server · retry
POST

/open/queryCredits

Tarefas e conta · credits

Formato do pedido: form / query

Parâmetros da solicitação

CampoTipoObrigatórioDescrição
userNostringSim550W userNo
apiKeystringSimAPI Key

Campos da resposta

CampoTipoDescrição
codenumberCódigo de resultado; 200 significa sucesso
messagestringMensagem de estado
userNostringIdentificador do utilizador
creditsnumberCréditos disponíveis

Erros do endpoint

codeSignificadoDescrição
-100Falha de autenticação ou quotaCausas comuns: userNo · API Key · credits
-500Erro internoCausas comuns: server · retry

Campos comuns do pedido

CampoObrigatórioDescrição
userNoSim550W userNo
apiKeySimAPI Key
Idempotency-KeyRecomendado≤ 128 · retry-safe
callbackUrlNãoHTTPS webhook · final status

Campos da tarefa de vídeo

CampoTipoDescrição
videoUrlstringHTTP(S) URL · ≤ 2048 caracteres
widthnumberlargura do vídeo · px
heightnumberaltura do vídeo · px · max ≤ 1920 · min ≤ 1080
durationnumber1–1800 s
x1numbercanto superior esquerdo X · px
y1numbercanto superior esquerdo Y · px
x2numbercanto inferior direito X · px
y2numbercanto inferior direito Y · px · x1 = y1 = x2 = y2 = 0: quadro completo
modestringnormal (predefinido) · protect
removeAudiobooleantrue · false (predefinido)

Resposta e estado da tarefa

As respostas incluem code e message. As tarefas passam por waiting e processing até success ou failed. Em caso de sucesso, utilize resultUrl; em caso de falha, consulte failCode. Os ficheiros de resultado expiram.

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

Códigos de erro

CodeSignificadoCausas comuns
200Sucessomessage: "success"
-100Falha de autenticação ou quotauserNo · API Key · credits
-200Parâmetro inválidofield · URL · size · duration · Idempotency-Key
-300Pedido recusadotaskId · ownership · state
-401Suspensão temporária da contaPrimeira infração efetiva: 1 hora; segunda: 24 horas. Deteções durante a suspensão não contam, prolongam nem agravam a sanção.
-402Bloqueio permanente da contaA terceira infração efetiva bloqueia a conta permanentemente.
-500Erro internoserver · retry
-600Formato de vídeo não suportadocodec · bit depth · HDR · audio

Identificadores de falha de tarefa (failCode)

failCode é um identificador de string, não o code numérico. Aparece apenas quando uma tarefa falha. Use failCode para determinar a causa; não analise a mensagem failReason traduzida.

failCodeSignificado
VIDEO_UNREACHABLEO URL do vídeo não está acessível publicamente
VIDEO_METADATA_UNAVAILABLENão foi possível obter metadados de vídeo fiáveis.
VIDEO_RESOLUTION_UNSUPPORTEDA resolução de vídeo medida excede o intervalo suportado
VIDEO_DURATION_UNSUPPORTEDA duração medida do vídeo excede 30 minutos
VIDEO_CODEC_UNSUPPORTEDO codec de vídeo não é compatível
VIDEO_BIT_DEPTH_UNSUPPORTEDA profundidade de bits do vídeo não é suportada
VIDEO_HDR_UNSUPPORTEDHDR, PQ ou HLG não são suportados
VIDEO_AUDIO_UNSUPPORTEDO codec de áudio não é compatível
VIDEO_CONTAINER_UNSUPPORTEDO formato do contêiner de vídeo não é compatível
VIDEO_PREPARE_FAILEDFalha na preparação, validação ou remoção de áudio do vídeo

Copiar exemplo e chamar

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

Utilização e faturação

As tarefas de vídeo são cobradas conforme a duração do processamento e a resolução. As imagens custam 10 créditos por tarefa concluída; falhas de processamento não são cobradas.

Resolução do vídeoTarifaExemplo
width × height ≤ 921,600 · 720p ou inferior1.3 créditos / s1280×720 · 30 s ≈ 39 créditos
width × height > 921,600 · Até 1080p1.6 créditos / s1920×1080 · 30 s ≈ 48 créditos

As consultas de tarefas devolvem apenas dados do utilizador autenticado.

Trate os erros com code, message, status, failCode e refundStatus.

Comprar créditos

As tarefas de vídeo são cobradas conforme a duração do processamento e a resolução. As imagens custam 10 créditos por tarefa concluída; falhas de processamento não são cobradas.

Preços →