Videoslash API
Tools

Generate script

Generate a faceless short-form voiceover script from topic + title. Costs credits per variation. Prefer using a title and hookAngle from generate_title when available. Use the same topic enum mapping rules as generate_title. Ask before enabling useRagebait unless the user asked for provocative/viral tone. Requires scripts:generate scope.

Generate script

Tool name: generate_script

Required scope: scripts:generate

Generate a faceless short-form voiceover script from topic + title. Costs credits per variation. Prefer using a title and hookAngle from generate_title when available. Use the same topic enum mapping rules as generate_title. Ask before enabling useRagebait unless the user asked for provocative/viral tone. Requires scripts:generate scope.

Parameters

NameTypeRequiredDescription
topicenum (INTERESTING_FACTS, REDDIT_STORIES, CREEPY_STORIES, QUICK_HACKS, PHILOSOPHICAL, STORYTELLING, OPINION_PIECES, MOTIVATIONAL, VIRAL_FACTS, HISTORICAL, BOOKS_MOVIES, TRUE_CRIME, SCIENCE_EXPLAINED, PSYCHOLOGY, MONEY_FINANCE, RELATIONSHIPS, WORKPLACE, SURVIVAL, ANCIENT_CIVILIZATIONS, ANIMALS_NATURE, TECH_AI, FOOD_FACTS, SPORTS, POP_CULTURE, WHAT_IF, URBAN_LEGENDS)requiredRequired topic enum. Map the user request to the closest value (for example food → FOOD_FACTS, history → HISTORICAL, AI → TECH_AI). If the topic is ambiguous, briefly offer 3–5 matching options and wait for the user before calling this tool.
titlestringrequiredVideo title or concept. Prefer a title from generate_title when available.
hookAnglestringoptionalOptional hook angle from generate_title. Pass it through when available for stronger scripts.
durationstringoptionalTarget duration hint such as 30, 45, or 60 (seconds). Default is around 45s if omitted.
useHookbooleanoptionalInclude a strong opening hook section.
useCTAbooleanoptionalInclude a call-to-action ending.
useRagebaitbooleanoptionalUse a more provocative / curiosity-gap tone when appropriate.
variationsenum (1, 2)optionalHow many script variations to generate (each costs credits).

Generate script title

Generate a short-form video title and hookAngle for a topic enum. Costs credits. If the user only says "write a title" without a topic, map their subject to the closest topic enum, or if unclear offer a short list of matching topics and wait. Do not invent topic values outside the enum. Prefer calling this before generate_script so you can pass title + hookAngle through. Requires scripts:generate scope.

Create Creative Studio generation

Start an async Creative Studio image or video job. Returns id + status=processing quickly — do not wait for pixels in this call. In Claude Connectors an inline MCP App widget shows loading then the image/video; do NOT paste CDN links, markdown images, or use “show/visualize file” tools for the result — the widget is the preview. Wait ~8–15s then call get_creative_generation sparingly (5–10s apart) until status is completed or failed. Workflow: (1) list_creative_models if model unknown, (2) get_creative_model when you need exact parameter names, (3) confirm the plan with the user if any detail (scope, aspect ratio, model choice) was not fully specified by them, (4) create with modelId + prompt + parameters, (5) poll sparingly. Call this ONCE per intended output — if the user provided several reference images and wants a single combined result, use one supportsMultiReferenceMedia model with all images in one mediaUrls entry instead of calling this once per image; only generate multiple separate outputs if the user explicitly asked for that. mediaUrls may include prior outputUrl values for image-to-video / edit chains. Attached/local files: prefer omitting mediaUploads and using mediaIntent (for optional params the user clearly wants) so the Creative Studio widget can collect the file in-browser without base64 through your context; coding agents with network access may use request_creative_media_upload (presigned PUT) or upload_creative_media only when bytes never surface in your response. IMPORTANT — optional media params: get_creative_model often marks image/video reference params as required=false (the model can also run as pure text-to-X). That does NOT mean you can skip a param the user clearly wants used — if they say "use this exact image" / "edit this photo" and you have no bytes for it, you MUST include its name in mediaIntent, or the job silently runs text-only and produces a fabricated result that only superficially resembles their photo instead of erroring. Requires creative:generate scope.

On this page