Clip long videos, open clips in the editor, draft posts and track views in your RipClip account.
Maintain this server? Claim it
Call this server's tools from your browser. Nothing to install.
Requests go through mcptry because browsers can't call most MCP servers directly. Header values are sent to the server for that request only and are never stored or logged.
Tool list from our last check. Connect live to refresh it.
Use this when the user wants to put text, a sticker, a sound or B-roll on a clip: "add a title that says NO WAY", "a fire emoji on the punchline", "a whoosh at 4 seconds", "find me B-roll for this line". clip_id comes from list_clips; times are seconds into the clip. Text: text (each line of a multi-line style on its own line), text_style (a title, lower third or subscribe style), text_effect (neon, gradient, 3D), text_animation (how it comes in), text_loop, text_color, text_size, text_position top / middle / bottom, text_start_seconds and text_end_seconds (0 = 3 s from the start). Sticker: sticker (a name, an id or the emoji itself), sticker_at_seconds, sticker_seconds (default 2), sticker_position, sticker_size. Sound effect: sound_effect at sound_at_seconds. Names come from edit_catalog. B-roll (stock footage, Premium, in a call of its own): broll_line (words the speaker says) or broll_at_seconds, broll_search (what it shows; empty = from that line), broll_seconds 1.5-8, broll_layout top / bottom (the half it fills, the speaker on the other). Not for: the clip's own captions (style_clip, edit_clip), background music (edit_clip) or subtitles in another language (translate_captions). Saved as an undoable version; the clip's video is replaced by the new render. Costs no Horizon Units. Returns job_id: poll job_status, then preview_frame.
The server marks this tool as destructive. Running it may delete or overwrite data on the server or in any account you connected with your headers.
Pick your client. Values in capitals, like YOUR_TOKEN, are yours to fill in.
Run in a terminal
claude mcp add --transport http ripclip https://ripclip.org/mcp/
Use this when the user wants to put text, a sticker, a sound or B-roll on a clip: "add a title that says NO WAY", "a fire emoji on the punchline", "a whoosh at 4 seconds", "find me B-roll for this line". clip_id comes from list_clips; times are seconds into the clip. Text: text (each line of a multi-line style on its own line), text_style (a title, lower third or subscribe style), text_effect (neon, gradient, 3D), text_animation (how it comes in), text_loop, text_color, text_size, text_position top / middle / bottom, text_start_seconds and text_end_seconds (0 = 3 s from the start). Sticker: sticker (a name, an id or the emoji itself), sticker_at_seconds, sticker_seconds (default 2), sticker_position, sticker_size. Sound effect: sound_effect at sound_at_seconds. Names come from edit_catalog. B-roll (stock footage, Premium, in a call of its own): broll_line (words the speaker says) or broll_at_seconds, broll_search (what it shows; empty = from that line), broll_seconds 1.5-8, broll_layout top / bottom (the half it fills, the speaker on the other). Not for: the clip's own captions (style_clip, edit_clip), background music (edit_clip) or subtitles in another language (translate_captions). Saved as an undoable version; the clip's video is replaced by the new render. Costs no Horizon Units. Returns job_id: poll job_status, then preview_frame.
| Argument | Type | Description |
|---|---|---|
| text | string | |
| clip_id* | string | |
| sticker | string | |
| text_loop | string | |
| text_size | any | |
| broll_line | string | |
| text_color | string | |
| text_style | string | |
| text_effect | string | |
| broll_layout | string | |
| broll_search | string | |
| sound_effect | string | |
| sticker_size | any | |
| broll_seconds | number | |
| text_position | string | |
| text_animation | string | |
| sticker_seconds | any | |
| broll_at_seconds | number | |
| sound_at_seconds | number | |
| sticker_position | string | |
| text_end_seconds | number | |
| sticker_at_seconds | number | |
| text_start_seconds | number |
{
"type": "object",
"title": "add_to_clipArguments",
"required": [
"clip_id"
],
"properties": {
"text": {
"type": "string",
"title": "Text",
"default": ""
},
"clip_id": {
"type": "string",
"title": "Clip Id"
},
"sticker": {
"type": "string",
"title": "Sticker",
"default": ""
},
"text_loop": {
"type": "string",
"title": "Text Loop",
"default": ""
},
"text_size": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"title": "Text Size",
"default": null
},
"broll_line": {
"type": "string",
"title": "Broll Line",
"default": ""
},
"text_color": {
"type": "string",
"title": "Text Color",
"default": ""
},
"text_style": {
"type": "string",
"title": "Text Style",
"default": ""
},
"text_effect": {
"type": "string",
"title": "Text Effect",
"default": ""
},
"broll_layout": {
"type": "string",
"title": "Broll Layout",
"default": "top"
},
"broll_search": {
"type": "string",
"title": "Broll Search",
"default": ""
},
"sound_effect": {
"type": "string",
"title": "Sound Effect",
"default": ""
},
"sticker_size": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"title": "Sticker Size",
"default": null
},
"broll_seconds": {
"type": "number",
"title": "Broll Seconds",
"default": 3
},
"text_position": {
"type": "string",
"title": "Text Position",
"default": ""
},
"text_animation": {
"type": "string",
"title": "Text Animation",
"default": ""
},
"sticker_seconds": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"title": "Sticker Seconds",
"default": null
},
"broll_at_seconds": {
"type": "number",
"title": "Broll At Seconds",
"default": -1
},
"sound_at_seconds": {
"type": "number",
"title": "Sound At Seconds",
"default": 0
},
"sticker_position": {
"type": "string",
"title": "Sticker Position",
"default": ""
},
"text_end_seconds": {
"type": "number",
"title": "Text End Seconds",
"default": 0
},
"sticker_at_seconds": {
"type": "number",
"title": "Sticker At Seconds",
"default": 0
},
"text_start_seconds": {
"type": "number",
"title": "Text Start Seconds",
"default": 0
}
}
}Use this when the user wants the light or color of a clip or photo changed: "brighten this photo", "it's too dark", "make it warmer", "more punch", "black and white", "make the sky bluer". clip_id: from list_clips (kind photo for photos). Set values, not steps: exposure -2 to 2 (stops); brightness, contrast 0.5-1.5 and saturation 0-2 (1 = as is, saturation 0 = black and white); highlights, shadows, whites, blacks, tint, vibrance, clarity, dehaze -1 to 1; warmth -1 (cool) to 1 (warm); hue -180 to 180; sharpen, vignette, grain, fade 0-1 (0 = as is). One color band: color (red, orange, yellow, green, cyan, blue, purple, magenta) with color_hue, color_saturation, color_lightness -1 to 1. Guide: brighter = exposure 0.3; a dark photo = exposure 0.5 + shadows 0.4; warmer = warmth 0.3; punchier = contrast 1.15 + vibrance 0.2; moody = contrast 1.2 + saturation 0.8 + vignette 0.3; vintage = fade 0.3 + grain 0.2 + warmth 0.2; bluer sky = color blue + color_saturation 0.3. start_seconds / end_seconds: only that part of a clip. reset=true sets light and color back to neutral first. The answer's notes give the look now, so "a bit more" adds to it. Not for: filter looks and effects (style_clip) or crop and zoom (frame_clip). Saved as an undoable version (undo_edit). Costs no Horizon Units. Returns job_id: poll job_status, then preview_frame.
| Argument | Type | Description |
|---|---|---|
| hue | any | |
| fade | any | |
| tint | any | |
| color | string | |
| grain | any | |
Use this when the user wants to know when to post: "best time to post on TikTok", "when should I upload my Shorts", "which day gets me the most views". Answers from the user's own posts, not general advice: average views 24 hours after posting by weekday and 4-hour block. timezone: an IANA name such as America/Chicago (default UTC). platform: one platform or all. Needs 5 posted posts that have a day of views; below that it says how many there are and how to test. An estimate from past posts. Not for: drafting posts at those times (plan_posts), scheduling one post (draft_post) or a full recap (weekly_report). Free and read only; it schedules nothing.
| Argument | Type | Description |
|---|---|---|
| platform | string | |
| timezone | string |
{
"type": "object",
"title": "best_time_to_postArguments",
"properties": {
"platform": {
"type": "string",
"title": "Platform",
"default": "all"
},
"timezone": {
"type": "string",
"title": "Timezone",
"default": "UTC"
}
}
}Use this when the user wants ONE clip of an exact stretch of a video: "clip 1:02:10 to 1:03:00" (3730 to 3780 seconds), "make a short from that moment", or a match from get_moments. Makes one captioned vertical clip of exactly start_seconds to end_seconds (3 seconds to 5 minutes) of project_id (from list_projects), uncut. clipping_preset (id or name from list_clipping_presets) applies a saved look; left empty, the user's default preset applies, "none" for RipClip's standard look. Not for: letting RipClip pick several highlights (find_clips), searching a topic (find_moments) or changing a finished clip (edit_clip). Spends Horizon Units for just those minutes: call estimate_hu with the same range as range_start / range_end first, show the number and pass the approved amount as max_hu (a higher cost is refused; a failed job gives it back). request_key: any stable string, reused only to retry. Returns job_id; poll job_status, then list_clips.
| Argument | Type | Description |
|---|---|---|
| max_hu* | number | |
| project_id* | string | |
| end_seconds* | number | |
| request_key* | string | |
| start_seconds* | number | |
| clipping_preset | string |
Use this when the user wants platforms side by side: "which platform got the most views for this clip", "TikTok vs Shorts vs Reels this month", "where do my clips perform". clip_id: that clip everywhere it was posted; empty = all posts of the last `days` (default 30, up to 90). Per platform: number of posts, average views after 1 hour, 24 hours and 7 days, the newest likes, comments, shares and saves the platform sent (null when it sends none), and what that platform counts as a view. Platforms count views differently: compare each against its own history and do not add them up. Not for: individual posts (get_post_stats), the weekly recap (weekly_report) or posting hours (best_time_to_post). Free and read only; covers posts RipClip published.
| Argument | Type | Description |
|---|---|---|
| days | integer | |
| clip_id | string |
{
"type": "object",
"title": "compare_platforms_routeArguments",
"properties": {
"days": {
"type": "integer",
"title": "Days",
"default": 30
},
"clip_id": {
"type": "string",
"title": "Clip Id",
"default": ""
}
}
}Use this when the user wants to remove a draft post: "scrap that draft", "delete the TikTok draft". post_id comes from get_post_stats with status "draft". Moves the draft to Deleted posts in the RipClip planner, where the user can restore it for 30 days. Not for: scheduled or posted posts (refused), anything on a social network (nothing there is touched), clips or source videos (it never deletes those), or editing a draft (update_draft). Free.
| Argument | Type | Description |
|---|---|---|
| post_id* | string |
{
"type": "object",
"title": "delete_draft_routeArguments",
"required": [
"post_id"
],
"properties": {
"post_id": {
"type": "string",
"title": "Post Id"
}
}
}Use this when the user wants to put one clip on their posting calendar: "schedule this clip for Friday", "post this to TikTok tonight", "put it on Shorts and Reels". RipClip saves a DRAFT; it never publishes or schedules on its own. platform: tiktok, youtube, instagram, facebook, threads or bluesky ("Shorts", "Reels", "IG" also work; X is coming soon). clip_id: from list_clips. caption: the post text, up to 2,200 characters. scheduled_at (optional): ISO 8601 with its offset, e.g. 2026-10-24T18:00:00-05:00. account_id (optional): from list_social_accounts. One call per platform. Returns review_url: tell the user to open it, check the draft and schedule it in RipClip. Not for: writing caption options first (write_captions), drafting a whole week in one call (plan_posts), changing an existing draft (update_draft), or publishing right now (no tool here publishes). Free.
| Argument | Type | Description |
|---|---|---|
| caption | string | |
| clip_id* | string | |
| platform* | string | |
| account_id | string | |
| scheduled_at | string |
{
"type": "object",
"title": "draft_postArguments",
"required": [
"clip_id",
"platform"
],
"properties": {
"caption": {
"type": "string",
"title": "Caption",
"default": ""
},
"clip_id": {
"type": "string",
"title": "Clip Id"
},
"platform": {
"type": "string",
"title": "Platform"
},
"account_id": {
"type": "string",
"title": "Account Id",
"default": ""
},
"scheduled_at": {
"type": "string",
"title": "Scheduled At",
"default": ""
}
}
}Use this when the user wants to know what the editor offers before changing a clip: "which caption styles are there", "what effects can I add", "any glitch transitions", "a sound effect for a big moment", "what fonts". kind is one of caption_templates, fonts, caption_animations, effects, transitions, filters (color looks), text_styles (titles, lower thirds, subscribe buttons), text_effects (neon, gradient, 3D), text_animations, stickers, sounds (sound effects), music (moods), formats, shapes (output shapes), templates (the user's saved styles and the starters, for "edit it like last time"). query narrows by a word from a name or group; limit up to 300 (default 100). The names and ids it returns are what style_clip, add_to_clip and edit_clip take; each item has a premium flag. Not for: changing a clip (style_clip, add_to_clip, edit_clip), the user's own clips (list_clips) or saved clipping presets (list_clipping_presets). Free and read only.
| Argument | Type | Description |
|---|---|---|
| kind* | string | |
| limit | integer | |
| query | string |
{
"type": "object",
"title": "edit_catalogArguments",
"required": [
"kind"
],
"properties": {
"kind": {
"type": "string",
"title": "Kind"
},
"limit": {
"type": "integer",
"title": "Limit",
"default": 100
},
"query": {
"type": "string",
"title": "Query",
"default": ""
}
}
}Use this when the user wants an everyday change to a clip they already have: "make the captions bigger and yellow", "cut the silences", "remove the ums", "add chill music", "put a title on it", "split my facecam", "trim the start". clip_id: from list_clips or a finished job. Set only what was asked: caption_size small / medium / large / x-large (or 10-100); caption_color, highlight_color (name or hex); caption_position auto / top / middle / bottom; caption_animation (bounce, pop, fade, none...); uppercase; remove_silences (pauses of min_pause_seconds or more, default 0.6); remove_filler_words; music (featured, phonk, hiphop, vlog, funny, chill, epic, upbeat, electronic, calm, acoustic, gaming, sad, or off) with music_volume quiet / normal / loud; hook_title (text at the top, or off); layout standard or facecam_split; auto_zoom; emojis; trim_start_seconds, trim_end_seconds. Not for: caption fonts or templates, filters, effects, transitions, speed or shape (style_clip), text, sticker or sound-effect overlays (add_to_clip), subtitles in another language (translate_captions), or cutting new clips from a long video (find_clips). The previous version stays in the editor's undo history; the clip's video is replaced by the new render. Costs no Horizon Units. Returns job_id; poll job_status, then preview_frame or get_download_link. Options the account can't use are refused by name before anything changes.
| Argument | Type | Description |
|---|---|---|
| music | string | |
| emojis | any | |
| layout | string | |
| clip_id* | string |
Use this when the user wants to know what clipping a video will cost before anything runs: "how much will it take to clip this stream", "what will that use". Returns the Horizon Units (HU) that find_clips, find_moments or clip_range would spend on project_id: the whole video, or only range_start to range_end in seconds (0 and 0 = the whole video), with the minutes it covers. Spends and reserves nothing; it saves a 24-hour retry record for request_key (any stable string). Show the number to the user and wait for their approval, then pass the approved number as max_hu to the tool that spends. Not for: starting the job (find_clips, find_moments, clip_range) or pricing an edit (edits cost no HU). Free.
| Argument | Type | Description |
|---|---|---|
| range_end | number | |
| project_id* | string | |
| range_start | number | |
| request_key* | string |
{
"type": "object",
"title": "estimate_huArguments",
"required": [
"project_id",
"request_key"
],
"properties": {
"range_end": {
"type": "number",
"title": "Range End",
"default": 0
},
"project_id": {
"type": "string",
"title": "Project Id"
},
"range_start": {
"type": "number",
"title": "Range Start",
"default": 0
},
"request_key": {
"type": "string",
"title": "Request Key"
}
}
}Use this when the user wants to know which clip to post first or why a clip was picked: "which clip should I post first", "why did you pick this one", "rank my clips". Pass clip_ids (from list_clips, up to 20) or the job_id of a finished clip job. Per clip: title, RipClip's score (0-1) and rank within its batch, the reasons it was picked, what is said in it (transcript), where it sits in the original video (seconds), its length, the post caption and hashtags if RipClip wrote them, and a one-line why_it_should_work built only from those facts. The score ranks clips against each other; it is not a forecast of views, so do not present it as one. Not for: listing clips (list_clips), watching them (show_clips) or results after posting (get_post_stats, why_it_worked). Free and read only.
| Argument | Type | Description |
|---|---|---|
| job_id | string | |
| clip_ids | any |
{
"type": "object",
"title": "explain_clipsArguments",
"properties": {
"job_id": {
"type": "string",
"title": "Job Id",
"default": ""
},
"clip_ids": {
"anyOf": [
{
"type": "array",
"items": {
"type": "string"
}
},
{
"type": "null"
}
],
"title": "Clip Ids",
"default": null
}
}
}Use this when the user wants the details of one project or clip that search found. id: the id from a search result, e.g. "projects:abc123" or "library:abc123". Returns the title, a url and the item's metadata (name or title, source project, start and end seconds, length). Not for: downloading the video (get_download_link), listing many items (list_projects, list_clips) or why a clip was picked (explain_clips). Free and read only.
| Argument | Type | Description |
|---|---|---|
| id* | string |
{
"type": "object",
"title": "fetchArguments",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"title": "Id"
}
}
}Use this when the user wants clips cut from a long video: "find the highlights in my stream", "turn my VOD into TikToks", "clip the funny moments". It picks the moments that stand on their own and cuts each into a vertical 9:16 clip framed on the speaker with word-by-word captions. project_id: from list_projects. count: how many clips (1-10, default 5). range_start / range_end: seconds, to clip only part of the video (0 = all). topic: words that must be spoken ("only the new game"; for a search by meaning use find_moments). min_seconds / max_seconds: clip length (default 20 to 45). clipping_preset: a saved look, id or name (list_clipping_presets); left empty, the user's default preset applies, "none" for RipClip's standard look. Switches, off unless asked: remove_filler_words, remove_pauses, remove_bad_takes, highlight_keywords, auto_emojis, auto_zoom, stock_broll, auto_transitions, hook_first_version (one extra clip opening on its strongest seconds), ai_titles (title, post caption, hashtags per clip). An option the account can't use is refused by name. Not for: one exact stretch (clip_range), changing a finished clip (edit_clip, style_clip) or posting (draft_post). Spends Horizon Units: call estimate_hu first, tell the user the number, run this only after they approve and pass it as max_hu (a higher cost is refused; a failed job gives them back). request_key: any stable string, reused only to retry. Returns job_id; poll job_status, then list_clips or explain_clips.
| Argument | Type | Description |
|---|---|---|
| count | integer | |
| topic | string | |
| max_hu* | number | |
| ai_titles | boolean |
Use this when the user wants to search a long video for a topic by meaning before clipping: "where do I talk about the new game", "find the funny bits", "when did chat go wild", "find the part about speedruns". project_id: from list_projects; topic: what to look for, in plain words. Returns job_id at once; when job_status says done, get_moments gives up to count matches (1-10, each min_seconds to max_seconds long, default 20 to 60) as time ranges with a quote. The user picks; clip_range cuts one, find_clips (with topic) cuts several. Not for: cutting clips straight away (find_clips, clip_range) or finding a video by its name (search). Spends Horizon Units, as much as reading the whole video: call estimate_hu for the same project first, show the number and pass the approved amount as max_hu (a higher cost is refused; a failed search gives it back). The same video analysed once is not charged again. request_key: any stable string, reused only to retry.
| Argument | Type | Description |
|---|---|---|
| count | integer | |
| topic* | string | |
| max_hu* | number | |
| project_id* | string | |
| max_seconds | number | |
| min_seconds | number | |
| request_key |
Use this when the user wants the picture framed differently in a clip or photo: "zoom in a bit", "show more of the left", "mirror it", "show the whole picture", "a black background, not the blur", "make it 1200 by 628". clip_id: from list_clips (kind photo for photos). zoom 1-4 (1 = no zoom); position_x and position_y 0-100, where the frame sits over the picture (0 = left / top, 50 = center); flip_horizontal, flip_vertical; fit: fill (fills the frame, edges cropped), whole (the whole picture with background around it) or a band shape 4:3, 1:1, 16:9, 9:16; background: blur or a color name or hex; blur_amount 1-120; custom_width with custom_height (240-4096 px) for a custom size. Not for: the standard shapes 9:16, 1:1, 4:5, 16:9 (style_clip output_shape), light and color (adjust_look) or a facecam split (edit_clip). Rotation is done in the RipClip editor. Saved as an undoable version (undo_edit). Costs no Horizon Units. Returns job_id: poll job_status, then preview_frame.
| Argument | Type | Description |
|---|---|---|
| fit | string | |
| zoom | any | |
| clip_id* | string | |
| background | string | |
| position_x | any | |
| position_y | any | |
| blur_amount | any |
Use this when the user wants follower numbers: "how many followers did I gain this week", "how is my TikTok account growing". Per connected account: the latest followers, following, likes and videos, the change over 7 days and a daily history, as of the last read (as_of). RipClip reads these for TikTok accounts only for now; other platforms say so. Takes no parameters. Not for: numbers of individual posts (get_post_stats) or platform against platform (compare_platforms). Free and read only.
No arguments.
{
"type": "object",
"title": "get_account_statsArguments",
"properties": {}
}Use this when the user wants the video file of a clip, or to open it in the full editor: "send me the clip", "download it", "I want to post it myself", "let me edit this one". Returns download_url, a private link that works for five minutes (call again for a fresh one; keep it private), and editor_url, which opens the clip in RipClip's editor to change the cut, captions, framing, effects or music. clip_id comes from list_clips or a finished job; for a saved photo the link gives the picture. Not for: watching clips in the chat (show_clips), a still picture of one moment (preview_frame), or posting it (draft_post). Free; it only makes a short-lived link and changes nothing in the account.
| Argument | Type | Description |
|---|---|---|
| clip_id* | string |
{
"type": "object",
"title": "get_download_linkArguments",
"required": [
"clip_id"
],
"properties": {
"clip_id": {
"type": "string",
"title": "Clip Id"
}
}
}Use this when the user wants the results of a find_moments search: "what did it find", "show me the matches". Pass the job_id find_moments returned. Returns each match with start and end (seconds and h:mm:ss), a quote of what is said there and how well it matches the topic; while the search is still running it says so, so call again in a minute. Not for: starting a search (find_moments) or cutting a clip (clip_range). Free and read only.
| Argument | Type | Description |
|---|---|---|
| job_id* | string |
{
"type": "object",
"title": "get_momentsArguments",
"required": [
"job_id"
],
"properties": {
"job_id": {
"type": "string",
"title": "Job Id"
}
}
}Use this when the user wants the numbers for their posts: "how are my clips doing", "which TikTok took off", "how many views did my Short get", "show my scheduled posts". Returns per post the platform, status, post URL, caption, clip title, the latest views, likes, comments, shares and saves the platform sent (null = the platform sends no such count) and views at 1 hour, 24 hours and 7 days. platform: tiktok, youtube, instagram, ... or all (default). status filters draft, scheduled, posted or failed (empty = all; status "draft" lists the post_id that update_draft and delete_draft take). limit 1-50, newest first. Covers posts RipClip published or planned. Not for: a recap of the week (weekly_report), platform against platform (compare_platforms), what is growing fast (whats_taking_off) or follower counts (get_account_stats). Free and read only.
| Argument | Type | Description |
|---|---|---|
| limit | integer | |
| status | string | |
| platform | string |
{
"type": "object",
"title": "get_post_statsArguments",
"properties": {
"limit": {
"type": "integer",
"title": "Limit",
"default": 20
},
"status": {
"type": "string",
"title": "Status",
"default": ""
},
"platform": {
"type": "string",
"title": "Platform",
"default": "all"
}
}
}Use this when the user wants a photo or picture brought into RipClip to edit it: "brighten this photo", "edit my picture", "fix the colors on this image". url: a direct https link to a .jpg, .png or .webp picture, or a Google Drive, Dropbox or OneDrive share link open to anyone with the link. file: a picture the user attached, where the assistant passes attached files to tools. Up to 24 MB; kept at its own size. Returns job_id; poll job_status, whose clip_ids then holds the photo's id for adjust_look, frame_clip, style_clip, add_to_clip, preview_frame and get_download_link (the edited picture). Not for: videos (import_video), photos already in RipClip (list_clips kind photo), or changing what is in the picture, such as removing a person (not done by RipClip). Free.
| Argument | Type | Description |
|---|---|---|
| url | string | |
| file | any |
{
"type": "object",
"$defs": {
"PhotoFile": {
"type": "object",
"title": "PhotoFile",
"required": [
"download_url",
"file_id"
],
"properties": {
"file_id": {
"type": "string",
"title": "File Id"
},
"file_name": {
"type": "string",
"title": "File Name",
"default": ""
},
"mime_type": {
"type": "string",
"title": "Mime Type",
"default": ""
},
"download_url": {
"type": "string",
"title": "Download Url"
}
},
"description": "a file the user attached in ChatGPT (Apps SDK openai/fileParams: download_url and file_id always come)"
}
},
"title": "import_photoArguments",
"properties": {
"url": {
"type": "string",
"title": "Url",
"default": ""
},
"file": {
"$ref": "#/$defs/PhotoFile",
"default": null
}
}
}Use this when the user wants to bring a long video into RipClip so it can be clipped: "clip this Twitch VOD", "turn my Kick stream into shorts", "use this podcast episode", "clip my last stream". Give url: a Kick or Twitch past broadcast (VOD), highlight or clip link, an Apple Podcasts episode, a Google Drive, Dropbox or OneDrive share link, or a direct link to a video file. Or give channel (the streamer's name) with platform "kick" or "twitch", or a channel page link such as kick.com/name: that imports the channel's newest past broadcast. rights must be true only after the user confirms they own the video or have permission to use it. request_key is any stable string; reuse it only to retry this exact import. Returns job_id at once; poll job_status, which gives the project_id when it is done. Not for: YouTube links (not supported: the user uploads the file in RipClip), a stream that is still live (import it after it ends), or cutting clips (find_clips) and posting (draft_post). Free: importing spends no Horizon Units. Next: estimate_hu, then find_clips.
| Argument | Type | Description |
|---|---|---|
| url | string | |
| rights | boolean | |
| channel | string | |
| platform | string | |
| request_key* | string |
{
"type": "object",
"title": "import_videoArguments",
"required": [
"request_key"
],
"properties": {
"url": {
"type": "string",
"title": "Url",
"default": ""
},
"rights": {
"type": "boolean",
"title": "Rights",
"default": false
},
"channel": {
"type": "string",
"title": "Channel",
"default": ""
},
"platform": {
"type": "string",
"title": "Platform",
"default": ""
},
"request_key": {
"type": "string",
"title": "Request Key"
}
}
}Use this when the user wants to know whether something RipClip is working on has finished: "is my import done", "are my clips ready", "did the edit render". Pass the job_id that import_video, find_clips, find_moments, clip_range, edit_clip, style_clip, add_to_clip or translate_captions returned. Returns status, progress and any error; when done it also says what was made: the project_id of an import, the clip_ids of a clip job or edit. Long videos take minutes: call again after a short wait. Not for: cancelling or changing a job (not possible from here) or reading a find_moments result (get_moments). Free and read only. Next: estimate_hu after an import; list_clips, explain_clips or preview_frame after clips or an edit.
| Argument | Type | Description |
|---|---|---|
| job_id* | string |
{
"type": "object",
"title": "job_statusArguments",
"required": [
"job_id"
],
"properties": {
"job_id": {
"type": "string",
"title": "Job Id"
}
}
}Use this when the user wants to clip in their saved style: "use my usual style", "what presets do I have". Returns each saved clipping preset with its id, name, caption look, logo, music and which switches are on (such as remove pauses or auto emojis). Pass an id or name to find_clips or clip_range as clipping_preset. Not for: browsing the editor's caption templates and fonts (edit_catalog) or restyling a finished clip (style_clip). Free and read only.
No arguments.
{
"type": "object",
"title": "list_clipping_presetsArguments",
"properties": {}
}Use this when the user wants to see their finished clips or saved photos, or needs a clip_id: "show me my clips", "what shorts did you make", "find my latest highlight", "my photos". Returns up to 50 per page (limit 1-50; pass next_cursor as cursor for the next page) with each item's id, title, kind, source project and start/end seconds in the original video. kind: clips (default), photos, or all. Items past their retention date are not listed. A clip id works with get_download_link, edit_clip, style_clip, explain_clips, preview_frame and draft_post; a photo id with adjust_look, frame_clip, preview_frame and get_download_link. Not for: the long source videos (list_projects), a gallery with video players (show_clips), or why a clip was picked (explain_clips). Free and read only.
| Argument | Type | Description |
|---|---|---|
| kind | string | |
| limit | integer | |
| cursor | string |
{
"type": "object",
"title": "list_clipsArguments",
"properties": {
"kind": {
"type": "string",
"title": "Kind",
"default": "clips"
},
"limit": {
"type": "integer",
"title": "Limit",
"default": 20
},
"cursor": {
"type": "string",
"title": "Cursor",
"default": ""
}
}
}Use this when the user wants to browse the Library, the rendered video files saved in their RipClip account: "what's in my Library", "list my exports". Returns up to 50 per page (limit 1-50; pass next_cursor as cursor for the next page) with each item's id, title, source project and start/end seconds. Not for: just the clips a clip job made (list_clips is the usual call), the long source videos (list_projects), or finding an item by words in its title (search). Free and read only; it renders and deletes nothing.
| Argument | Type | Description |
|---|---|---|
| limit | integer | |
| cursor | string |
{
"type": "object",
"title": "list_libraryArguments",
"properties": {
"limit": {
"type": "integer",
"title": "Limit",
"default": 20
},
"cursor": {
"type": "string",
"title": "Cursor",
"default": ""
}
}
}Use this when the user wants to see the long videos already in RipClip (Twitch or Kick stream VODs, podcast episodes, uploads) or needs a project_id: "what videos do I have", "which stream did I import". Returns up to 50 per page (limit 1-50; pass next_cursor as cursor for the next page) with each project's id and name. The id is what estimate_hu, find_clips, find_moments and clip_range take as project_id. Not for: finished clips (list_clips), rendered files in the Library (list_library), or searching inside a video for a topic (find_moments). Free and read only; private file paths are never returned.
| Argument | Type | Description |
|---|---|---|
| limit | integer | |
| cursor | string |
{
"type": "object",
"title": "list_projectsArguments",
"properties": {
"limit": {
"type": "integer",
"title": "Limit",
"default": 20
},
"cursor": {
"type": "string",
"title": "Cursor",
"default": ""
}
}
}Use this when the user wants to know which social accounts are connected to RipClip (TikTok, YouTube, Instagram, Facebook, Threads, Bluesky; X is coming soon) or needs an account_id: "where can I post", "which accounts are linked". Returns each account's account_id, platform, name, username and status. draft_post, plan_posts and update_draft take account_id when the user has several accounts on one platform. The note says which platforms RipClip can post to yet (posting switches on platform by platform as each platform approves RipClip); connect_more is the page where the user connects another account, which this tool cannot do. Not for: post numbers (get_post_stats) or follower counts (get_account_stats). Free and read only.
No arguments.
{
"type": "object",
"title": "list_social_accountsArguments",
"properties": {}
}Use this when the user wants the sound of a clip changed: "mute the original audio", "turn my voice up", "remove the background noise", "even out the volume", "make me sound like a robot", "the music is too loud". clip_id: from list_clips. original_volume 0-1000 (percent, 100 = as recorded); mute_original; denoise 0-100 (background noise removal); voice_boost 0-100 (clearer speech); normalize (even loudness); voice_effect: a voice filter by name (robot, deep, chipmunk, echo, telephone, megaphone, radio, cave...) or off; music_volume: quiet, normal, loud or a percent 0-400 (100 = the usual level under speech); music_ducking (the music dips while someone talks); ducking_db 0-30 (how far it dips). Not for: adding or changing the song (edit_clip music) or sound effects at a moment (add_to_clip). Saved as an undoable version (undo_edit). Costs no Horizon Units. Returns job_id: poll job_status, then get_download_link. Options the account can't use are refused by name before anything changes.
| Argument | Type | Description |
|---|---|---|
| clip_id* | string | |
| denoise | any | |
| normalize | any | |
| ducking_db | any | |
| voice_boost | any | |
| music_volume | string | |
| voice_effect | string |
Use this when the user wants a batch of posts planned in one go: "plan my week", "fill my content calendar", "draft my top 3 clips for TikTok and YouTube Shorts at my best times". Takes the highest-scoring clips not yet posted (RipClip's own clip score) or the clip_ids given, and saves one DRAFT per clip and platform at the user's best times to post (evening slots until there is posting data; the answer says which), each with the clip's post caption and hashtags. platforms: tiktok, youtube, instagram, facebook, threads, bluesky (Shorts, Reels, IG work too; X is coming soon). count 1-10 clips. timezone: IANA name, e.g. America/Chicago. Not for: one post with a caption the user chose (draft_post), caption options (write_captions), changing a draft (update_draft) or publishing (no tool here publishes). Drafts only: the user reviews and schedules each in RipClip. Free. Next: show_drafts displays the calendar.
| Argument | Type | Description |
|---|---|---|
| count | integer | |
| clip_ids | any | |
| timezone | string | |
| platforms* | array |
{
"type": "object",
"title": "plan_postsArguments",
"required": [
"platforms"
],
"properties": {
"count": {
"type": "integer",
"title": "Count",
"default": 3
},
"clip_ids": {
"anyOf": [
{
"type": "array",
"items": {
"type": "string"
}
},
{
"type": "null"
}
],
"title": "Clip Ids",
"default": null
},
"timezone": {
"type": "string",
"title": "Timezone",
"default": "UTC"
},
"platforms": {
"type": "array",
"items": {
"type": "string"
},
"title": "Platforms"
}
}
}Use this when the user wants to see how a clip looks at one moment: "show me the captions", "how does the title look", "what did that effect do". Returns a still image of clip_id (from list_clips) at at_seconds (seconds into the finished clip, default 1; a photo shows whole), as last rendered with its captions and edits. Right after style_clip, add_to_clip, translate_captions or edit_clip, wait for job_status to say done, or the picture is the previous version (the answer says so). Not for: playing the clip (show_clips), the video file (get_download_link) or changing anything. Free and read only.
| Argument | Type | Description |
|---|---|---|
| clip_id* | string | |
| at_seconds | number |
{
"type": "object",
"title": "preview_frameArguments",
"required": [
"clip_id"
],
"properties": {
"clip_id": {
"type": "string",
"title": "Clip Id"
},
"at_seconds": {
"type": "number",
"title": "At Seconds",
"default": 1
}
}
}Use this when the user wants the timing of part of a clip changed: "slow down the part at 0:12", "speed up the boring middle", "freeze on the reaction for 2 seconds", "cut out 0:20 to 0:25". clip_id: from list_clips. Times are seconds of the clip as it plays (0:12 = 12). One change per call: speed 0.25-4 (0.5 = half speed) for start_seconds to end_seconds (end 0 = the clip's end); freeze_seconds 0.1-10 holds the frame at start_seconds; remove=true cuts start_seconds to end_seconds out. Captions follow the footage. Not for: the whole clip a little faster or slower (style_clip speed 0.75-1.5), silences and filler words (edit_clip) or trimming the start and end (edit_clip). Saved as an undoable version (undo_edit). Costs no Horizon Units. Returns job_id: poll job_status, then preview_frame.
| Argument | Type | Description |
|---|---|---|
| speed | any | |
| remove | boolean | |
| clip_id* | string | |
| end_seconds | number | |
| start_seconds | number | |
| freeze_seconds | any |
{
"type": "object",
"title": "retime_clipArguments",
"required": [
"clip_id"
],
"properties": {
"speed": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"title": "Speed",
"default": null
},
"remove": {
"type": "boolean",
"title": "Remove",
"default": false
},
"clip_id": {
"type": "string",
"title": "Clip Id"
},
"end_seconds": {
"type": "number",
"title": "End Seconds",
"default": 0
},
"start_seconds": {
"type": "number",
"title": "Start Seconds",
"default": 0
},
"freeze_seconds": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"title": "Freeze Seconds",
"default": null
}
}
}Use this when the user wants a clip's look kept to use again: "save this style", "remember this edit", "make this my template", "clip my next streams like this". Saves the clip's whole edit (format and layout, captions, colour, effects, transitions, music, text and sounds) as one of the user's templates, also shown in RipClip under Templates; a clip of any length works. clip_id: from list_clips. name: what the user calls it (up to 60 characters). category: hype, story, montage, podcast or another group that edit_catalog(kind="templates") shows. description: an optional line about it. for_new_clips: true when the user wants future clips to get this look ("always", "from now on", "my next VODs"): it also becomes their default clipping preset (format, captions, headline look, logo, music), applied to every new clip find_clips and clip_range make. Ask if unclear. look_from (no clip_id needed): a TikTok or YouTube link to someone else's clip whose look the user wants ("make my clips look like this"): its captions and layout are read and saved as a clipping preset (Premium). Not for: putting a saved style on a clip (style_clip with template) or a single caption style (style_clip). Free: no Horizon Units. Next: style_clip(template=...) on other clips.
| Argument | Type | Description |
|---|---|---|
| name* | string | |
| clip_id | string | |
| category | string | |
| look_from | string | |
| description | string | |
Use this when the user wants to find a video or clip in their RipClip account by a word in its name: "find my tournament stream", "which clip is called the giveaway". query: 1-512 characters, every word must match. Searches project names and Library clip titles and details (not the spoken words inside a video) and returns up to 20 matches with id, title and url; pass an id to fetch for its details. Not for: searching what is said in a video (find_moments), browsing everything (list_projects, list_clips, list_library) or searching the web. Free and read only.
| Argument | Type | Description |
|---|---|---|
| query* | string |
{
"type": "object",
"title": "searchArguments",
"required": [
"query"
],
"properties": {
"query": {
"type": "string",
"title": "Query"
}
}
}Use this when the user wants to watch their clips right in the chat: "show me my clips", "let me watch them", or after find_clips finishes (pass its job_id). Shows a gallery with, for each clip, a video player, its title, length, score and why it was picked, plus buttons to edit it or draft it for TikTok. clip_ids shows those clips; with neither clip_ids nor job_id it shows the newest `limit` clips (1-10, default 6). Video links last 5 minutes: call again for fresh ones. Not for: a plain text list (list_clips), a download link (get_download_link) or one still picture (preview_frame). Free and read only.
| Argument | Type | Description |
|---|---|---|
| limit | integer | |
| job_id | string | |
| clip_ids | any |
{
"type": "object",
"title": "show_clipsArguments",
"properties": {
"limit": {
"type": "integer",
"title": "Limit",
"default": 6
},
"job_id": {
"type": "string",
"title": "Job Id",
"default": ""
},
"clip_ids": {
"anyOf": [
{
"type": "array",
"items": {
"type": "string"
}
},
{
"type": "null"
}
],
"title": "Clip Ids",
"default": null
}
}
}Use this when the user wants to see their posting calendar: "what's on my calendar", "show my drafts", "what's scheduled this week", or after plan_posts. Shows drafts and scheduled posts for the next `days` days (1-31, default 7) in their IANA timezone (e.g. America/Chicago): each post's time, platform, clip and status, and drafts with no time yet. Each post opens in RipClip to review and schedule. Not for: creating drafts (plan_posts, draft_post) or numbers of posted videos (get_post_stats, show_report). Free and read only.
| Argument | Type | Description |
|---|---|---|
| days | integer | |
| timezone | string |
{
"type": "object",
"title": "show_draftsArguments",
"properties": {
"days": {
"type": "integer",
"title": "Days",
"default": 7
},
"timezone": {
"type": "string",
"title": "Timezone",
"default": "UTC"
}
}
}Use this when the user wants to see how their week went as a chart in the chat: "show me my analytics", "chart my views". Shows views by day and by platform for the last `days` days (default 7) against the period before, the top posts, the best time to post and the clips to post next, with a button to plan them. timezone: IANA name, e.g. America/Chicago. The same numbers as weekly_report. Not for: a written answer (weekly_report) or a table of individual posts (get_post_stats). Free and read only.
| Argument | Type | Description |
|---|---|---|
| days | integer | |
| timezone | string |
{
"type": "object",
"title": "show_reportArguments",
"properties": {
"days": {
"type": "integer",
"title": "Days",
"default": 7
},
"timezone": {
"type": "string",
"title": "Timezone",
"default": "UTC"
}
}
}Use this when the user wants to change how a clip looks, at editor depth: "make the captions look like a gaming channel's", "give it a cinematic color grade", "add a glitch at the drop", "make it square for Instagram", "speed it up a bit", "fade it out". clip_id: from list_clips. Set only what was asked; names from edit_catalog. Captions: caption_template, font, caption_stroke_width 0-20, caption_stroke_color, caption_shadow, caption_box off/word/line. Color: filter_look (or off), filter_strength 0-100, brightness and contrast 0.5-1.5, saturation 0-2, warmth -1 to 1. Motion: effect (or off), whole clip or effect_start_seconds to effect_end_seconds (0 = end), effect_strength 0-1; transition at inner cuts, transition_ms 60-2000; speed 0.75-1.5. Frame: output_shape 9:16/4:5/1:1/16:9, progress_bar, fade_in_seconds, fade_out_seconds 0-3. "Like last time": template (edit_catalog kind templates), alone; template_parts (default all). "My usual style on these clips": clipping_preset (list_clipping_presets), alone, on clip_id and also_clip_ids (49 more); template_parts: captions, layout, headline, logo, music, overlays. Words, trim and crop stay. Not for: caption size or colors, music, silences, hook title (edit_clip), text, stickers, sounds (add_to_clip), translation (translate_captions). An undoable version; the render replaces the clip. Costs no Horizon Units. Returns job_id: poll job_status, then preview_frame. Options the account lacks are refused by name first.
| Argument | Type | Description |
|---|---|---|
| font | string | |
| speed | any | |
| effect | string | |
| warmth |
Use this when the user wants subtitles in another language on a clip: "add Spanish subtitles", "translate it to Japanese", "put the captions in Portuguese only". clip_id: from list_clips. language: a name or code (Spanish, es, Japanese, ja, Portuguese, Hindi, Arabic...) or off to remove the translation. mode: bilingual (default) keeps the spoken line with the translation under it; replace shows the translation only. Each caption line is translated once and keeps its timing, using RipClip's own model, so a long clip takes a minute. Not for: dubbing or voiceover (not done through assistants), how the captions look (style_clip, edit_clip) or the original-language captions (clips come captioned). Saved as an undoable version; the clip's video is replaced by the new render. Costs no Horizon Units. Returns job_id: poll job_status, then preview_frame.
| Argument | Type | Description |
|---|---|---|
| mode | string | |
| clip_id* | string | |
| language* | string |
{
"type": "object",
"title": "translate_captionsArguments",
"required": [
"clip_id",
"language"
],
"properties": {
"mode": {
"type": "string",
"title": "Mode",
"default": "bilingual"
},
"clip_id": {
"type": "string",
"title": "Clip Id"
},
"language": {
"type": "string",
"title": "Language"
}
}
}Use this when the user wants the last change to a clip or photo taken back: "undo that", "put it back", "I liked it better before", "go back one step". clip_id: from list_clips. Restores the version saved before the last edit and renders it again; calling again steps further back (RipClip keeps the last 20 saves for 7 days). Not for: deleting a clip (done in RipClip) or a single setting (call the edit tool again with the old value). Costs no Horizon Units. Returns job_id: poll job_status, then preview_frame.
| Argument | Type | Description |
|---|---|---|
| clip_id* | string |
{
"type": "object",
"title": "undo_editArguments",
"required": [
"clip_id"
],
"properties": {
"clip_id": {
"type": "string",
"title": "Clip Id"
}
}
}Use this when the user wants to change a post that is still a draft: "make the caption shorter", "move it to Friday 6pm", "turn comments on", "switch it to YouTube". post_id comes from get_post_stats with status "draft". Set only what was asked: caption (replaces the old one; for YouTube its first line is the title), scheduled_at (ISO 8601 with its offset) or clear_time, platform, account_id (from list_social_accounts). privacy: TikTok public, followers, friends or private; YouTube public, unlisted or private. TikTok post-screen choices, all off until the user says: allow_comment, allow_duet, allow_stitch, disclose (then brand_organic = promotes their own business, brand_content = a paid partnership), aigc (the label for a video made with AI), mode direct or inbox (finish in the TikTok app). Not for: scheduled or posted posts (refused), new drafts (draft_post, plan_posts) or removing a draft (delete_draft). The draft stays a draft and is never posted automatically; the user schedules it in RipClip. Free.
| Argument | Type | Description |
|---|---|---|
| aigc | any | |
| mode | string | |
| caption | any | |
| post_id* | string | |
| privacy | string | |
| disclose | any |
Use this when the user wants a recap of how their posts did and what to post next: "how did last week go", "give me my analytics", "what should I post next". For the last `days` days (default 7): posts and views by platform, the top posts by views at 24 hours, the views of the period before for comparison, the best time to post, and post_next: top clips never posted or drafted, each with the platform it earned most on. timezone: IANA name, e.g. America/Chicago. Covers posts RipClip published or planned. Not for: one post's numbers (get_post_stats), platform against platform (compare_platforms), a chart in the chat (show_report) or the reasons behind the results (why_it_worked). Free and read only. Next: plan_posts drafts the post_next clips.
| Argument | Type | Description |
|---|---|---|
| days | integer | |
| timezone | string |
{
"type": "object",
"title": "weekly_reportArguments",
"properties": {
"days": {
"type": "integer",
"title": "Days",
"default": 7
},
"timezone": {
"type": "string",
"title": "Timezone",
"default": "UTC"
}
}
}Use this when the user wants to know if a post is blowing up: "is anything taking off", "did my last clip pop", "is my TikTok going viral". Lists posts less than 48 hours old with at least 100 views and at least twice the views the user's other posts had at the same age (the rule behind the Taking off badge in RipClip), with the numbers. An empty list is a normal answer. Takes no parameters. Not for: a recap (weekly_report), one post's numbers (get_post_stats) or the reasons posts worked (why_it_worked). Free and read only.
No arguments.
{
"type": "object",
"title": "whats_taking_off_routeArguments",
"properties": {}
}Use this when the user wants to know what their better posts have in common: "why did that one do well", "what should I do more of", "what makes my clips work". Looks at the user's own posts of the last `days` (default 90) that have a day of views and compares views at 24 hours by clip length, caption length, platform, weekday, time of day (in the IANA timezone given, e.g. America/Chicago) and a title set on the post. Returns the biggest gaps with how many posts are in each group and how likely each gap is to be luck, plus a plain warning when there are too few posts (under 10 it compares nothing). These are differences in the data, never proof of a cause: say so. Not for: predicting views of a new clip, posting hours (best_time_to_post) or a recap (weekly_report). Free and read only.
| Argument | Type | Description |
|---|---|---|
| days | integer | |
| timezone | string |
{
"type": "object",
"title": "why_it_worked_routeArguments",
"properties": {
"days": {
"type": "integer",
"title": "Days",
"default": 90
},
"timezone": {
"type": "string",
"title": "Timezone",
"default": "UTC"
}
}
}Use this when the user wants the text for a post written: "write my captions", "caption this for TikTok and Shorts", "give me a YouTube title and hashtags". clip_id: from list_clips. platforms: up to 5 of tiktok, youtube, instagram, facebook, threads, x, bluesky (Shorts, Reels, IG work too). tone: optional ("funny", "hype", "calm"). RipClip's caption writer works from the clip (its title, post text and hashtags), then each caption is cut to the platform's rules: TikTok 2,200 characters, Instagram 2,200 and at most 5 hashtags, YouTube a title of 100 characters (the first line) plus a description under 5,000 bytes, Threads 500, X 280. Not for: the subtitles shown inside the video (edit_clip, style_clip, translate_captions) or saving a post (draft_post). Saves nothing: show the captions, then draft_post saves the chosen one as a draft or update_draft changes an existing draft. If the writer is unavailable it says so. Free.
| Argument | Type | Description |
|---|---|---|
| tone | string | |
| clip_id* | string | |
| platforms* | array |
{
"type": "object",
"title": "write_captions_routeArguments",
"required": [
"clip_id",
"platforms"
],
"properties": {
"tone": {
"type": "string",
"title": "Tone",
"default": ""
},
"clip_id": {
"type": "string",
"title": "Clip Id"
},
"platforms": {
"type": "array",
"items": {
"type": "string"
},
"title": "Platforms"
}
}
}We read every tool's name, description and inputs the way the model will, looking for instructions hidden from you. A clean result means no warning signs, not a guarantee. Scanned Nov 9, 2026.
| reset |
| boolean |
| blacks | any |
| dehaze | any |
| warmth | any |
| whites | any |
| clarity | any |
| clip_id* | string |
| shadows | any |
| sharpen | any |
| contrast | any |
| exposure | any |
| vibrance | any |
| vignette | any |
| color_hue | any |
| brightness | any |
| highlights | any |
| saturation | any |
| end_seconds | number |
| start_seconds | number |
| color_lightness | any |
| color_saturation | any |
{
"type": "object",
"title": "adjust_lookArguments",
"required": [
"clip_id"
],
"properties": {
"hue": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"title": "Hue",
"default": null
},
"fade": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"title": "Fade",
"default": null
},
"tint": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"title": "Tint",
"default": null
},
"color": {
"type": "string",
"title": "Color",
"default": ""
},
"grain": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"title": "Grain",
"default": null
},
"reset": {
"type": "boolean",
"title": "Reset",
"default": false
},
"blacks": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"title": "Blacks",
"default": null
},
"dehaze": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"title": "Dehaze",
"default": null
},
"warmth": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"title": "Warmth",
"default": null
},
"whites": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"title": "Whites",
"default": null
},
"clarity": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"title": "Clarity",
"default": null
},
"clip_id": {
"type": "string",
"title": "Clip Id"
},
"shadows": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"title": "Shadows",
"default": null
},
"sharpen": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"title": "Sharpen",
"default": null
},
"contrast": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"title": "Contrast",
"default": null
},
"exposure": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"title": "Exposure",
"default": null
},
"vibrance": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"title": "Vibrance",
"default": null
},
"vignette": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"title": "Vignette",
"default": null
},
"color_hue": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"title": "Color Hue",
"default": null
},
"brightness": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"title": "Brightness",
"default": null
},
"highlights": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"title": "Highlights",
"default": null
},
"saturation": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"title": "Saturation",
"default": null
},
"end_seconds": {
"type": "number",
"title": "End Seconds",
"default": 0
},
"start_seconds": {
"type": "number",
"title": "Start Seconds",
"default": 0
},
"color_lightness": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"title": "Color Lightness",
"default": null
},
"color_saturation": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"title": "Color Saturation",
"default": null
}
}
}{
"type": "object",
"title": "clip_rangeArguments",
"required": [
"project_id",
"start_seconds",
"end_seconds",
"max_hu",
"request_key"
],
"properties": {
"max_hu": {
"type": "number",
"title": "Max Hu"
},
"project_id": {
"type": "string",
"title": "Project Id"
},
"end_seconds": {
"type": "number",
"title": "End Seconds"
},
"request_key": {
"type": "string",
"title": "Request Key"
},
"start_seconds": {
"type": "number",
"title": "Start Seconds"
},
"clipping_preset": {
"type": "string",
"title": "Clipping Preset",
"default": ""
}
}
}| auto_zoom | any |
| uppercase | any |
| hook_title | string |
| caption_size | string |
| music_volume | string |
| caption_color | string |
| highlight_color | string |
| remove_silences | boolean |
| caption_position | string |
| trim_end_seconds | number |
| caption_animation | string |
| min_pause_seconds | number |
| trim_start_seconds | number |
| remove_filler_words | boolean |
{
"type": "object",
"title": "edit_clipArguments",
"required": [
"clip_id"
],
"properties": {
"music": {
"type": "string",
"title": "Music",
"default": ""
},
"emojis": {
"anyOf": [
{
"type": "boolean"
},
{
"type": "null"
}
],
"title": "Emojis",
"default": null
},
"layout": {
"type": "string",
"title": "Layout",
"default": ""
},
"clip_id": {
"type": "string",
"title": "Clip Id"
},
"auto_zoom": {
"anyOf": [
{
"type": "boolean"
},
{
"type": "null"
}
],
"title": "Auto Zoom",
"default": null
},
"uppercase": {
"anyOf": [
{
"type": "boolean"
},
{
"type": "null"
}
],
"title": "Uppercase",
"default": null
},
"hook_title": {
"type": "string",
"title": "Hook Title",
"default": ""
},
"caption_size": {
"type": "string",
"title": "Caption Size",
"default": ""
},
"music_volume": {
"type": "string",
"title": "Music Volume",
"default": ""
},
"caption_color": {
"type": "string",
"title": "Caption Color",
"default": ""
},
"highlight_color": {
"type": "string",
"title": "Highlight Color",
"default": ""
},
"remove_silences": {
"type": "boolean",
"title": "Remove Silences",
"default": false
},
"caption_position": {
"type": "string",
"title": "Caption Position",
"default": ""
},
"trim_end_seconds": {
"type": "number",
"title": "Trim End Seconds",
"default": 0
},
"caption_animation": {
"type": "string",
"title": "Caption Animation",
"default": ""
},
"min_pause_seconds": {
"type": "number",
"title": "Min Pause Seconds",
"default": 0.6
},
"trim_start_seconds": {
"type": "number",
"title": "Trim Start Seconds",
"default": 0
},
"remove_filler_words": {
"type": "boolean",
"title": "Remove Filler Words",
"default": false
}
}
}| auto_zoom | boolean |
| range_end | number |
| project_id* | string |
| auto_emojis | boolean |
| max_seconds | number |
| min_seconds | number |
| range_start | number |
| request_key* | string |
| stock_broll | boolean |
| remove_pauses | boolean |
| clipping_preset | string |
| auto_transitions | boolean |
| remove_bad_takes | boolean |
| highlight_keywords | boolean |
| hook_first_version | boolean |
| remove_filler_words | boolean |
{
"type": "object",
"title": "find_clipsArguments",
"required": [
"project_id",
"max_hu",
"request_key"
],
"properties": {
"count": {
"type": "integer",
"title": "Count",
"default": 5
},
"topic": {
"type": "string",
"title": "Topic",
"default": ""
},
"max_hu": {
"type": "number",
"title": "Max Hu"
},
"ai_titles": {
"type": "boolean",
"title": "Ai Titles",
"default": false
},
"auto_zoom": {
"type": "boolean",
"title": "Auto Zoom",
"default": false
},
"range_end": {
"type": "number",
"title": "Range End",
"default": 0
},
"project_id": {
"type": "string",
"title": "Project Id"
},
"auto_emojis": {
"type": "boolean",
"title": "Auto Emojis",
"default": false
},
"max_seconds": {
"type": "number",
"title": "Max Seconds",
"default": 0
},
"min_seconds": {
"type": "number",
"title": "Min Seconds",
"default": 0
},
"range_start": {
"type": "number",
"title": "Range Start",
"default": 0
},
"request_key": {
"type": "string",
"title": "Request Key"
},
"stock_broll": {
"type": "boolean",
"title": "Stock Broll",
"default": false
},
"remove_pauses": {
"type": "boolean",
"title": "Remove Pauses",
"default": false
},
"clipping_preset": {
"type": "string",
"title": "Clipping Preset",
"default": ""
},
"auto_transitions": {
"type": "boolean",
"title": "Auto Transitions",
"default": false
},
"remove_bad_takes": {
"type": "boolean",
"title": "Remove Bad Takes",
"default": false
},
"highlight_keywords": {
"type": "boolean",
"title": "Highlight Keywords",
"default": false
},
"hook_first_version": {
"type": "boolean",
"title": "Hook First Version",
"default": false
},
"remove_filler_words": {
"type": "boolean",
"title": "Remove Filler Words",
"default": false
}
}
}| string |
{
"type": "object",
"title": "find_momentsArguments",
"required": [
"project_id",
"topic",
"max_hu",
"request_key"
],
"properties": {
"count": {
"type": "integer",
"title": "Count",
"default": 5
},
"topic": {
"type": "string",
"title": "Topic"
},
"max_hu": {
"type": "number",
"title": "Max Hu"
},
"project_id": {
"type": "string",
"title": "Project Id"
},
"max_seconds": {
"type": "number",
"title": "Max Seconds",
"default": 60
},
"min_seconds": {
"type": "number",
"title": "Min Seconds",
"default": 20
},
"request_key": {
"type": "string",
"title": "Request Key"
}
}
}| custom_width | any |
| custom_height | any |
| flip_vertical | any |
| flip_horizontal | any |
{
"type": "object",
"title": "frame_clipArguments",
"required": [
"clip_id"
],
"properties": {
"fit": {
"type": "string",
"title": "Fit",
"default": ""
},
"zoom": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"title": "Zoom",
"default": null
},
"clip_id": {
"type": "string",
"title": "Clip Id"
},
"background": {
"type": "string",
"title": "Background",
"default": ""
},
"position_x": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"title": "Position X",
"default": null
},
"position_y": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"title": "Position Y",
"default": null
},
"blur_amount": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"title": "Blur Amount",
"default": null
},
"custom_width": {
"anyOf": [
{
"type": "integer"
},
{
"type": "null"
}
],
"title": "Custom Width",
"default": null
},
"custom_height": {
"anyOf": [
{
"type": "integer"
},
{
"type": "null"
}
],
"title": "Custom Height",
"default": null
},
"flip_vertical": {
"anyOf": [
{
"type": "boolean"
},
{
"type": "null"
}
],
"title": "Flip Vertical",
"default": null
},
"flip_horizontal": {
"anyOf": [
{
"type": "boolean"
},
{
"type": "null"
}
],
"title": "Flip Horizontal",
"default": null
}
}
}| music_ducking | any |
| mute_original | any |
| original_volume | any |
{
"type": "object",
"title": "mix_audioArguments",
"required": [
"clip_id"
],
"properties": {
"clip_id": {
"type": "string",
"title": "Clip Id"
},
"denoise": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"title": "Denoise",
"default": null
},
"normalize": {
"anyOf": [
{
"type": "boolean"
},
{
"type": "null"
}
],
"title": "Normalize",
"default": null
},
"ducking_db": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"title": "Ducking Db",
"default": null
},
"voice_boost": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"title": "Voice Boost",
"default": null
},
"music_volume": {
"type": "string",
"title": "Music Volume",
"default": ""
},
"voice_effect": {
"type": "string",
"title": "Voice Effect",
"default": ""
},
"music_ducking": {
"anyOf": [
{
"type": "boolean"
},
{
"type": "null"
}
],
"title": "Music Ducking",
"default": null
},
"mute_original": {
"anyOf": [
{
"type": "boolean"
},
{
"type": "null"
}
],
"title": "Mute Original",
"default": null
},
"original_volume": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"title": "Original Volume",
"default": null
}
}
}| for_new_clips |
| boolean |
{
"type": "object",
"title": "save_template_toolArguments",
"required": [
"name"
],
"properties": {
"name": {
"type": "string",
"title": "Name"
},
"clip_id": {
"type": "string",
"title": "Clip Id",
"default": ""
},
"category": {
"type": "string",
"title": "Category",
"default": "hype"
},
"look_from": {
"type": "string",
"title": "Look From",
"default": ""
},
"description": {
"type": "string",
"title": "Description",
"default": ""
},
"for_new_clips": {
"type": "boolean",
"title": "For New Clips",
"default": false
}
}
}| any |
| clip_id* | string |
| contrast | any |
| template | string |
| brightness | any |
| saturation | any |
| transition | string |
| caption_box | string |
| filter_look | string |
| output_shape | string |
| progress_bar | any |
| also_clip_ids | any |
| transition_ms | integer |
| caption_shadow | any |
| template_parts | any |
| clipping_preset | string |
| effect_strength | any |
| fade_in_seconds | any |
| filter_strength | any |
| caption_template | string |
| fade_out_seconds | any |
| effect_end_seconds | number |
| caption_stroke_color | string |
| caption_stroke_width | any |
| effect_start_seconds | number |
{
"type": "object",
"title": "style_clipArguments",
"required": [
"clip_id"
],
"properties": {
"font": {
"type": "string",
"title": "Font",
"default": ""
},
"speed": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"title": "Speed",
"default": null
},
"effect": {
"type": "string",
"title": "Effect",
"default": ""
},
"warmth": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"title": "Warmth",
"default": null
},
"clip_id": {
"type": "string",
"title": "Clip Id"
},
"contrast": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"title": "Contrast",
"default": null
},
"template": {
"type": "string",
"title": "Template",
"default": ""
},
"brightness": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"title": "Brightness",
"default": null
},
"saturation": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"title": "Saturation",
"default": null
},
"transition": {
"type": "string",
"title": "Transition",
"default": ""
},
"caption_box": {
"type": "string",
"title": "Caption Box",
"default": ""
},
"filter_look": {
"type": "string",
"title": "Filter Look",
"default": ""
},
"output_shape": {
"type": "string",
"title": "Output Shape",
"default": ""
},
"progress_bar": {
"anyOf": [
{
"type": "boolean"
},
{
"type": "null"
}
],
"title": "Progress Bar",
"default": null
},
"also_clip_ids": {
"anyOf": [
{
"type": "array",
"items": {
"type": "string"
}
},
{
"type": "null"
}
],
"title": "Also Clip Ids",
"default": null
},
"transition_ms": {
"type": "integer",
"title": "Transition Ms",
"default": 0
},
"caption_shadow": {
"anyOf": [
{
"type": "boolean"
},
{
"type": "null"
}
],
"title": "Caption Shadow",
"default": null
},
"template_parts": {
"anyOf": [
{
"type": "array",
"items": {
"type": "string"
}
},
{
"type": "null"
}
],
"title": "Template Parts",
"default": null
},
"clipping_preset": {
"type": "string",
"title": "Clipping Preset",
"default": ""
},
"effect_strength": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"title": "Effect Strength",
"default": null
},
"fade_in_seconds": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"title": "Fade In Seconds",
"default": null
},
"filter_strength": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"title": "Filter Strength",
"default": null
},
"caption_template": {
"type": "string",
"title": "Caption Template",
"default": ""
},
"fade_out_seconds": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"title": "Fade Out Seconds",
"default": null
},
"effect_end_seconds": {
"type": "number",
"title": "Effect End Seconds",
"default": 0
},
"caption_stroke_color": {
"type": "string",
"title": "Caption Stroke Color",
"default": ""
},
"caption_stroke_width": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"title": "Caption Stroke Width",
"default": null
},
"effect_start_seconds": {
"type": "number",
"title": "Effect Start Seconds",
"default": 0
}
}
}| platform | string |
| account_id | string |
| allow_duet | any |
| clear_time | boolean |
| allow_stitch | any |
| scheduled_at | string |
| allow_comment | any |
| brand_content | any |
| brand_organic | any |
{
"type": "object",
"title": "update_draft_routeArguments",
"required": [
"post_id"
],
"properties": {
"aigc": {
"anyOf": [
{
"type": "boolean"
},
{
"type": "null"
}
],
"title": "Aigc",
"default": null
},
"mode": {
"type": "string",
"title": "Mode",
"default": ""
},
"caption": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Caption",
"default": null
},
"post_id": {
"type": "string",
"title": "Post Id"
},
"privacy": {
"type": "string",
"title": "Privacy",
"default": ""
},
"disclose": {
"anyOf": [
{
"type": "boolean"
},
{
"type": "null"
}
],
"title": "Disclose",
"default": null
},
"platform": {
"type": "string",
"title": "Platform",
"default": ""
},
"account_id": {
"type": "string",
"title": "Account Id",
"default": ""
},
"allow_duet": {
"anyOf": [
{
"type": "boolean"
},
{
"type": "null"
}
],
"title": "Allow Duet",
"default": null
},
"clear_time": {
"type": "boolean",
"title": "Clear Time",
"default": false
},
"allow_stitch": {
"anyOf": [
{
"type": "boolean"
},
{
"type": "null"
}
],
"title": "Allow Stitch",
"default": null
},
"scheduled_at": {
"type": "string",
"title": "Scheduled At",
"default": ""
},
"allow_comment": {
"anyOf": [
{
"type": "boolean"
},
{
"type": "null"
}
],
"title": "Allow Comment",
"default": null
},
"brand_content": {
"anyOf": [
{
"type": "boolean"
},
{
"type": "null"
}
],
"title": "Brand Content",
"default": null
},
"brand_organic": {
"anyOf": [
{
"type": "boolean"
},
{
"type": "null"
}
],
"title": "Brand Organic",
"default": null
}
}
}