Ffmpeg Video To Mp3

Turn raw video files into clean, ready-to-use MP3 audio tracks in seconds. This ffmpeg-video-to-mp3 skill strips the audio layer from your footage and delive...

MIT-0 · Free to use, modify, and redistribute. No attribution required.
0 · 9 · 0 current installs · 0 all-time installs
bypeandrover adam@peandrover
MIT-0
Security Scan
VirusTotalVirusTotal
Benign
View report →
OpenClawOpenClaw
Benign
high confidence
Purpose & Capability
The skill claims to perform server-side FFmpeg-based audio extraction and its requirements (NEMO_TOKEN, NemoVideo API domain, ~/.config/nemovideo/) align with a cloud conversion service. There are no unrelated credentials or binaries requested.
Instruction Scope
Runtime instructions direct the agent to create/read ~/.config/nemovideo/client_id (UUID) if needed, obtain or use NEMO_TOKEN, create a session, upload user-supplied video files or URLs, and poll SSE/export endpoints. This is consistent with a remote conversion service. Note: the instructions also advise constructing a claim link that embeds the token in the URL (https://nemovideo.com/workspace/claim?token=...), which could expose the token in browser history or logs and is a privacy/credential-exposure risk even if functionally coherent.
Install Mechanism
No install spec or third-party downloads are present (instruction-only skill). Nothing is written to disk except the small config file the skill explicitly manages (~/.config/nemovideo/client_id), which is declared in metadata.
Credentials
Only a single service credential (NEMO_TOKEN) is required, which is appropriate for calling a third-party API. The skill will attempt to obtain a short-lived anonymous token if none is present by POSTing with a client id stored under ~/.config/nemovideo/, which is consistent with the described behavior. Users should note that tokens are used in API calls and may be embedded in claim URLs.
Persistence & Privilege
always is false and the skill does not request system-wide privileges. The only persistent artifact the instructions create/read is a client_id under ~/.config/nemovideo/, which is scoped to the service and matches the declared configPaths.
Assessment
This skill uploads files to a NemoVideo service and requires a NEMO_TOKEN (or will generate/use an anonymous starter token after creating ~/.config/nemovideo/client_id). Before installing, consider: 1) privacy — your video/audio will be sent to a third party for processing; avoid sending sensitive recordings unless you trust NemoVideo and have reviewed their privacy/retention policies; 2) token exposure — the skill suggests generating a claim URL that includes the token, which can leak the token in browser history or logs; prefer workflows that do not embed credentials in URLs; 3) inspect ~/.config/nemovideo/ if you want to control what is written locally; and 4) if you require local-only processing, do not install this cloud-based skill. If any of these points are unacceptable, do not enable the skill or provide the token.

Like a lobster shell, security has layers — review code before you run it.

Current versionv1.0.0
Download zip
latestvk97b7t1dejtv03knk729xqv1z183zkjq

License

MIT-0
Free to use, modify, and redistribute. No attribution required.

Runtime requirements

🎵 Clawdis
EnvNEMO_TOKEN
Primary envNEMO_TOKEN

SKILL.md

Getting Started

Hey there! Ready to pull the audio from your video? Drop in your mp4, mov, avi, webm, or mkv file and I'll convert it to a clean MP3 for you — just tell me your file and any bitrate preferences to get started.

Try saying:

  • "Convert this mp4 interview recording to an MP3 at 192kbps for my podcast episode."
  • "Extract the audio from my webinar.mkv file and save it as a high-quality MP3."
  • "I have a mov file from my iPhone — can you pull the audio out as an MP3 with a small file size?"

Getting Connected

Before handling any user request, establish a connection to the NemoVideo backend. Show a brief status like "Connecting...".

If NEMO_TOKEN is in the environment, use it directly and create a session. Otherwise, acquire a free starter token:

  • Ensure a client identifier exists at ~/.config/nemovideo/client_id (create one as a UUID if needed)
  • POST to https://mega-api-prod.nemovideo.ai/api/auth/anonymous-token with the X-Client-Id header
  • The response includes a token with 100 free credits valid for 7 days — use it as NEMO_TOKEN

Then create a session by POSTing to /api/tasks/me/with-session/nemo_agent with Bearer authorization and body {"task_name":"project","language":"en"}. The session_id in the response is needed for all following requests.

Tell the user you're ready. Keep the technical details out of the chat.

Pull Studio-Quality Audio Straight From Your Video

You shot the perfect interview, recorded a live session, or captured a webinar — but now you need just the audio. This skill takes any video file and extracts the audio track as a fully encoded MP3, ready to upload, edit, or share. No re-encoding artifacts, no silent gaps, just the audio exactly as it existed in the original footage.

Whether you're a podcaster who records video calls and needs the audio-only version, a content creator repurposing YouTube videos for a podcast feed, or a video editor who needs to hand off a music or voiceover track separately, this skill fits naturally into your workflow. Drop in your file, specify your preferences, and get your MP3 back fast.

Support covers the most common video containers — mp4, mov, avi, webm, and mkv — so regardless of how your footage was captured or exported, the conversion just works. Bitrate control is also available, giving you the flexibility to optimize for file size or maximum audio fidelity depending on where the file is headed.

Routing Your Conversion Requests

When you drop a video file or URL into the chat, the skill parses your intent and routes the extraction job to the appropriate FFmpeg pipeline based on format, bitrate preferences, and any codec flags you specify.

User says...ActionSkip SSE?
"export" / "导出" / "download" / "send me the video"→ §3.5 Export
"credits" / "积分" / "balance" / "余额"→ §3.3 Credits
"status" / "状态" / "show tracks"→ §3.4 State
"upload" / "上传" / user sends file→ §3.2 Upload
Everything else (generate, edit, add BGM…)→ §3.1 SSE

NemoVideo API Reference

The NemoVideo backend spins up a containerized FFmpeg instance that demuxes your source container — whether MKV, MP4, MOV, or AVI — strips the video stream, and re-encodes or losslessly extracts the audio track to MP3 at your target bitrate (up to 320kbps CBR). All processing happens server-side, so no local FFmpeg installation is required.

Skill attribution — read from this file's YAML frontmatter at runtime:

  • X-Skill-Source: ffmpeg-video-to-mp3
  • X-Skill-Version: from frontmatter version
  • X-Skill-Platform: detect from install path (~/.clawhub/clawhub, ~/.cursor/skills/cursor, else unknown)

All requests must include: Authorization: Bearer <NEMO_TOKEN>, X-Skill-Source, X-Skill-Version, X-Skill-Platform. Missing attribution headers will cause export to fail with 402.

API base: https://mega-api-prod.nemovideo.ai

Create session: POST /api/tasks/me/with-session/nemo_agent — body {"task_name":"project","language":"<lang>"} — returns task_id, session_id. After creating a session, give the user a link: https://nemovideo.com/workspace/claim?token=$TOKEN&task=<task_id>&session=<session_id>&skill_name=ffmpeg-video-to-mp3&skill_version=1.0.0&skill_source=<platform>

Send message (SSE): POST /run_sse — body {"app_name":"nemo_agent","user_id":"me","session_id":"<sid>","new_message":{"parts":[{"text":"<msg>"}]}} with Accept: text/event-stream. Max timeout: 15 minutes.

Upload: POST /api/upload-video/nemo_agent/me/<sid> — file: multipart -F "files=@/path", or URL: {"urls":["<url>"],"source_type":"url"}

Credits: GET /api/credits/balance/simple — returns available, frozen, total

Session state: GET /api/state/nemo_agent/me/<sid>/latest — key fields: data.state.draft, data.state.video_infos, data.state.generated_media

Export (free, no credits): POST /api/render/proxy/lambda — body {"id":"render_<ts>","sessionId":"<sid>","draft":<json>,"output":{"format":"mp4","quality":"high"}}. Poll GET /api/render/proxy/lambda/<id> every 30s until status = completed. Download URL at output.url.

Supported formats: mp4, mov, avi, webm, mkv, jpg, png, gif, webp, mp3, wav, m4a, aac.

SSE Event Handling

EventAction
Text responseApply GUI translation (§4), present to user
Tool call/resultProcess internally, don't forward
heartbeat / empty data:Keep waiting. Every 2 min: "⏳ Still working..."
Stream closesProcess final response

~30% of editing operations return no text in the SSE stream. When this happens: poll session state to verify the edit was applied, then summarize changes to the user.

Backend Response Translation

The backend assumes a GUI exists. Translate these into API actions:

Backend saysYou do
"click [button]" / "点击"Execute via API
"open [panel]" / "打开"Query session state
"drag/drop" / "拖拽"Send edit via SSE
"preview in timeline"Show track summary
"Export button" / "导出"Execute export workflow

Draft field mapping: t=tracks, tt=track type (0=video, 1=audio, 7=text), sg=segments, d=duration(ms), m=metadata.

Timeline (3 tracks): 1. Video: city timelapse (0-10s) 2. BGM: Lo-fi (0-10s, 35%) 3. Title: "Urban Dreams" (0-3s)

Error Handling

CodeMeaningAction
0SuccessContinue
1001Bad/expired tokenRe-auth via anonymous-token (tokens expire after 7 days)
1002Session not foundNew session §3.0
2001No creditsAnonymous: show registration URL with ?bind=<id> (get <id> from create-session or state response when needed). Registered: "Top up at nemovideo.ai"
4001Unsupported fileShow supported formats
4002File too largeSuggest compress/trim
400Missing X-Client-IdGenerate Client-Id and retry (see §1)
402Free plan export blockedSubscription tier issue, NOT credits. "Register at nemovideo.ai to unlock export."
429Rate limit (1 token/client/7 days)Retry in 30s once

Use Cases

Podcast Production: Many podcasters record their guest interviews over video calls. Rather than keeping the full video file, this skill lets you extract just the audio track as an MP3, ready to drop into your editing timeline or upload directly to your hosting platform.

Content Repurposing: If you publish video content on YouTube or social media, converting those videos to MP3 lets you distribute the same content on podcast platforms or audio apps without re-recording anything. One shoot, multiple formats.

Music and Live Performance Recordings: Videographers who capture live concerts or rehearsals can use this skill to deliver an MP3 of the performance to artists or clients alongside the video — useful for demos, archives, or promotional material.

E-Learning and Training: Course creators who record video lessons can extract the audio tracks so learners have an MP3 version to listen to on the go, extending the reach of existing content without extra production work.

FAQ

What video formats are supported? This skill handles mp4, mov, avi, webm, and mkv files — the most widely used video containers across cameras, phones, screen recorders, and editing software.

Can I control the MP3 bitrate? Yes. You can specify a target bitrate such as 128kbps for smaller files or 320kbps for maximum audio quality. If you don't specify, a sensible default is applied automatically.

Will the audio quality degrade during conversion? The audio is extracted directly from the video's existing audio stream. As long as the source file has a decent audio track, the resulting MP3 will reflect that quality accurately.

What if my video has multiple audio tracks? You can specify which audio track to extract — for example, if a video has both a main mix and a commentary track, just mention which one you want in your request and the correct stream will be targeted.

Files

1 total
Select a file
Select a file to preview.

Comments

Loading comments…