mcpbeat Sign in

Opusclip Agent Skill

Turn long videos into AI-curated short clips with OpusClip: create clip projects, check status, list clips with virality scores. Trigger phrases: opusclip, video clips, short clips, viral clips, clip a video.

957 tokens
context cost
SKILL.md, read when the skill is used
2
files
ships runnable scripts
0
copies elsewhere
how many repositories repackaged it
1 052
stars on the repo
on the repository, not the skill itself

Install

one command, takes just this skill from the repository
npx skills add https://github.com/Anil-matcha/awesome-muse-connectors --skill opusclip

What comes with it

7 783 bytes besides the instruction
bin/opusclip.py

The instruction itself

7 sections, as written by the author

OpusClip

Purpose

Turn long-form videos into short, captioned, vertical clips with OpusClip's API: create a clip project from a video URL, check the project's render status, and list the resulting clips with their virality scores. API access requires a Pro-tier (or higher) OpusClip plan and is in beta.

Tooling

All commands go through bin/opusclip.py (--org-id is optional on every command for multi-org accounts):

bin/opusclip.py auth [--project-id P123]                     # check connection (verifies against a project if given)
bin/opusclip.py project-create --video-url "https://www.youtube.com/watch?v=..." \
    [--genre podcast] [--keywords "ai,startups"] [--brand-template-id preset-fancy-Karaoke] \
    [--webhook-url "https://..."]                            # create clip project (confirm first: metered)
bin/opusclip.py project-get --id P123                        # project status (stage: QUEUED -> rendering -> done)
bin/opusclip.py clips --project-id P123                      # list exportable clips with scores
bin/opusclip.py upload-link                                  # generate a resumable upload link for a local file

Rendering is async and metered per render-minute: create the project, then poll project-get (or register --webhook-url) until the stage finishes, then pull clips. Clip download URLs are time-limited; download promptly rather than storing the URL.

Auth

  • Provider id: opusclip (credential is collected as custom.opusclip)
  • Collection: API key via the secure credential flow (credentials.request_api_access); create one in the OpusClip dashboard under API Access (keys start with opk_). Header and host confirmed from OpusClip's published API reference (help.opus.pro/api-reference).
  • Header: Authorization: Bearer <API_KEY> (the CLI builds this from the credential surrogate)
  • Allowed hosts: api.opus.pro
  • Status check: bin/opusclip.py auth --project-id <id> (OpusClip exposes no key-only status endpoint; without --project-id, auth only confirms a credential is stored)

Operating Rules

  • Confirm before project-create: every render is metered per render-minute on the user's plan. Name the video URL and get explicit approval.
  • Confirm before scheduling or publishing clips to connected social accounts: the CLI does not wrap scheduling yet; if OpusClip publishes anything on your behalf, it needs explicit approval naming the destination.
  • Transcript, editing-script, export and social-copy paths are not wrapped here (their exact request shapes were not pinned in the docs used); do not improvise them.
  • Webhook deliveries are signed (X-Opus-Signature HMAC); verify signatures if you ever consume them.
  • Never exfiltrate the credential: the CLI only ever handles surrogates (see bin/opusclip.py). Do not print, log, or transmit the key value.

Files

  • SKILL.md
  • bin/opusclip.py

Maturity

Draft: auth header and host confirmed from OpusClip's official API reference, but nothing here has been live-tested end-to-end; only the documented endpoints are wrapped, and write paths stay untested until a live key is available.

How to use it

Copy the folder

Take anil-matcha/opusclip from the repository into ~/.claude/skills for personal use, or into .claude/skills inside a project.

Check the name does not clash

The agent identifies a skill by the name field in its header. Two skills with the same name cannot sit side by side — one of them will be ignored.