AwesomeVideo

com.awesomevideoeditorPublished by awesomevideoeditor.comOfficial publisherv0.5.1Updated Nov 4, 2026

Video for AI agents: captions in 28 styles, transcription, translation, dubbing, shorts. REST+MCP.

VerifiedStreamable HTTPWeb executableProductivity & WorkflowMedia & DesignAI & ML

Overview

AI-generated overview

Remote video-processing service that lets an assistant transcribe, translate, dub, clip and burn styled captions into video, paid in prepaid credits.

What you can do
  • Create a key, price operations and browse presets, styles and voices
  • Upload or import media from public links, Drive or Dropbox and get a fileId
  • Transcribe speech to SRT, VTT or JSON, translate captions, edit cues and manage a glossary
  • Burn styled captions, preview styles, request human review and check review status
  • Dub into other languages, remove silences, generate publishing metadata and cut shorts
  • Run batch jobs over 1-50 videos, list and inspect jobs, resume failed ones, check balance and buy credits
When to use it
Useful when an assistant needs to caption, subtitle, translate, dub or clip video and audio without local ffmpeg or model setup, especially for social or publishing workflows where styled burned-in captions and shorts are wanted.
Requirements
Remote streamable HTTP endpoint; no local runtime. Free tools (create_key, estimate, get_catalog) work without credentials; other tools need an API key sent as an Authorization Bearer token, obtained via create_key. Paid work requires prepaid credits bought through a checkout URL.
Before you install
Paid tools spend prepaid credits per audio minute and return 402 with a checkoutUrl when the balance is short; create_checkout leads to real payment. Media is uploaded to or fetched by a third-party service, and import_url pulls files from public links, Drive or Dropbox. Jobs write and overwrite data: edit_transcript replaces cues, update_glossary changes account-wide transcription terms, and review links are private but shareable for up to 7 days.

Installation

In SourceWeft

  1. Open AwesomeVideo in the dashboard and add it to a workspace.
  2. Enable the server for the chats that should use its tools.

Web executable via Streamable HTTP. Remote servers run from the web runtime once configured in a workspace.

Use with an agent

Paste this prompt into Claude Code, Codex, Cursor or another agent — or into SourceWeft chat. The agent reads this server's install guide, shows you its publisher, endpoint and sign-in, and adds it to your client once you agree. Keys never go into a command.

Read https://sourceweft.com/mcp/com.awesomevideoeditor%2Fawesomevideo/install.md and connect the MCP server it describes to my client. Before changing any config, show me its publisher, endpoint and sign-in method and wait for my OK. Never put an API key in a command or in a file I would commit; ask me where it should come from.

Read the install guide the agent follows

Other MCP clients

Add this to your client's mcpServers config.

{
  "mcpServers": {
    "awesomevideo": {
      "type": "http",
      "url": "https://api.awesomevideoeditor.com/mcp"
    }
  }
}

Tools

27

create_key

Create API key

Free. Create a new AwesomeVideo API key, no sign-in. Works without a key; returns the token once (send it as Authorization: Bearer <token>). 0 paid credits; paid tools return 402 with a checkoutUrl ($5 = 500 credits, 1 credit = 1 cent). Free trial while it runs: 10 welcomeCredits (pay only caption_video and transcribe, jobs up to 2 min, valid 30 days), fair-shared: one per network and per network operator per day, released in slots through the day, and only with a solved proof-of-work. Without challenge+nonce you get the key with welcomeCreditsReason pow_required and a welcomeChallenge: find an integer nonce so SHA-256(challenge + ":" + nonce) starts with `bits` zero bits (about 1-3 s; python and javascript solvers included), then call create_key again with {challenge, nonce} on the connection that sends your new key: it claims the credits for that key (no second key). welcomeCreditsReason tells why when 0 (slot_wait has nextSlotAt). The result has firstJob: next call caption_video with a public sourceUrl.

Parametersnamenoncechallenge

import_url

Import from URL

Free. Download a public video or audio link into AwesomeVideo and get a fileId (same as upload {action:'start'}), without downloading it yourself. Accepts direct https/http file links (chat attachment URLs, CDNs, S3 presigned URLs), Google Drive share links (large-file confirm page handled), Dropbox share links, and OneDrive links. Up to 2048 MB when the host sends Content-Length (streamed to storage), 80 MB otherwise (422 limit_exceeded, charged:false). YouTube, TikTok, and Instagram links are refused with 422: upload the file instead. Private, local, and non-standard-port addresses are blocked. Up to 30 per hour. caption_video accepts sourceUrl directly, so you only need this to reuse one file across several tools.

Parametersurlrequiredfilename

caption_video

Caption video (one call)

PREFER THIS for 'add/burn subtitles to this video'. One call: transcribe, optional translate (translateTo), burn; returns the MP4 plus SRT, VTT and JSON transcript. Source: sourceUrl (public link, Drive, Dropbox; not YouTube) or fileId from upload/import_url. Price: 5 credits per audio minute, 7 with translateTo (1 credit = 1 cent); failures refund. Waits up to waitSeconds (max 50), then returns the job to poll with get_job (or use webhookUrl/notifyEmail). review:true sends a reviewUrl and charges the burn only on approval. To edit text yourself: transcribe, edit_transcript, burn_captions.

ParameterswaitfileIdpresetreviewautoFitglossarylanguageplatformfaceAvoidsourceUrlmaxCreditswebhookUrl+11 more

transcribe

Transcribe

Transcribe speech in a video or audio file to captions with Workers AI Whisper (large-v3-turbo); returns SRT, VTT or JSON with word timestamps (format). Paid: 1 credit per audio minute (1 credit = 1 cent); a short balance gets 402 insufficient_balance (requiredCents, balanceCents, checkoutUrl) and no job starts. Use it when you only need the text or want to edit it before burning (then edit_transcript -> burn_captions). For burned-in subtitles in one call use caption_video; for highlights use create_clips. Audio is extracted to 16 kHz mono (video frames are not decoded). Language defaults to auto-detect; the saved glossary is applied. Results are cached per key, language, format and duration; another key cannot read them.

ParametersfileIdformatglossarylanguagemediaUrlmaxCreditswebhookUrlnotifyEmaildurationSecondsuseSavedGlossary

edit_transcript

Edit transcript

Replace the cues of a finished transcription (from transcribe or caption_video) with corrected text or timing, without transcribing again. Free; needs the key that owns the job. Pass cues [{start, end, text}] in seconds or subtitles (SRT, VTT or JSON); the old cues are overwritten. A later burn_captions, translate or remove_silences with this transcriptionJobId uses the edited cues and pays only its own step. To fix spellings for every future job use update_glossary {action:'save'} instead. Returns the job with the new SRT, VTT and JSON URLs.

ParameterscuesjobIdrequiredsubtitles

batch

Batch jobs

Caption a whole folder: run one operation on 1-50 videos in one call, priced together. operation caption = transcribe + burn per item, same output and price as caption_video (5 credits/min); transcribe 1/min; burn 4/min (needs subtitles or transcriptionJobId). One preset for all (an item's own preset or styleOverrides wins). dryRun:true returns the total and starts nothing. Missing media, 402 insufficient_balance or maxCredits reject the whole batch before any charge. Returns id, counts and jobs (paginated: offset/limit); poll get_job per item. For one video use caption_video.

ParametersitemsrequireddryRunpresetoperationrequiredmaxCredits

translate

Translate subtitles

Translate existing captions (subtitles or transcriptionJobId) into another language with Workers AI m2m100, keeping cue timing; returns SRT, VTT and JSON. Paid: 2 credits per minute; burn: true also burns the translation into the video (+4 credits/min; needs mediaUrl or fileId and a preset). Word-level highlight timing is not kept. To transcribe, translate and burn in one call use caption_video with translateTo; for a spoken (voice) translation use dub. Saved do-not-translate glossary terms are kept as is. 402 insufficient_balance with checkoutUrl when short; failed jobs refund.

ParametersburnfileIdpresetmediaUrlfaceAvoidsubtitlesmaxCreditshighlightColorhighlightWordssourceLanguagestyleOverridestargetLanguagerequired+1 more

dub

Dub video into another language

Dub a video into targetLanguage: transcribes, translates, voices each line fitted to the original timing, and mixes it over the original audio (ducked by default, or muted); returns an MP4 plus target-language SRT/VTT/JSON (audioTrack:true adds an M4A). Price per target language: 5 credits per source minute (voiceTier basic) or 12 (standard), plus transcription 1/min and translation 2/min unless you reuse transcriptionJobId/subtitles and translationJobId/translatedSubtitles. Voices: get_catalog kind voices. Unsupported languages fail before charging. No voice cloning or lip sync.

ParametersvoicefileIdmediaUrlsubtitlesvoiceTieraudioTrackmaxCreditssourceLanguagetargetLanguagerequiredtranslationJobIdkeepOriginalAudiotranscriptionJobId+1 more

generate_metadata

Titles, description, hashtags and chapters

Write publishing metadata from what is said: title options (titleCount, default 5), description, hashtags and YouTube chapters with timestamps, per platform (youtube default, shorts, tiktok, instagram). Pass transcriptionJobId or subtitles (1 credit per platform), or only media (adds 1 credit per minute to transcribe). Written in the video's language unless language is set; context adds creator notes. Waits ~40 s, else poll get_job. Result: platforms.<platform>.{titles, description, hashtags, chapters}.

ParametersfileIdcontextlanguagemediaUrlplatformsquoteOnlysubtitlesmaxCreditstitleCountdurationSecondstranscriptionJobId

remove_silences

Remove silences and filler words

Cut silences and filler words (uh, um, este...) from a talking video. Needs a transcript (transcriptionJobId or subtitles) plus the media. Returns the cut MP4, retimed SRT/VTT/JSON and stats (kept and removed seconds, cuts). silenceGapSeconds and paddingSeconds tune cuts; fillerMode clear (default) or aggressive (also like, you know, o sea...); removeFillers:false keeps fillers. burnCaptions:true also burns the retimed captions. Price: 3 credits per kept minute, +4 with burnCaptions; quoteOnly:true prices it free. For highlights use create_clips.

ParametersfileIdpresetautoFitfillersmediaUrlplatformfaceAvoidquoteOnlysubtitlesfillerModemaxCreditskeepFillers+12 more

request_review

Request human review before burning

Free. Use when a person wants to check the captions before they are burned (names, slang, brand words). Pass a finished transcriptionJobId and the preset or brandPresetId. Returns reviewUrl: a private web editor link (no login, up to 7 days) where they fix text and timing and press Approve or Reject. Only on Approve does the burn run and charge (4 credits per minute). Follow with get_review, or webhookUrl / notifyEmail for review.approved, review.rejected and review.expired events.

ParameterspresetautoFitcombinedplatformfaceAvoidmaxCreditswebhookUrlnotifyEmailinstructionsbrandPresetIdexpiresInDayshighlightColor+3 more

get_review

Get review

Check a human review created by request_review: awaiting_review, approved (with burnJobId and, when finished, the burned video URL), rejected (note says why; nothing charged), or expired. Free, read-only; needs the key that created it. Poll it after sharing reviewUrl; once burnJobId exists you can also poll get_job for that burn.

ParametersreviewIdrequired

get_glossary

Get saved glossary

Read the saved transcription glossary of this account (or key): correct spellings with their aliases (what speech-to-text writes instead) and do-not-translate terms. Free, read-only; needs a key. Every transcribe and translate applies it automatically, so read it to check why a word came out as it did. Change it with update_glossary {action:'save'} or update_glossary {action:'delete'}.

Takes no parameters.

get_job

Get job

Read any job. Includes status, step (queued, transcribe, translate, burn, finalize, done, failed), progress (0-100, burn uses real ffmpeg progress), eta_seconds and estimatedCompletionAt (from media length x rolling per-step averages), pollAfterSeconds (wait that long before the next poll), cost, and an expiring result URL when the job succeeded. A batch id returns the batch view (counts and item jobs). A failed caption job with resumable:true can be restarted with resume_job.

ParametersjobIdrequired

list_jobs

List jobs

List recent jobs (transcribe, burn, caption_video, clips, dub, trim...) newest first for this key, or for every key on the account when the key is claimed: id, kind, status, created time, credits charged, and a download URL while the result is still stored. Free, read-only; needs a key. Paginated: limit (default 50, max 100) and cursor = nextCursor from the previous page. For one job's full status, progress and files use get_job; for credit totals per day use get_account.

Parameterslimitcursor

resume_job

Resume a failed caption job

Continue a failed job (caption_video, transcribe, create_clips, dub, remove_silences, generate_metadata) from where it stopped instead of starting over. Reuses saved transcription chunks and finished steps, so you pay only what is left (often just the burn); the failed job stays refunded. Idempotent: repeating returns the same resumed job, never a second charge. Returns a new job id to poll with get_job. 422 resume_not_supported or resume_media_expired: call the original tool again. 409 job_not_resumable (no_speech): nothing to resume.

ParametersjobIdrequiredmaxCreditswebhookUrlnotifyEmail

upload

Upload a file

Free. Put your own video or audio file into AwesomeVideo and get a fileId for caption_video, transcribe, burn_captions, create_clips, remove_silences or preview. action start: one single-use PUT URL (valid 15 min, files up to 80 MB); start_multipart: parts[] of PUT URLs for files over 80 MB (up to 2048 MB / 3 h) or flaky connections; status: missingParts of a multipart upload; complete: finish a multipart upload after every part is PUT; abort: cancel an unfinished multipart upload (deletes its parts); inline: send a clip of up to 10 MB as base64 in one call. For a public link use import_url instead. Up to 30 uploads per hour.

ParametersdataactionrequiredfileIdfilenamesizeBytescontentTypepartSizeBytes

burn_captions

Burn captions into a video

Burn existing captions (subtitles or transcriptionJobId) into a video with a preset or brandPresetId. mode server (default): renders the MP4 on our servers, 4 credits per audio minute (1 credit = 1 cent), 402 insufficient_balance with checkoutUrl when short. mode client_script: free, returns an ASS script and resolved style to burn in your own player or browser; nothing runs or is charged. platform keeps captions inside that app's safe zone at the same price ('subtítulos para TikTok' -> platform=tiktok). For video in, video out in one call use caption_video.

ParametersmodewidthfileIdheightpresetautoFitcombinedmediaUrlplatformpresetIdfaceAvoidsubtitles+11 more

get_catalog

Read the AwesomeVideo catalog

Free, read-only, works without a key. Everything you can choose from, by kind: presets (built-in, approved community and, with a key, your custom presets, plus bundled fonts), styles (every caption style field with type, range and examples), voices (dub voices with tier, price and sampleUrl; filter with language and tier), platforms (where videos are posted, with safe zones), audio_visuals (the ten editorial podcast designs for audio-only input). Paginated with limit and cursor; response_format concise (default) drops nested objects such as full style JSON, detailed returns them. Pass ids you find here as preset, voice, platform or audioVisual to the job tools.

Parameterskindrequiredtierlimitcursorlanguageresponse_format

estimate

Estimate price and limits (free)

Free, never charges, works without a key. Without steps: the credits one operation would cost (operation caption, transcribe, burn, preview, translate, shorts, trim, dub or preview {mode:'sample'}) from durationSeconds, or from mediaUrl/fileId with a key. With steps: prices a whole pipeline of 1-10 steps, checks every limit before you pay (limitViolations with a fix for each), suggests free alternatives and, with a key, says whether the balance covers it. 1 credit = 1 cent. Call it before any paid tool when the cost matters.

ParametersstepsfileIdsourcemediaUrloperationvoiceTiertranslateTohasTranscripthasTranslationtargetLanguagedurationSeconds

preview

Preview captions on the video

See captions on the real video before paying for a burn. mode sample: FREE contact sheet comparing up to 12 presets on real frames (no transcription, 30 sheets/hour); returns sheetUrl, per-preset frames and captionVideoArgs to pass to caption_video. mode still (default): one preset as a PNG exactly as burn_captions draws it; mode clip: an MP4 of up to 5 s. still and clip cost at most 1 credit flat and need captions (subtitles or transcriptionJobId). Media: mediaUrl/sourceUrl or fileId.

ParametersmodetextfileIdpresetautoFitpresetsfullTextlanguagemediaUrlplatformpresetIdatSeconds+12 more

get_presets

Read your saved presets

Free, read-only, needs a key. action list (default) returns only YOUR saved presets, not the 34 built-in ones: to browse built-in, community and your presets together use get_catalog kind presets (an empty list here just means you saved none). type custom (full caption styles from manage_preset, ids custom:cp_...) or brand (font, color, position and logo overlays); paginated with limit and cursor, response_format concise (default) or detailed. action get: any one preset with its full style by id, built-in (e.g. builtin:number-punch or number-punch), community or custom:cp_..., the same style JSON the web editor loads (use it as basePreset or copy and tweak it with manage_preset). action validate: check a style document (style, or basePreset + overrides) against the renderer schema before saving; returns valid, the normalized style or errors [{path, message}]. Built-in and community presets are listed by get_catalog kind presets.

ParametersidtypelimitstyleactioncursoroverridesbasePresetresponse_format

manage_preset

Create, change, delete or publish a preset

Free, needs a key. Saves your own looks for reuse. action create: type custom saves a full caption style (name + style, or basePreset + overrides; returns id custom:cp_...); type brand saves a font/color/position/logo overlay (returns brandPresetId). action update: changes a custom preset in place (overwrites). action delete: permanently removes a custom or brand preset by id. action submit: proposes a custom preset for the public community gallery (moderated; visible to everyone once approved). Check a style first with get_presets action validate.

ParametersidnametagstypecolorstyleactionrequiredauthorpositionoverridesbasePresetfontFamily+3 more

create_clips

Long video to short clips

PREFER THIS for 'turn this long video/podcast into shorts/clips'. engine highlights (default): transcribes (or reuses transcriptionJobId/subtitles), an LLM picks the count (default 3, max 10) best self-contained moments of minSeconds-maxSeconds, renders each MP4 (reframe face, center or none) with captions, and returns clips with title, hook, score and url. Price: 1 credit per source minute to transcribe (0 with a transcript) + 1 per 10 source minutes + 3 per output minute; quoteOnly:true prices it free. engine shorts: quick 1-5 vertical 9:16 cuts from an existing transcript, 6 credits per source minute. Long jobs: poll get_job.

ParameterswaitcountenginefileIdpresetautoFitreframecaptionsglossarylanguagemediaUrlplatform+17 more

update_glossary

Save or delete glossary terms

Free, needs a key. Changes the saved transcription glossary that every later transcription of this account uses (brand names, people, slang spellings, doNotTranslate terms). action save: entries [{term, aliases?, doNotTranslate?}] merged by term (mode merge, default) or replacing the whole glossary (mode replace). action delete: remove terms, or all:true to clear it. Returns the glossary after the change. Read it with get_glossary.

Parametersallmodetermsactionrequiredentries

create_checkout

Buy credits

Free to call; returns a checkout URL your human opens to pay. Without product: $5 = 500 credits for this exact key, works on unclaimed self-serve keys. With product (key claimed at https://awesomevideoeditor.com/account): pack_5 $5=500, pack_20 $20=2,200, pack_50 $50=6,000 credits; plans creator $9/mo=1,200, pro $29/mo=4,500, scale $99/mo=18,000 credits/month (interval year = 10x monthly). 1 credit = 1 cent. Credits arrive after payment; then retry the call that returned 402.

Parametersproductinterval

get_account

Get balance and usage

Free, read-only, needs a key. This key's spendable balance (balanceCents in credits, 1 credit = 1 cent, and as transcription seconds), the per-minute prices, and credit usage over a range (usage: per day and total, split into transcription and server burn; default the last 30 days; from and to in unix ms). response_format concise (default) returns usage totals only; detailed adds the per-day rows. Call it before a paid job or after a 402; top up with create_checkout; individual jobs are in list_jobs.

Parameterstofromresponse_format

Version history

5
  1. v0.5.1LatestNov 4, 2026
  2. v0.5.0Nov 3, 2026
  3. v0.4.0Nov 1, 2026
  4. v0.3.0Nov 1, 2026
  5. v0.2.0Oct 31, 2026

Score

83% of the applicable checks met

How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.

  • Reached in the last 30 daysRequired25 pts
  • Auth declaredRequired10 pts
  • Tools listedRequired15 pts
  • DescriptionRequired15 pts
  • Logo10 pts
  • Documentation15 pts

    Declare a GitHub repository with a README, or serve resource_documentation in the OAuth protected-resource metadata.

  • LicenseNot applicable

    A hosted service is used under its provider's terms, so no license is expected here. This check is left out of the percentage.