Agent skill

Video To Music

by sonilo-ai in sonilo-ai/skills

Score a video with original music using Sonilo — the model watches the cut and matches pacing, motion, and emotion, returning either the audio or a new video with the score muxed in.

MITAuto-check: notesMedia & Creative

Install Video To Music

skills CLI
$ npx skills add sonilo-ai/skills --skill video-to-music -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install sonilo-ai/skills video-to-music --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/sonilo-ai/skills.git skills-src && mkdir -p .claude/skills && cp -r skills-src/video-to-music .claude/skills/video-to-music && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
video-to-music
GitHub stars
115
Used in
1 other repo
Token cost
~4k tokens
SKILL.md length
1,795 words
Files
1
Skills in repo
13
Repo updated
First seen
Licence
MIT

At a glance

Score a video with original music using Sonilo — the model watches the cut and matches pacing, motion, and emotion, returning either the audio or a new video with the score muxed in.

  • Works in 3 steps: Sonilo MCP tools visible in this session… → No usable Sonilo MCP tools, but sonilo… → Neither — stop and run the setup-api-key…
  • The user has a finished video that needs a soundtrack
  • SKILL.md covers Transport: MCP or CLI, Quick Start, Tools and Parameters, plus 6 more sections
  • Calls pip, npm and curl; reaches api.sonilo.com; needs SONILO_API_KEY

What it does

Video To Music is an agent skill from sonilo-ai/skills. Score a video with original music using Sonilo — the model watches the cut and matches pacing, motion, and emotion, returning either the audio or a new video with the score muxed in. Use when the user has a finished video that needs a soundtrack. Every track is licensed and cleared for commercial use. For music with no video, use the text-to-music skill.

Its SKILL.md is about 4k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts. Compatibility notes: Requires Sonilo through either transport — the MCP server connected, or the sonilo CLI installed and signed in — plus credentials: a sonilo login sign-in, the…

It sits in Media & Creative, covering Music and audio generation and MCP servers. It works with Model Context Protocol. The repository describes itself as: Agent skills for Sonilo's licensed music, sound-effects, dubbing, and audio-ducking API. The licence is MIT.

When your agent uses it

  • The user has a finished video that needs a soundtrack
  • Tasks that involve Music and audio generation
  • Tasks that involve MCP servers

Example prompts

  • “/video-to-music”

Requirements

  • Python 3
  • Node.js
  • A credential in SONILO_API_KEY
  • Compatibility (from SKILL.md): Requires Sonilo through either transport — the MCP server connected, or the `sonilo` CLI installed and signed in — plus credentials: a `sonilo login` sign-in, the hosted OAuth plugin, or SONILO_API_KEY. See the setup-api-key skill.
  • Pre-approved tools (allowed-tools): Bash, Read, Write, mcp__sonilo__*

Workflow steps

3 steps, taken from the first numbered list in SKILL.md.

  1. Sonilo MCP tools visible in this session (video_to_music and friends) — use them. This is the preferred path: it needs no shell, and it is…
  2. No usable Sonilo MCP tools, but sonilo account exits 0 — use the CLI commands below. Same API, same account, same credential file. Probe…
  3. Neither — stop and run the setup-api-key skill. Do not call api.sonilo.com with curl to work around it; both transports handle uploads…

What it can do on your machine

Read from SKILL.md and the folder at commit 1ce1bd8. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves these tools, so the agent can use them without asking each time:

    • Bash
    • Read
    • Write
    • mcp__sonilo__*

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    Shell commands in SKILL.md call:

    • pip
    • npm
    • curl

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    Hosts in commands or code, which the agent is likely to contact:

    • api.sonilo.com

    Also links to:

    • github.com

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names these keys or tokens, usually read from environment variables:

    • SONILO_API_KEY

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

  • Compatibility

    Requires Sonilo through either transport — the MCP server connected, or the `sonilo` CLI installed and signed in — plus credentials: a `sonilo login` sign-in, the hosted OAuth plugin, or SONILO_API_KEY. See the setup-api-key skill.

    From compatibility in the SKILL.md frontmatter.

Context cost

Video To Music loads about 4k tokens when it runs. Until then it costs about 93 tokens; SKILL.md has 1,795 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~93
When it runs · the whole SKILL.md, loaded when a task matches
~4k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check: notes

The automated check noted patterns worth knowing about, such as sudo or a known installer.

  • NotePre-approves every shell command (allowed-tools: Bash)SKILL.md
    allowed-tools: Bash, Read, Write, mcp__sonilo__*

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.

SKILL.md

The full file from sonilo-ai/skills at commit 1ce1bd8, republished under its MIT licence (© sonilo-ai). 1,795 words, ~3,991 tokens.

Download SKILL.mdSave it as .claude/skills/video-to-music/SKILL.md (or your agent's skills folder).
name
video-to-music
description
Score a video with original music using Sonilo — the model watches the cut and matches pacing, motion, and emotion, returning either the audio or a new video with the score muxed in. Use when the user has a finished video that needs a soundtrack. Every track is licensed and cleared for commercial use. For music with no video, use the text-to-music skill.
allowed-tools
Bash, Read, Write, mcp__sonilo__*
compatibility
Requires Sonilo through either transport — the MCP server connected, or the `sonilo` CLI installed and signed in — plus credentials: a `sonilo login` sign-in, the hosted OAuth plugin, or SONILO_API_KEY. See the setup-api-key skill.
license
MIT

Sonilo Video-to-Music

Hand Sonilo a finished video and it composes an original score to the cut — pacing, motion, and emotion matched, with transitions and beat drops aligned to the edit, at exactly the video's length. This is Sonilo's flagship capability. Every track is licensed (music licensed via Shutterstock) and cleared for commercial use on social, brand content, and advertising.

Setup: See the setup-api-key skill to connect the Sonilo MCP server and authenticate — sonilo login (no key) or SONILO_API_KEY.

⚠️ Cost: every tool below makes an API call that may incur charges. Only call it when the user has actually asked for a generation. Check get_account_services (see the account skill) if you're unsure whether free-trial runs remain.

Transport: MCP or CLI

Pick one at the start of the session and stay on it. Do not mix the two inside a single job, and do not announce the choice.

  1. Sonilo MCP tools visible in this session (video_to_music and friends) — use them. This is the preferred path: it needs no shell, and it is the only one that survives a very long generation. If a call fails to authenticate — rather than failing on its inputs — this transport is not usable in this session: go to 2 instead of retrying it.
  2. No usable Sonilo MCP tools, but sonilo account exits 0 — use the CLI commands below. Same API, same account, same credential file. Probe with sonilo account, not sonilo whoami: whoami exits 0 even when signed out, so it cannot tell the two states apart.
  3. Neither — stop and run the setup-api-key skill. Do not call api.sonilo.com with curl to work around it; both transports handle uploads, polling and retries that a bare request does not.

Quick Start

video_to_music(
    video_path="~/Desktop/trailer.mp4",
    prompt="Build suspense, then resolve with a warm cinematic finish"
)

Saves the generated file(s) to SONILO_MCP_BASE_PATH (~/Desktop by default) and returns the saved path(s) as text.

Python (pip install sonilo)
python
from sonilo import Sonilo

client = Sonilo()  # reads SONILO_API_KEY

score = client.video_to_music.generate(video="trailer.mp4", prompt="Build suspense, then resolve with a warm cinematic finish")
score.save("score.m4a")

# video_to_video_music: get the video back with the music muxed in
video = client.video_to_video_music.generate(video="trailer.mp4", prompt="cinematic, uplifting")
video.save("scored.mp4")

preserve_speech=True on video_to_music requires the async path — use generate_async() instead of generate() to get the extra vocals/mux/ducked outputs; see sonilo-python's README for the full pattern.

JavaScript / TypeScript (npm install sonilo)
ts
import { SoniloClient } from "sonilo";

const client = new SoniloClient(); // reads SONILO_API_KEY

const score = await client.videoToMusic.generate({
  video: "./trailer.mp4",
  prompt: "Build suspense, then resolve with a warm cinematic finish",
});

// video_to_video_music: get the video back with the music muxed in
const video = await client.videoToVideoMusic.generate({
  video: "./trailer.mp4",
  prompt: "cinematic, uplifting",
});

preserveSpeech: true on videoToMusic requires the async path — use .submit() + client.tasks.wait() instead of .generate(); see sonilo-js's README for the full pattern.

CLI (npm install -g sonilo-cli or pip install sonilo-cli)
bash
sonilo video-to-music --video trailer.mp4 --prompt "Build suspense, then resolve with a warm cinematic finish" --output score.m4a

--format wav, --preserve-speech, and --isolate-vocals each switch video-to-music to the async submit-and-poll path.

bash
# the muxed video, from the CLI
sonilo video-to-video-music --video trailer.mp4 --prompt "cinematic, uplifting" --output scored.mp4
cURL (raw REST API, no MCP host)
bash
curl -X POST "https://api.sonilo.com/v1/video-to-music" \
  -H "Authorization: Bearer $SONILO_API_KEY" \
  -F "video=@trailer.mp4" \
  -F "prompt=Build suspense, then resolve with a warm cinematic finish" \
  --output score.m4a

video_to_music also accepts a video_url form field instead of an uploaded file — pass one or the other, never both.

Tools

ToolDescription
video_to_music(video_path? | video_url?, prompt?, preserve_speech?, output_format?, ducking?, variants_num?, prompt_influence?, stems?, output_directory?)Score a video: matches pacing/motion/emotion, matches the video's duration exactly. Returns audio only (the video itself is not muxed).
video_to_video_music(video_path? | video_url?, prompt?, segments?, keep_original_sound?, ducking?, preserve_speech?, variants_num?, prompt_influence?, output_directory?)Same scoring, but returns a new .mp4 with the music already muxed in. By default the source's own audio is dropped — see keep_original_sound.

Parameters

ParameterTypeDefaultNotes
promptstring—Optional style hint. Omit to let the footage lead entirely.
video_pathstring—Absolute path, or relative to SONILO_MCP_BASE_PATH. .mp4/.mov/.avi/.wmv/.webm/.mkv. Max 360s (6 min), subject to the account's upload-size cap (typically 300 MB).
video_urlstring—HTTPS URL to a video file. Exactly one of video_path/video_url.
preserve_speechboolfalseKeeps the source speech audible. On video_to_music, also returns a vocals speech stem and a ready-to-use mux (speech+music mixed) — this makes the call run asynchronously (submit + poll) instead of streaming, so it takes a bit longer but the tool still waits for completion.
duckingbool | nullserver default ON for video_to_music, false for video_to_video_musicDips the generated music under the source voice. Free, best-effort. On video_to_video_music it only does anything alongside keep_original_sound or preserve_speech — with neither, there is no source voice left in the output to duck under.
keep_original_soundboolfalsevideo_to_video_music only. This is the parameter to reach for when the result sounds wrong. By default the returned .mp4 carries the generated music alone — the source's dialogue, room tone, and effects are gone. Set true to keep the whole source track with the music mixed under it, and add ducking=true to dip the music under the voice rather than mixing it flat. keep_original_sound supersedes preserve_speech.
variants_numint11–10. Generates that many distinct creative directions in one request — different takes, not re-renders of one. Cost scales linearly with the count, and any value above 1 is never covered by the free trial, so confirm the number with the user first. Above 1 writes one file per variant and forces the backend's async mode.
prompt_influencefloat | nullAPI default 0.50–1: how strictly the music follows your prompt versus what the video itself suggests. Lower lets the footage lead, higher enforces the brief. Free, and it does not change the mode or the number of files — omit it unless the user asks for stricter or looser adherence.
stemsboolfalsevideo_to_music only — video_to_video_music has no such param. Free. Additionally splits each generated track into four separated instrument tracks — drums, bass, vocals, other — returned alongside the untouched full mix. It never touches the video's own audio. Async-only on REST (stems=true without mode=async is a 400). See Stems.
output_formatstringm4avideo_to_music only — video_to_video_music has no such param and always outputs a muxed .mp4. m4a or wav. wav (and preserve_speech/ducking) triggers the backend's async mode internally.
output_directorystringSONILO_MCP_BASE_PATHAbsolute, or relative to the base path.

Stems

stems=true on video_to_music additionally returns each generated track split into four separated instrument tracks — drums, bass, vocals, other — free of charge. The full mix is untouched; the stems arrive alongside it in the task result as a stems array next to audio:

json
"stems": [
  {
    "stream_index": 0,
    "drums":  { "url": "…", "content_type": "audio/mp4", "file_size": 2913044 },
    "bass":   { "url": "…", "content_type": "audio/mp4", "file_size": 2870211 },
    "vocals": { "url": "…", "content_type": "audio/mp4", "file_size": 2794560 },
    "other":  { "url": "…", "content_type": "audio/mp4", "file_size": 3011830 }
  }
]

What matters when you use it:

  • It splits the GENERATED music, never the video's own audio. The vocals stem is whatever singing the generated score contains — usually near-silent, since scores are mostly instrumental, and that is correct behavior, not a bug. To get the source speech isolated, use preserve_speech (a different feature) instead.
  • Async only on REST. stems=true requires mode=async (a 400 otherwise): you get a 202 + task_id and poll /v1/tasks/{task_id}. The MCP tools are always async, so on the hosted server the param just works.
  • Available on every surface (verified 2026-08-17): REST, the hosted MCP server, the local sonilo-mcp package (>= 0.18.0), the SDKs (sonilo npm >= 0.16.0, PyPI >= 0.15.0), and the CLIs (--stems, npm sonilo-cli >= 0.15.0, PyPI sonilo-cli >= 0.14.0).
  • Match stems to tracks by stream_index, never by array position. A stream whose separation failed is simply absent, so stems can be shorter than audio.
  • stems_error is not a failed generation. When separation failed wholly or partly, or was skipped, the task carries a stems_error string — possibly alongside a partial stems array. The generation itself succeeded and every audio URL is valid: treat missing stems as a missing extra, never as a reason to retry or refund.
  • Timing: separation runs after generation finishes — typically another 2–6 min, giving up after 30 min (then stems_error).
  • The four stem names are fixed (htdemucs separation): melodic instruments — piano, synths, guitar, strings — land in other.
  • Formats: stems normally follow output_format; trust each stem's content_type for what was actually delivered.
Show full SKILL.md (627 more words)Show less

Prompting

No prompt is required — the model reads the cut. A short structured brief adds what the video can't carry: your intent — genre, the moment that must hit, the sounds that must not appear.

Before a paid call: probe the exact duration and existing audio, respect the 360 s cap (over = 422 reject, never truncated), and get sign-off — failed runs auto-refund, but your own retry is a new charge. Write the brief first, generate once, iterate on the prompt, not on rerolls.

Workflow Tips

  • Prompting: a style hint (e.g. "cinematic, uplifting") steers the result, but the prompt is optional — Sonilo already reads the footage.
  • preserve_speech for talking-head or narrated video: if the source has dialogue/voiceover the user wants kept, set preserve_speech=true. Behavior differs by tool: on video_to_music you get the music, the isolated speech stem, and a ready-mixed combined file (the mux) — use the mux directly rather than re-mixing yourself. On video_to_video_music there's no separate stem or mux file; it just keeps the source speech audible in the single muxed output video.
  • Want the video back with the score baked in? Use video_to_video_music instead of video_to_music — same inputs, but the output is a new .mp4, not just audio. Warn the user that the source audio is dropped by default: if their video has dialogue, narration, or effects they expect to hear, pass keep_original_sound=true (add ducking=true to keep the voice on top), or preserve_speech=true for the isolated speech only. A "the music is there but my voiceover vanished" report is always this.
  • Several takes in one go: variants_num=3 returns three distinct directions for one request instead of three re-rolls. It costs 3×, and it is never free-trial covered — say the price before calling.
  • User wants the score's instruments as separate files (to remix, re-balance, or drop one)? stems=true on video_to_music — it's free, but async-only and not on every surface yet, and it splits the generated music, never the source audio; see Stems.
  • Duration: always matched to the source video automatically — don't ask for it.
  • Need SFX too? To generate music and sound effects for the same video in one balanced, single-charge call, use video-to-sound rather than calling this and video-to-sfx separately.
  • Don't know what it should sound like? Run video-analysis first: one call returns a section plan plus ready-to-use generation prompts read off the footage (and a sound-design brief too, unless you pass mode="music"), which beats guessing a prompt and rerolling. It is a paid call that generates nothing, so use it when the brief is genuinely unclear — not when the user already told you what they want.
  • Content restriction: prompts cannot reference specific artists, bands, or copyrighted lyrics.

Recovering a Timed-Out Call

video_to_music (without any of preserve_speech/ducking/stems/output_format="wav") streams its result in one call. Any variant that triggers the backend's async mode — and video_to_video_music, which is always async — can time out on a very long TIME_OUT_SECONDS. If it does, the error message includes a task_id; the generation keeps running (and is already charged) on the backend. Call get_sfx_task(task_id) — get_generation_task(task_id) on the hosted server — to retrieve the result once ready; see the task-recovery skill.

Output Files

  • video_to_music: .m4a by default (.wav if requested), named from the prompt (slugified) or sonilo-<timestamp>.m4a. Multiple parallel streams get a -<index> suffix.
  • video_to_music(preserve_speech=true): also saves <base>-vocals.<ext> (isolated speech) and <base>-mux.<ext> (speech+music combined — the one to actually use).
  • video_to_video_music: a single .mp4 with the score muxed in.

Error Handling

Common errors: 401 invalid key, 402 insufficient balance / trial exhausted, 413 file too large, 422 invalid parameters (e.g. video over the 360 s cap), 429 rate limit. See the account skill to check trial/usage before a call, and the sonilo-mcp README's error table for exact recovery steps.

© sonilo-ai, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

Just SKILL.md in video-to-music of sonilo-ai/skills.

Open the folder on GitHubat commit 1ce1bd8

Used in 1 other repository

We found 1 copy of this SKILL.md (exact, near-identical or edited) in other folders, from 1 other GitHub owner. This page covers the copy in sonilo-ai/skills, which our catalogue first saw on October 7, 2026.

Compare with similar skills

Video To Music next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Video To Music compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Video To Music this skillsonilo-ai/skills1151 repos~4kAutomated safety check: NotesMIT
Resolve Audiosamuelgursky/davinci-resolve-mcp3.5k—~1.3kAutomated safety check: PassMIT
Musicguaardvark/guaardvark258—~710Automated safety check: PassMIT
Fal Assetsrehan-remade/universal-modder6.5k—~2kAutomated safety check: NotesMIT
Scenario Audioscenario-labs/skills946—~3kAutomated safety check: PassMIT
OpenStoryline Install HelperFireRedTeam/FireRed-OpenStoryline3.5k—~1.5kAutomated safety check: NotesApache-2.0

Similar skills

  • Resolve Audio

    samuelgursky/davinci-resolve-mcp

    Audio and Fairlight work in the DaVinci Resolve MCP. An agent skill from samuelgursky/davinci-resolve-mcp.

    3.5k GitHub stars~1.3k tokensUpdated yesterday
    Media & CreativeAuto-check passed
  • Music

    guaardvark/guaardvark

    Generate full songs with vocals or instrumentals (ACE-Step) and sound effects or ambience (Stable Audio Open) on the user's GPU through Guaardvark's Audio Foundry.

    258 GitHub stars~710 tokensUpdated today
    Media & CreativeAuto-check passed
  • Fal Assets

    rehan-remade/universal-modder

    Generate game assets with fal (fal.ai) through the fal MCP server, the um fal CLI (REST) or fal api.

    6.5k GitHub stars~2k tokensUpdated today
    Game DevelopmentAuto-check: notes
  • Scenario Audio

    scenario-labs/skills

    A skill your agent uses when generating or handling audio on Scenario via MCP.

    946 GitHub stars~3k tokensUpdated yesterday
    Media & CreativeAuto-check passed
  • OpenStoryline Install Helper

    FireRedTeam/FireRed-OpenStoryline

    Installs, repairs and starts a local source checkout of FireRed-OpenStoryline, from prerequisites and a venv to resources, config and the MCP and web servers.

    3.5k GitHub stars~1.5k tokensUpdated 2 mo ago
    Media & CreativeAuto-check: notes
  • Free AI-first short-form video publishing to TikTok, Instagram Reels, YouTube Shorts, X, and Facebook from AI agents through Taisly.

    217 GitHub starsUsed in 1 repo~1.5k tokens
    Media & CreativeAuto-check passed

More from sonilo-ai/skills

All 13 skills in this repo
  • Text To Sfx

    sonilo-ai/skills

    Generate a sound effect from a text description using Sonilo — a UI chime, a whoosh, an impact, ambience, a stylized cue — when there is no video to match.

    115 GitHub starsUsed in 1 repo~1.6k tokens
    Auto-check: notes
  • Account

    sonilo-ai/skills

    Check the Sonilo account's available services, rate limits, free-trial allowance, and usage/billing history.

    115 GitHub stars~1.4k tokensUpdated 2 days ago
    Auto-check: notes
  • Audio Ducking

    sonilo-ai/skills

    Duck a music bed under a voice track using Sonilo — automatically lowers the music wherever the voice speaks and lifts it back in the gaps.

    115 GitHub stars~1.8k tokensUpdated 2 days ago
    Auto-check: notes
  • Audio Playback

    sonilo-ai/skills

    Play a local audio file through the system's default speakers using Sonilo's MCP server.

    115 GitHub stars~813 tokensUpdated 2 days ago
    Auto-check: notes
  • Auto Dubbing

    sonilo-ai/skills

    Dub a video into one or more other languages using Sonilo, translating and re-voicing the speech into a new video per language.

    115 GitHub stars~4.5k tokensUpdated 2 days ago
    Auto-check: notes
  • Proofread

    sonilo-ai/skills

    Transcribe a video with Sonilo and translate the transcript into editable .srt files — one per target language, plus the detected source language — so the wording can be read and corrected before…

    115 GitHub stars~4.4k tokensUpdated 2 days ago
    Auto-check: notes

Questions about Video To Music

What does Video To Music do?

Score a video with original music using Sonilo — the model watches the cut and matches pacing, motion, and emotion, returning either the audio or a new video with the score muxed in. Video To Music is an agent skill from sonilo-ai/skills. Score a video with original music using Sonilo — the model watches the cut and matches pacing, motion, and emotion, returning either the audio or a new video with the score muxed in.

When should I use Video To Music?

Video To Music fits situations like: the user has a finished video that needs a soundtrack; tasks that involve Music and audio generation; tasks that involve MCP servers.

How do I install Video To Music in Claude Code?

Run `npx skills add sonilo-ai/skills --skill video-to-music -a claude-code`. Or copy the skill folder (video-to-music in sonilo-ai/skills) into .claude/skills/video-to-music in your project. Claude Code loads it when a task matches its description.

How do I install Video To Music in Codex?

Run `npx skills add sonilo-ai/skills --skill video-to-music -a codex`. Or copy the skill folder (video-to-music in sonilo-ai/skills) into .agents/skills/video-to-music in your project. Codex loads it when a task matches its description.

Can I use Video To Music in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add sonilo-ai/skills --skill video-to-music -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/video-to-music, .gemini/skills/video-to-music, .github/skills/video-to-music and .opencode/skills/video-to-music in your project.

What does Video To Music need to run?

Going by SKILL.md and its folder, Video To Music needs the command-line tools its instructions call (pip, npm and curl) and credentials named SONILO_API_KEY. Our summary lists: Python 3; Node.js; A credential in SONILO_API_KEY. Its frontmatter pre-approves these tools: Bash, Read, Write, mcp__sonilo__*. Compatibility (from SKILL.md): Requires Sonilo through either transport — the MCP server connected, or the `sonilo` CLI installed and signed in — plus credentials: a `sonilo login` sign-in, the hosted OAuth plugin, or SONILO_API_KEY. See the setup-api-key skill..

Does Video To Music access the network?

SKILL.md names 2 domains. In commands or code: api.sonilo.com; the agent is likely to contact it when it follows the instructions. As links in the text: github.com. This is read from the text; nothing was executed.

Is Video To Music safe to install?

Our automated static check of SKILL.md found notes only (pre-approves every shell command (allowed-tools: bash)), nothing it rates as a warning. It is not a guarantee. Review the folder before installing.

What licence does Video To Music use?

Video To Music is published under the MIT licence (declared in SKILL.md). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Video To Music use?

About 4k tokens (SKILL.md is roughly 16k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to Video To Music?

Skills that share tags, products or a category with Video To Music: Resolve Audio (samuelgursky/davinci-resolve-mcp, 3.5k stars), Music (guaardvark/guaardvark, 258 stars), Fal Assets (rehan-remade/universal-modder, 6.5k stars) and Scenario Audio (scenario-labs/skills, 946 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Video To Music?

sonilo-ai (a GitHub organization) maintains it in sonilo-ai/skills, which has 115 GitHub stars. The repository holds 13 skills in this directory. The repository was last updated on October 9, 2026.

Source: sonilo-ai/skills on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.