OpenClip: conversão de mídia
convert_media altera o contêiner ou codec de um arquivo, incluindo conversão de vídeo para gif e de vídeo para apenas áudio. É GRATUITO, precisa de uma conta OpenClip, mas não exige assinatura nem créditos.
Configuração (uma vez)
OpenClip é um servidor MCP remoto em https://openclip.app/mcp. Faça login com sua conta OpenClip quando a solicitação OAuth aparecer; não há chave de API para copiar.
- Claude Code:
claude mcp add --transport http openclip https://openclip.app/mcp, depois/mcppara autorizar. - Claude Desktop / web: Configurações, Conectores, "Adicionar conector personalizado", cole a URL, faça login.
- Cursor (
.cursor/mcp.json):{ "mcpServers": { "openclip": { "url": "https://openclip.app/mcp" } } } - Clientes apenas com cabeçalho: gere um token MCP em
openclip.app/settings/connecte conecte-se ahttps://openclip.app/mcp/keycomAuthorization: Bearer <token>.
Teste: chame get_account.
Obtendo o arquivo
create_upload(filename, content_type)retorna umide umaupload_url.- Faça PUT dos bytes brutos para
upload_url. - Passe o
idretornado como argumentofile.
NÃO chame complete_upload. Isso inicia o pipeline pago de clipes. As ferramentas gratuitas leem o arquivo enviado diretamente. Um arquivo já presente em list_videos também pode ser usado como entrada.
Destinos
convert_media(file, to, ...params).
- Contêineres de vídeo —
mp4,webm,mov,mkv. Padrão paramp4quando o usuário quer algo que funcione em qualquer lugar. - gif — opcional
fps(padrão 12) ewidth(padrão 480). Aumentefpspara um movimento mais suave, aumentewidthpara um gif mais nítido; ambos aumentam muito o tamanho do arquivo. Apare a fonte primeiro se for longa, pois gifs incham rapidamente. - Áudio —
mp3,aac,wav,flac. Use para extrair áudio de um vídeo.mp3para compartilhar,wavouflacquando o áudio for usado por outra ferramenta que exija qualidade sem perdas.
Para atingir um tamanho de arquivo específico em vez de mudar o formato, use edit_video com operation="compress" (target_mb ou crf); veja o skill openclip-video-editing.
Polling
convert_media retorna um tool_job hashid com status: "queued". Faça polling de get_tool_job_status(tool_job) a cada 5 a 10 segundos:
queued/processing— ainda processando, continue consultando.completed— retorna URLs CDN permanentes deoutputsmaisresult_meta.failed— retornaerror.
Nunca presuma que uma chamada foi concluída de forma síncrona.
Regras
- Sempre faça polling, a conversão é assíncrona.
- As URLs de saída são links CDN permanentes, não são assinadas nem expiram.
- O uso gratuito tem limite de taxa por dia e um limite de tamanho por arquivo. O texto do erro explica como remover o limite.
- Converter um vídeo longo para gif produz um arquivo enorme. Apare para os poucos segundos interessantes primeiro, depois converta.
Exemplos de prompts para ações
- "Converta isso para mp4" —
create_upload, PUT bytes,convert_media(file, to="mp4"), polling. - "Faça um gif disso" — apare para o momento certo com
edit_video, depoisconvert_media(file, to="gif", fps=15, width=640), polling. - "Quero só o áudio" —
convert_media(file, to="mp3"), polling. - "Preciso de áudio sem perdas para edição" —
convert_media(file, to="wav"), polling.
Relacionados
Corte, redimensionamento e compressão por tamanho estão em openclip-video-editing. Transcrição do áudio extraído está em openclip-transcription.