About openclip-convert
openclip-convert is a skill for converting media files through OpenClip, for people handling video and audio formats. It covers container and codec changes, GIF creation, and extracting audio, with asynchronous job polling and permanent output links.
Key features
- 01Convert video containers and codecs
- 02Create GIFs with adjustable FPS and width
- 03Extract audio as MP3, AAC, WAV, or FLAC
- 04Poll asynchronous conversion jobs
Use cases
- 01Convert a video to MP4 for broad playback
- 02Create a GIF from a trimmed video segment
- 03Extract MP3 audio from a video
- 04Prepare lossless audio for editing
MCP support
It uses the OpenClip remote MCP server at https://openclip.app/mcp. The workflow uploads a file, calls convert_media, and polls get_tool_job_status for results.
Install
Copy the command and run it in a terminal.
npx skills add https:/ / github.com/ openclip-app/ agent-skills --skill openclip-convertAfter installing, type/openclip-convertin Claude Code to confirm it loaded.
Details
From the project READMEOpenClip: media conversion
convert_media changes a file's container or codec, including video to gif and video to
audio-only. It is FREE, it needs an OpenClip account but no subscription and no credits.
Setup (once)
OpenClip is a remote MCP server at https://openclip.app/mcp. Sign in with your OpenClip
account when the OAuth prompt appears, there is no API key to copy.
- Claude Code:
claude mcp add --transport http openclip https://openclip.app/mcp, then/mcpto authorize. - Claude Desktop / web: Settings, Connectors, "Add custom connector", paste the URL, sign in.
- Cursor (
.cursor/mcp.json):{ "mcpServers": { "openclip": { "url": "https://openclip.app/mcp" } } } - Header-only clients: mint an MCP token at
openclip.app/settings/connectand connect tohttps://openclip.app/mcp/keywithAuthorization: Bearer <token>.
Sanity check: call get_account.
Getting the file in
create_upload(filename, content_type)returns anidand anupload_url.- PUT the raw bytes to
upload_url. - Pass the returned
idas thefileargument.
Do NOT call complete_upload. That starts the paid clipping pipeline. Free tools read the
uploaded file directly. A file already in list_videos works as an input too.
Targets
convert_media(file, to, ...params).
- Video containers -
mp4,webm,mov,mkv. Default tomp4when the user just wants something that plays everywhere. - gif - optional
fps(default 12) andwidth(default 480). Raisefpsfor smoother motion, raisewidthfor a sharper gif, both make the file much bigger. Trim the source first if it is long, gifs balloon fast. - Audio -
mp3,aac,wav,flac. Use this to rip audio out of a video.mp3for sharing,wavorflacwhen the audio feeds another tool that wants lossless.
To hit a file size rather than change format, that is edit_video with operation="compress"
(target_mb or crf), see the openclip-video-editing skill.
Polling
convert_media returns a tool_job hashid with status: "queued". Poll
get_tool_job_status(tool_job) every 5 to 10 seconds:
queued/processing- still working, keep polling.completed- returns permanent CDNoutputsURLs plusresult_meta.failed- returnserror.
Never assume a call finished synchronously.
Rules
- Always poll, conversion is async.
- Output URLs are permanent CDN links, not signed or expiring.
- Free usage is rate limited per day with a per-file size cap. The error text explains how to lift a limit.
- Converting a long video to gif produces an enormous file. Trim to the interesting few seconds first, then convert.
Example prompts to actions
- "Convert this to mp4" -
create_upload, PUT bytes,convert_media(file, to="mp4"), poll. - "Make a gif of this" - trim to the moment first with
edit_video, thenconvert_media(file, to="gif", fps=15, width=640), poll. - "Get me just the audio" -
convert_media(file, to="mp3"), poll. - "I need lossless audio for editing" -
convert_media(file, to="wav"), poll.
Related
Trimming, cropping, and size-targeted compression live in openclip-video-editing.
Transcribing the audio you just extracted is openclip-transcription.