decocms/storefront-skills/video
Claude Code and agent skill by decocms/storefront-skills
- community
Checking that the SKILL.md file is still in the repository.
Understand and configure video in deco.cx storefronts — the Video component, autoplay, and especially audio/sound. Use when the user asks about video, video sound, audio, "video with no sound", "video is silent", "how to unmute", muted, autoplay, or how to enable sound on an uploaded video.
Install
npx vskill@latest install decocms/storefront-skills/videoSKILL.md
Video in deco.cx
Deco serves uploaded videos through its media server at https://decoims.com. The most common question about video is "why does my video have no sound?" — the short answer is that deco strips the audio track by default and you re-enable it with ?muted=false.
Why videos are silent by default
When a video is uploaded to a deco storefront, the media server (decoims.com) serves an audio-stripped version by default. This keeps the file small and is what browsers need for muted autoplay.
The behavior is controlled by a muted query parameter on the media URL:
| URL | Audio track | File size (example) | |
|---|---|---|---|
.../video.mp4 (no param) | removed — silent | 3.08 MB | |
.../video.mp4?muted=true | removed — silent | 3.08 MB | |
.../video.mp4?muted=false | present — has sound | 3.59 MB |
The version with sound is a physically different (larger) file — the audio is genuinely absent from the default one, not just muted in the player. So no player setting will bring the sound back unless the URL requests the audio version.
Enable sound
Option A — media URL (always works): append ?muted=false to the video URL.
Option B — CMS panel (no code): in the deco Admin, open the section/page holding the video and turn off the video's muted option. The CMS then serves the URL with ?muted=false. The exact label depends on the section, but it maps to the same media parameter.
Browser autoplay vs. sound — the important caveat
Getting the audio version of the file (?muted=false) is only half the story. Browsers block autoplay of videos that have sound. A video will only autoplay if it is muted; to play with sound it needs a user gesture (click/tap) or controls.
So there are two independent layers:
- The file — does the served
.mp4contain an audio track? Controlled by?muted=falseon the media URL (deco media server). - The player — is the
<video>element muted / autoplaying? Controlled by themutedandautoPlayHTML attributes.
Common combinations:
| Goal | File | <video> attributes | |
|---|---|---|---|
| Silent background loop (autoplays) | default (muted=true) | autoPlay muted loop playsInline | |
| Plays with sound after user clicks | ?muted=false | controls (no autoPlay), or unmute on interaction | |
| Autoplays, user can unmute | ?muted=false | autoPlay muted loop + an unmute button that sets video.muted = false |
You cannot have a video that autoplays and starts with audible sound — that is a browser policy, not a deco limitation.
The Video component
Import: apps/website/components/Video.tsx
It renders a native <video> and spreads all standard video attributes through ({...props}), so any HTML <video> attribute works directly:
| Prop | Type | Notes | |
|---|---|---|---|
src | string | Media URL — add ?muted=false here for sound | |
width / height | number | Required; used for srcset | |
muted | boolean | Player-level mute (needed for autoplay) | |
autoPlay | boolean | Only works when muted is also set | |
loop | boolean | Repeat playback | |
controls | boolean | Show native player controls | |
playsInline | boolean | Prevents iOS fullscreen takeover | |
loading | string | Defaults to "lazy" | |
forceOptimizedSrc | boolean | Route src through the deco media optimizer |
Troubleshooting: "the video has no sound"
- Check the media URL. If it ends in
.mp4with no?muted=false, the served file has no audio track. → Add?muted=false, or turn offmutedfor that video in the CMS panel. - Check the player. If the URL already has
?muted=falsebut it is still silent, the<video>element is probablymuted(required if it alsoautoPlays). → Removemuted/autoPlay, addcontrols, or add an unmute button. Remember: autoplay-with-sound is blocked by browsers. - Verify. Open the media URL with
?muted=falsedirectly in a browser tab — it should now play with audio (and download a slightly larger file than the default URL).
Caching note
Videos are served with Cache-Control: public, max-age=31536000, immutable (1 year). The muted and non-muted variants are cached under different URLs, so switching ?muted=false fetches a fresh, separately-cached file — no cache-busting needed.
Security
- Security scanPassed, 90 of 100Pattern checks on the skill's files.
- Model reviewPassed
Quality evaluation
- Task evaluationNot runNo evaluation yet. Run one in Skill Studio.
Source
- SKILL.md in the repositoryChecking.claude-deco/skills/video/SKILL.md
Popularity
- 7-day trend score
- 0
Not refreshed yet.
Works with
Any agent vskill installs to: 56 targets in all. These 39 have a page on this site.
- Claude Code
- Cursor
- GitHub Copilot
- Windsurf
- Codex
- Gemini CLI
- Cline
- Amp
- Roo Code
- Goose
- Continue
- Kilo Code
- Junie
- Trae
- OpenHands
- Qwen Code
- AI Agent
- Tabnine Chat
- Sourcegraph Cody
- Amazon Q
- Firebase Genkit
- Sweep
- Devin
- Phind
- Mentat
- Claude Desktop
- Aider
- GPT Pilot
- Plandex
- bolt.new
- v0
- Replit Agent
- Anse
- TypingMind
- BetterChatGPT
- LibreChat
- Warp AI
- Pieces
- Fig AI
Embed badge
[](https://verified-skill.com/skills/decocms/storefront-skills/video)