{"id":15944,"plugin_id":"plugin_asdk_app_6a43eb06e7608191b94ee81bfb09c42b","kind":"skill","collection_source":null,"comparison_source":null,"observed_at":"2026-09-30T23:12:27.293Z","digest":"fbbc58660ad346802a4238f21ae5e545690eb6653b7a8217af9c43094b85c51e","against":null,"payload":{"description":"Create, render, and publish short-form video with VDClip. Use for \"clip this video\", \"make shorts from this YouTube link\", \"add captions/subtitles\", \"find the best moments\", reading what a clip says and when, opening a clip in the visual editor, rendering or exporting an MP4, checking credits or plan limits, and posting or scheduling clips to TikTok, Instagram, YouTube or Facebook.","included_files":[{"relative_path":"agents/openai.yaml","size_in_bytes":323},{"relative_path":"references/create-clips.md","size_in_bytes":4328},{"relative_path":"references/editing.md","size_in_bytes":2924},{"relative_path":"references/host-setup.md","size_in_bytes":1458},{"relative_path":"references/project-options.md","size_in_bytes":2965},{"relative_path":"references/publishing.md","size_in_bytes":3943},{"relative_path":"references/recovery.md","size_in_bytes":3404},{"relative_path":"references/rendering.md","size_in_bytes":3295},{"relative_path":"references/scheduling.md","size_in_bytes":2118},{"relative_path":"references/transcript.md","size_in_bytes":1727}],"name":"vdclip","skill_md_contents":"---\nname: vdclip\ndescription: Create, render, and publish short-form video with VDClip. Use for \"clip this video\", \"make shorts from this YouTube link\", \"add captions/subtitles\", \"find the best moments\", reading what a clip says and when, opening a clip in the visual editor, rendering or exporting an MP4, checking credits or plan limits, and posting or scheduling clips to TikTok, Instagram, YouTube or Facebook.\nlicense: MIT\ncompatibility: Requires the VDClip MCP connector (https://mcp.vdclip.com/mcp) and an authenticated VDClip account.\n---\n\n# VDClip\n\nTurn long video into short-form content: generate clips with AI, render them, and publish.\nEvery job runs against the user's real account — credits get spent and posts go out\npublicly, so quote costs and confirm before acting.\n\n## Non-negotiable rules\n\n- **Money and reach need approval.** Quote the credit cost before `create_project` (AI\n  types) and before `render_clip` on an editor project. Get explicit approval of\n  destination, copy, and time before publishing or scheduling.\n- **Never invent an id.** `project_id`, `result_id`/`clip_id`, `preset_id`, `account_id`,\n  `connection_id` and `post_id` all come from tool results.\n- **Never blind-retry a write.** After a conflict, timeout, or uncertain result, read the\n  current state first (`get_clip`, `list_calendar`, `get_project_status`). A blind retry\n  double-posts or double-charges.\n- **`cancel_post` is irreversible.** A cancelled post cannot be un-cancelled, only\n  scheduled again from scratch. Confirm the exact posts first.\n- **Timing is in seconds.** Everything the connector returns and accepts is seconds.\n  Never send `frame`, `frames`, `fps` or `durationInFrames` in project data.\n- **Report reality.** Surface warnings, skipped clips and error codes. Never claim a\n  result the tool output does not show.\n\n## Pick the workflow\n\n| User wants | Go to |\n| --- | --- |\n| Clips or captions from a video URL | [create-clips.md](references/create-clips.md) |\n| To know what a clip says, and when | [transcript.md](references/transcript.md) |\n| To change an existing clip | [editing.md](references/editing.md) |\n| An MP4 file to download | [rendering.md](references/rendering.md) |\n| To post or schedule to social | [publishing.md](references/publishing.md) |\n\n### 1. Create — AI pipeline, costs credits\n\n`get_account` (plan, credits) → `estimate_cost` (clipping 1 credit/min, captions 2) →\nconfirm with the user → `create_project` → poll `get_project_status` → `list_clips`.\n\nAsk for the content category and the clip length before creating; call `list_templates` if\nthe user wants a style preset and pass its id as `preset_id`. Enums, failure codes and the\ncredit-free `type: \"editor\"` branch are in [create-clips.md](references/create-clips.md) and\n[project-options.md](references/project-options.md).\n\n### 2. Inspect and edit\n\n`get_project` opens the clip's project in the visual editor widget and returns its summary\n(overlays, timing, version tag). `get_project_summary` returns the same summary without\nopening the widget. `get_transcript` returns the timed text so you can say what is said and\nwhen.\n\n**Chat-driven editing is paused.** `apply_edits`, `save_project` and `compose_scenes` are\nnot advertised in `tools/list` and refuse with `feature_paused` if called from memory. Hand\nthe user off to the full editor — see [editing.md](references/editing.md).\n\n### 3. Render\n\n`render_clip` → poll `get_clip` until the render status is terminal → hand over\n`download_url` (signed and time-limited; re-read `get_clip` for a fresh one).\n\nClipping and captions results were already charged at creation, so re-rendering them is\nfree. Editor projects bill at render time — call `estimate_cost({ type: \"editor\" })` first.\n`method: \"browser\"` additionally needs `request_render_upload` → PUT → `confirm_render_upload`.\nDetails in [rendering.md](references/rendering.md).\n\n### 4. Publish\n\n`list_social_accounts` → confirm with the user → `publish_clip` (one clip) or\n`schedule_clips_bulk` (many) → manage via `list_calendar`, `reschedule_post`, `cancel_post`.\nRules and limits in [publishing.md](references/publishing.md) and\n[scheduling.md](references/scheduling.md).\n\nFor a read-only link instead of a social post: `get_project_share` then `set_project_share`.\n\n## When things fail\n\n[recovery.md](references/recovery.md) has the full error taxonomy. The short version:\n\n- **`insufficient_credits`** — stop and say how short the user is. Do not retry.\n- **`plan_gated` / `quota_exceeded`** — name the feature and the tier or limit. Do not work\n  around it.\n- **`unauthorized` / `forbidden`** — ask the user to reconnect or grant the scope.\n- **`conflict`** — re-read the current state before deciding anything.\n- **`feature_paused`** — chat editing is off; give the editor link from the error message.\n- **Unknown outcome after a write** — read current state before any retry.\n\n## Setup\n\nMCP endpoint `https://mcp.vdclip.com/mcp`; per-host install notes in\n[host-setup.md](references/host-setup.md). Authenticate through the host's OAuth flow and\nnever store tokens in files.\n\n## Response style\n\nLead with the outcome — name the project and what changed, or the cost about to be spent.\nPut warnings and blockers next. Offer at most three concrete next actions.\n"},"changes":[],"summary":"First saved snapshot. No earlier version is available for comparison.","summary_kind":"deterministic","summary_metadata":{}}