550W · API para desenvolvedores

API para desenvolvedores

API de processamento de imagens e vídeos

O que você 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. Imagens custam 10 créditos por tarefa concluída; falhas de processamento não são cobradas.

Uso e cobrança
2

Gerar API Key

Inclua userNo e API Key em todas as solicitações. O upload é opcional: use /open/uploadVideo ou informe 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 todas as solicitações. O upload é opcional: use /open/uploadVideo ou informe 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 todas as solicitações. O upload é opcional: use /open/uploadVideo ou informe diretamente uma videoUrl pública.

Resposta

As respostas contêm code e message. As tarefas passam por waiting e processing até success ou failed. Em caso de sucesso, use resultUrl; em caso de falha, verifique failCode. Os arquivos de resultado expiram. Para contas internacionais (clientType=overseas), message é retornado em inglês. Use code, status, failCode e nomes de campos, que não dependem do idioma, na lógica.

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

uploadVideo → submitTask → taskDetail

Status da tarefa

As respostas contêm code e message. As tarefas passam por waiting e processing até success ou failed. Em caso de sucesso, use resultUrl; em caso de falha, verifique failCode. Os arquivos de resultado expiram.

waiting→processing→successfailed

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

Tarefas assíncronas e confiabilidade

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 exclusivo para cada nova tarefa. Ao tentar o mesmo envio novamente, reutilize a chave para receber 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, baixe 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. Tarefas excluídas não aparecem em taskDetail nem em taskList. Os valores de status permanecem 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 · Status da tarefa

POST/open/taskList

Remoção de legendas e marcas d’água de vídeo · Tarefas e conta. Tarefas excluídas não aparecem em taskDetail nem em taskList. Os valores de status permanecem waiting, processing, success ou failed.

POST/open/deleteTask

Excluir tarefa · Marca uma tarefa de vídeo como excluída e retorna imediatamente. O arquivo original enviado, o resultado e os arquivos de novas tentativas são removidos do VOD depois, de forma assíncrona em segundo plano. Créditos já cobrados não são reembolsados. Tarefas excluídas não aparecem em taskDetail nem em taskList. Os valores de status permanecem 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 · Status 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 da solicitação: multipart/form-data

Parâmetros da solicitação

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

Campos da resposta

CampoTipoDescrição
codenumberCódigo de resultado; 200 significa sucesso
messagestringMensagem de status
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 cotaCausas 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 da solicitação: 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 (padrão) · protect
fileNamestringNãoUTF-8
coverUrlstringNãoHTTP(S) URL
callbackUrlstringNãoHTTPS webhook · status final da tarefa
removeAudiobooleanNãotrue · false (padrão)
Idempotency-Key / idempotencyKeystringRecomendado≤ 128 caracteres · é seguro tentar novamente

Campos da resposta

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

Erros do endpoint

codeSignificadoDescrição
-100Falha de autenticação ou cotaCausas comuns: userNo · API Key · credits
-200Parâmetro inválidoCausas comuns: field · URL · size · duration · Idempotency-Key
-300Solicitação recusadaCausas comuns: taskId · ownership · state
-401Suspensão temporária da contaCausas comuns: Primeira infração efetiva: 1 hora; segunda: 24 horas. Detecçõ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 compatívelCausas comuns: codec · bit depth · HDR · audio
POST

/open/taskDetail

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

Formato da solicitação: form / query

Parâmetros da solicitação

CampoTipoObrigatórioDescrição
userNostringSim550W userNo
apiKeystringSimAPI Key
taskIdstringSim1–64 caracteres
subUserIdstringNão≤ 128 caracteres · propriedade do usuário

Campos da resposta

CampoTipoDescrição
taskIdstringIdentificador de tarefa para consultas de status
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
refundStatusnumberStatus de reembolso de crédito

Erros do endpoint

codeSignificadoDescrição
-100Falha de autenticação ou cotaCausas comuns: userNo · API Key · credits
-300Solicitação recusadaCausas 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. Tarefas excluídas não aparecem em taskDetail nem em taskList. Os valores de status permanecem waiting, processing, success ou failed.

Formato da solicitação: form / query

Parâmetros da solicitação

CampoTipoObrigatórioDescrição
userNostringSim550W userNo
apiKeystringSimAPI Key
pagenumberNão≥ 0 · padrão 0
sizenumberNão1–100 · padrão 20
subUserIdstringNão≤ 128 caracteres · propriedade do usuário

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 cotaCausas comuns: userNo · API Key · credits
-200Parâmetro inválidoCausas comuns: field · URL · size · duration · Idempotency-Key
-500Erro internoCausas comuns: server · retry
POST

/open/deleteTask

Excluir tarefa · Marca uma tarefa de vídeo como excluída e retorna imediatamente. O arquivo original enviado, o resultado e os arquivos de novas tentativas são removidos do VOD depois, de forma assíncrona em segundo plano. Créditos já cobrados não são reembolsados. Tarefas excluídas não aparecem em taskDetail nem em taskList. Os valores de status permanecem waiting, processing, success ou failed.

Formato da solicitação: form / query

Parâmetros da solicitação

CampoTipoObrigatórioDescrição
userNostringSim550W userNo
apiKeystringSimAPI Key
taskIdstringSim1–64 caracteres
subUserIdstringNão≤ 128 caracteres · propriedade do usuário

Campos da resposta

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

Erros do endpoint

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

/open/removeImageWatermark

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

Formato da solicitação: 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 (padrão) · false
operationIdstringNãoidentificador de rastreamento

Campos da resposta

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

Erros do endpoint

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

/open/imageWatermarkTaskDetail

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

Formato da solicitação: 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 cotaCausas comuns: userNo · API Key · credits
-300Solicitação recusadaCausas comuns: taskId · ownership · state
-500Erro internoCausas comuns: server · retry
POST

/open/queryCredits

Tarefas e conta · credits

Formato da solicitação: 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 status
userNostringIdentificador do usuário
creditsnumberCréditos disponíveis

Erros do endpoint

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

Campos comuns da solicitação

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 (padrão) · protect
removeAudiobooleantrue · false (padrão)

Resposta e status da tarefa

As respostas contêm code e message. As tarefas passam por waiting e processing até success ou failed. Em caso de sucesso, use resultUrl; em caso de falha, verifique failCode. Os arquivos de resultado expiram.

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

Códigos de erro

CodeSignificadoCausas comuns
200Sucessomessage: "success"
-100Falha de autenticação ou cotauserNo · API Key · credits
-200Parâmetro inválidofield · URL · size · duration · Idempotency-Key
-300Solicitação recusadataskId · ownership · state
-401Suspensão temporária da contaPrimeira infração efetiva: 1 hora; segunda: 24 horas. Detecçõ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 compatívelcodec · 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 confiá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}
  )

Uso e cobrança

As tarefas de vídeo são cobradas conforme a duração do processamento e a resolução. 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 retornam apenas dados do usuário autenticado.

Trate 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. Imagens custam 10 créditos por tarefa concluída; falhas de processamento não são cobradas.

Preços →