Transcodely

Agent-native video infrastructure.

Community: Submitted by a user or imported; check the owner before granting accessOnlineNo sign-inGlobalFreeRead-only

What it can do

  • Create Job: Create a transcoding job. Reads a source video from a URL (gs://, s3://, or https://) and produces one or more output renditions. Outputs are written to a storage origin you own (pass outp
  • Create Video From Url: Ingest a remote https:// video and host it in one call — this is the tool for "transcode and host this, give me a link". Downloads the URL, transcodes it into an adaptive stream
  • Generate Captions: Generate AI captions (subtitles) for a hosted video by id (vid_...). Creates a billable captions job: speech is transcribed into a WebVTT subtitle track in the given language (defau

What data it sees

Do you need an account

No: the server works without sign-in

Agent-native video infrastructure. Transcode and host a video, get a playable link back — from one prompt, over MCP. Generate captions, encode, transcode with all modern codecs like x264, x265, VP9 and AV1. HLS, DASH and CMAF.

Server tool list (7)

Raw names from tools/list. Only developers need these.

create_jobCreate a transcoding job. Reads a source video from a URL (gs://, s3://, or https://) and produces one or more output renditions. Outputs are written to a storage origin you own (pass output_origin_id); to produce a hosted, playable video instead, use create_video_from_url. Returns the job id, status, and a per-output pricing/status summary. Validation (codec x container compatibility, limits, required fields) is performed server-side and surfaced as a machine-readable error.
create_video_from_urlIngest a remote https:// video and host it in one call — this is the tool for "transcode and host this, give me a link". Downloads the URL, transcodes it into an adaptive streaming ladder, and returns a hosted video (vid_...) with status "processing". The URL must be publicly reachable over http(s); private/internal targets are rejected (SSRF protection). Visibility follows the app's hosting default, "unlisted" when the app has not set one (playable by anyone with the link, not listed publicly). Enables managed hosting for the app on first use — a one-way change, after which hosted storage and egress bill at the standard rates. To finish the job: poll get_video with the returned id every ~10s until status is "ready" (typically under a few minutes for a short clip), then give the user playback.player_url — that is the durable, clickable link.
generate_captionsGenerate AI captions (subtitles) for a hosted video by id (vid_...). Creates a billable captions job: speech is transcribed into a WebVTT subtitle track in the given language (default "auto" to detect the spoken language), attached to the video when the job completes. Billed per source minute; the fee is only charged when a caption track is actually delivered. Idempotent per video+language: repeating the call returns the existing job instead of creating and billing a new one.
get_job_statusGet a concise status snapshot for a transcoding job by id (job_...): overall status and progress, any error code/message, and per-output status/progress with errors. Lighter than the full job record — use it to poll a job to completion.
get_usageReturn hosting usage and cost for a billing month: videos encoded, encoding minutes, average storage, egress, request counts, and per-line and total cost in EUR. Defaults to the current month; pass month as "YYYY-MM" for a specific period.
get_videoFetch a hosted video by id (vid_...): status, visibility, title, duration, poster image, encoded renditions (resolution, codec, bitrate, dimensions), and — once status is "ready" — a playback block. Poll this until status is "ready" (statuses: uploading, processing, ready, error); no playback block is present before then. playback.player_url is the durable player page to hand a human, and is issued for public and unlisted videos only — private videos are not served by the player page and get playback.hls_url instead, a signed manifest for your own player that stops working at playback.expires_at (re-fetch with get_video rather than storing it).
list_jobsList transcoding jobs for the authenticated app, newest first. Optionally filter by status. Returns compact rows (id, status, progress, input_url, cost, timestamps) plus next_cursor for pagination; pass it back as cursor to fetch the next page.
Transcodely: connect to Claude, ChatGPT, Cursor · Connectors.fun