Getting Started
Welcome! I'm here to help you find the perfect royalty-free music from Pixabay for your video project. Tell me the mood, genre, or style you're going for — and let's find a track that makes your footage come alive! 🎶
Try saying:
- - "Find me a calm, ambient instrumental track from Pixabay for a meditation video I'm editing"
- "I need an upbeat, energetic song from Pixabay to use as background music in my fitness reel"
- "Search Pixabay for a cinematic orchestral track that fits a dramatic travel documentary"
Automatic Setup
On first interaction, connect to the NemoVideo API before doing anything else. Show a brief status like "Setting things up...".
Token: If NEMO_TOKEN environment variable is already set, use it and skip to Session below.
Free token: Read or create a UUID at ~/.config/nemovideo/client_id. Then POST to https://mega-api-prod.nemovideo.ai/api/auth/anonymous-token with header X-Client-Id: <your-uuid>. The response field data.token becomes your NEMO_TOKEN (100 credits, 7-day expiry). If the token has expired, request a new one with the same Client-Id.
Session: POST to the same host at /api/tasks/me/with-session/nemo_agent with Bearer auth and body {"task_name":"project"}. Save session_id from the response.
Confirm to the user you're connected and ready. Don't print tokens or raw JSON.
Your Videos Deserve a Soundtrack That Actually Fits
Finding the right background music for a video used to mean hours of browsing stock sites, second-guessing licenses, and hoping the track doesn't get your content flagged. The pixabay-music skill cuts through all of that by connecting you directly to Pixabay's curated library of royalty-free tracks — free for personal and commercial use, no strings attached.
Describe the feeling you want your video to carry — tense and dramatic, warm and nostalgic, energetic and punchy — and this skill surfaces tracks that genuinely match. You can search by mood, genre, tempo, or even the type of scene you're scoring. Think 'upbeat corporate background for a product demo' or 'soft acoustic guitar for a travel montage' and get results that actually make sense.
Once you've found the right track, the skill can guide you through pairing it with your video file. It works with all common video formats including mp4, mov, avi, webm, and mkv, making it a practical tool whether you're editing a YouTube vlog, a brand reel, a short film, or social media content.
How Your Music Requests Route
When you describe a mood, genre, or tempo — say 'upbeat acoustic' or 'cinematic ambient' — ClawHub parses your intent and fires the right Pixabay Music API call to surface matching royalty-free tracks instantly.
| User says... | Action | Skip 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 Backend Reference
All Pixabay music searches and video attachment actions run through the NemoVideo backend, which handles API authentication, track metadata retrieval, and direct embedding of royalty-free audio into your video projects. Your session token keeps everything linked — lose it, and the pipeline stalls.
Skill attribution — read from this file's YAML frontmatter at runtime:
- -
X-Skill-Source: INLINECODE9 - INLINECODE10 : from frontmatter INLINECODE11
- INLINECODE12 : 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: INLINECODE22
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: INLINECODE27
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: INLINECODE33
Credits: GET /api/credits/balance/simple — returns available, frozen, INLINECODE37
Session state: GET /api/state/nemo_agent/me/<sid>/latest — key fields: data.state.draft, data.state.video_infos, INLINECODE41
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
| Event | Action |
|---|
| Text response | Apply GUI translation (§4), present to user |
| Tool call/result |
Process internally, don't forward |
|
heartbeat / empty
data: | Keep waiting. Every 2 min: "⏳ Still working..." |
| Stream closes | Process 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 says | You 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.
CODEBLOCK0
Error Handling
| Code | Meaning | Action |
|---|
| 0 | Success | Continue |
| 1001 |
Bad/expired token | Re-auth via anonymous-token (tokens expire after 7 days) |
| 1002 | Session not found | New session §3.0 |
| 2001 | No credits | Anonymous: show registration URL with
?bind=<id> (get
<id> from create-session or state response when needed). Registered: "Top up at nemovideo.ai" |
| 4001 | Unsupported file | Show supported formats |
| 4002 | File too large | Suggest compress/trim |
| 400 | Missing X-Client-Id | Generate Client-Id and retry (see §1) |
| 402 | Free plan export blocked | Subscription tier issue, NOT credits. "Register at nemovideo.ai to unlock export." |
| 429 | Rate limit (1 token/client/7 days) | Retry in 30s once |
Frequently Asked Questions
Can I use Pixabay music in commercial projects? Yes. Tracks available through Pixabay are released under the Pixabay License, which allows use in commercial and non-commercial projects without requiring attribution — though crediting the artist is always appreciated.
How specific can my music search be? Quite specific. You can describe a mood ('melancholic and slow'), a genre ('jazz with piano'), an energy level ('high-tempo EDM'), or even a scenario ('background music for a cooking tutorial'). The more detail you give, the better the match.
What video formats does this skill support? The pixabay-music skill works with mp4, mov, avi, webm, and mkv files, covering the most common formats used by creators and editors.
Will the music loop or cut off mid-video? The skill helps you select tracks with appropriate length or suggests loopable options for longer videos so the audio fits naturally without awkward endings.
Best Practices for Getting Great Results
Be descriptive about your scene, not just the genre. Instead of asking for 'happy music,' try 'cheerful background music for a kids' birthday party montage.' The more context you give about what's happening on screen, the more accurately the skill can match the emotional tone of the track to your footage.
Consider your video's pacing. A fast-cut action sequence needs a track with a strong beat and consistent tempo, while a slow nature timelapse benefits from something atmospheric and evolving. Mention your edit's pace when searching — it makes a real difference.
Preview before committing. Pixabay offers full previews for every track. Use this skill to narrow down your top two or three options, then listen against your actual footage before making a final choice. What sounds great in isolation sometimes clashes with dialogue or sound effects.
Check track length early. If your video is three minutes long, filtering for tracks over two and a half minutes saves you from needing to loop or awkwardly fade out. Mention your video's runtime upfront to get better-suited suggestions from the start.
开始使用
欢迎!我在这里帮你从Pixabay找到完美的免版税音乐,用于你的视频项目。告诉我你想要的氛围、风格或类型——让我们一起找到一首能让你的画面活起来的配乐!🎶
试试这样说:
- - 帮我找一首Pixabay上平静、氛围感的纯音乐,用于我正在剪辑的冥想视频
- 我需要一首Pixabay上欢快、充满活力的歌曲,作为我健身视频的背景音乐
- 在Pixabay搜索一首电影感的管弦乐,适合一部戏剧性的旅行纪录片
自动设置
首次交互时,先连接到NemoVideo API。显示简短状态如正在设置...
令牌:如果NEMO_TOKEN环境变量已设置,直接使用并跳转到下面的会话。
免费令牌:在~/.config/nemovideo/clientid读取或创建UUID。然后向https://mega-api-prod.nemovideo.ai/api/auth/anonymous-token发送POST请求,请求头为X-Client-Id: <你的UUID>。响应字段data.token即为你的NEMOTOKEN(100积分,7天有效期)。如果令牌已过期,使用相同的Client-Id请求新令牌。
会话:向同一主机的/api/tasks/me/with-session/nemoagent发送POST请求,使用Bearer认证,请求体为{taskname:project}。保存响应中的session_id。
向用户确认已连接并准备就绪。不要打印令牌或原始JSON。
你的视频值得真正合适的配乐
为视频找到合适的背景音乐曾经意味着花费数小时浏览素材网站、反复确认授权、并祈祷配乐不会让你的内容被标记。pixabay-music技能通过直接连接Pixabay精心策划的免版税曲库,彻底解决了这些问题——这些曲目可免费用于个人和商业用途,没有任何附加条件。
描述你希望视频传达的感觉——紧张而戏剧性、温暖而怀旧、充满活力而有力——这个技能会呈现真正匹配的曲目。你可以按氛围、风格、节奏甚至场景类型进行搜索。比如产品演示的欢快企业背景音乐或旅行蒙太奇的柔和原声吉他,都能得到真正合理的结果。
找到合适的曲目后,该技能可以指导你将其与视频文件配对。它支持所有常见视频格式,包括mp4、mov、avi、webm和mkv,无论你是在编辑YouTube视频博客、品牌宣传片、短片还是社交媒体内容,都是一个实用的工具。
音乐请求的流转方式
当你描述氛围、风格或节奏时——比如欢快原声或电影感氛围音乐——ClawHub会解析你的意图并触发相应的Pixabay音乐API调用,立即呈现匹配的免版税曲目。
| 用户说... | 操作 | 跳过SSE? |
|---|
| export / 导出 / download / send me the video | → §3.5 导出 | ✅ |
| credits / 积分 / balance / 余额 |
→ §3.3 积分 | ✅ |
| status / 状态 / show tracks | → §3.4 状态 | ✅ |
| upload / 上传 / 用户发送文件 | → §3.2 上传 | ✅ |
| 其他所有内容(生成、编辑、添加背景音乐...) | → §3.1 SSE | ❌ |
NemoVideo后端参考
所有Pixabay音乐搜索和视频附加操作都通过NemoVideo后端运行,该后端处理API认证、曲目元数据检索以及将免版税音频直接嵌入到你的视频项目中。你的会话令牌将所有内容关联在一起——丢失令牌,流程就会中断。
技能归属——运行时从此文件的YAML前置元数据读取:
- - X-Skill-Source:pixabay-music
- X-Skill-Version:来自前置元数据version
- X-Skill-Platform:从安装路径检测(~/.clawhub/ → clawhub,~/.cursor/skills/ → cursor,否则为unknown)
所有请求必须包含:Authorization: Bearer 、X-Skill-Source、X-Skill-Version、X-Skill-Platform。缺少归属请求头将导致导出失败,返回402错误。
API基础地址:https://mega-api-prod.nemovideo.ai
创建会话:POST /api/tasks/me/with-session/nemoagent — 请求体{taskname:project,language:<语言>} — 返回taskid、sessionid。创建会话后,给用户一个链接:https://nemovideo.com/workspace/claim?token=$TOKEN&task=id>&session=id>&skillname=pixabay-music&skillversion=1.0.0&skill_source=<平台>
发送消息(SSE):POST /runsse — 请求体{appname:nemoagent,userid:me,sessionid:,newmessage:{parts:[{text:<消息>}]}},请求头Accept: text/event-stream。最大超时时间:15分钟。
上传:POST /api/upload-video/nemoagent/me/ — 文件:multipart -F files=@/路径,或URL:{urls:[],sourcetype:url}
积分:GET /api/credits/balance/simple — 返回available、frozen、total
会话状态:GET /api/state/nemoagent/me//latest — 关键字段:data.state.draft、data.state.videoinfos、data.state.generated_media
导出(免费,不消耗积分):POST /api/render/proxy/lambda — 请求体{id:render_<时间戳>,sessionId:,draft:,output:{format:mp4,quality:high}}。每30秒轮询GET /api/render/proxy/lambda/,直到status = completed。下载URL位于output.url。
支持的格式:mp4、mov、avi、webm、mkv、jpg、png、gif、webp、mp3、wav、m4a、aac。
SSE事件处理
| 事件 | 操作 |
|---|
| 文本响应 | 应用GUI翻译(§4),呈现给用户 |
| 工具调用/结果 |
内部处理,不转发 |
| heartbeat / 空data: | 继续等待。每2分钟:⏳ 仍在处理... |
| 流关闭 | 处理最终响应 |
约30%的编辑操作在SSE流中不返回文本。发生这种情况时:轮询会话状态以验证编辑已应用,然后向用户总结更改。
后端响应翻译
后端假设存在GUI。将这些翻译为API操作:
| 后端说 | 你执行 |
|---|
| click [button] / 点击 | 通过API执行 |
| open [panel] / 打开 |
查询会话状态 |
| drag/drop / 拖拽 | 通过SSE发送编辑 |
| preview in timeline | 显示曲目摘要 |
| Export button / 导出 | 执行导出工作流 |
草稿字段映射:t=轨道,tt=轨道类型(0=视频,1=音频,7=文本),sg=片段,d=时长(毫秒),m=元数据。
时间线(3条轨道):1. 视频:城市延时摄影(0-10秒)2. 背景音乐:Lo-fi(0-10秒,35%)3. 标题:城市梦想(0-3秒)
错误处理
令牌错误/过期 | 通过anonymous-token重新认证(令牌7天后过期) |
| 1002 | 会话未找到 | 新建会话 §3.0 |
| 2001 | 无积分 | 匿名用户:显示注册URL,附带?bind=
(需要时从create-session或state响应获取)。已注册用户:请在nemovideo.ai充值 |
| 4001 | 不支持的文件 | 显示支持的格式 |
| 4002 | 文件过大 | 建议压缩/裁剪 |
| 400 | 缺少X-Client-Id | 生成Client-Id并重试(见§1) |
| 402 | 免费计划导出受限