Social Short Video Maker — Open Skill

Social Short Video Maker

Create engaging short vertical videos for social media platforms such as instagram reels, youtube shorts and tiktok. Turn simple ideas into catchy concepts, short scripts, scene by scene visuals, natural voiceovers, captions, and suitable background music. the skill can create different styles of short videos, including emotional stories, short drama, motivational content, educational videos, and entertaining stories, typically 30-60 seconds long.

@mehersheikh496

ShortDrama

13 2 9

https://d7qlwi7tl2u27.cloudfront.net/skill-covers/prod/4198409/2026-09-28/fw9cvc34.png

# Social Short Video Maker

Turns an idea into a complete 30–60 second vertical short for Instagram Reels / YouTube Shorts / TikTok: concept → script → scene visuals → voiceover → captions → background music → final stitched video.

## When to use
- The user wants a short social video (Reels / Shorts / TikTok) from an idea, a one-liner, a niche, or a topic.
- The user wants to redo or tweak one stage of an existing short (rewrite the script, restyle a scene, regenerate the voiceover, change the music, re-mix).

## Reference files
- `references/short-video-template.md`: The concept/script structure and caption guidance. Read it before writing the script.

## Steps
1. **Clarify** (if needed): topic/niche, target platform, tone (funny / educational / inspirational / product), and any reference style. If the user gave a one-liner, expand it into a concrete angle. Default to Instagram Reels / YouTube Shorts, vertical (portrait), 30–60 seconds.
2. **Plan**: call `write_todos` to list the stages (concept+script → scene visuals → voiceover → music → video clips → mix → captions) and update it as you progress.
3. **Concept + script**: read `references/short-video-template.md`, then call `create_document(content=..., name="Concept & Script", entity_type="scripts")`. Include: hook, concept, a scene-by-scene script (each scene with visual description, voiceover line, on-screen caption, and duration summing to 30–60s), and a CTA. Keep the hook in the first 3 seconds.
4. **Scene visuals**: for each scene, call `generate_image(prompt=<scene visual, English, consistent style>, model="t2i", orientation="portrait", entity_type="storyboard_images", name="Scene N")`. Keep character/subject and color grade consistent across scenes.
5. **Voiceover**: call `generate_tts(text=<VO lines>, model="tts.design", voice_instruction=<energetic/calm/authoritative tone matching the video>, entity_type="voiceovers", name="Voiceover")`.
6. **Background music**: call `generate_music(prompt=<genre/mood matching the video, e.g. upbeat lo-fi, cinematic tension>, model="music", entity_type="music", name="Background Music")`.
7. **Video clips**: for each scene image, call `generate_video(prompt=<motion description for that scene>, model="i2v", input_urls=[<scene image asset_id>], orientation="portrait", entity_type="storyboard_videos", name="Clip N")`.
8. **Mix**: call `mix_clips(clips=[{video: {url: <clip1>}, audio: {url: <voiceover>}}, ...], orientation="portrait", entity_type="final_videos", name="Final Short")` to stitch the clips in order and layer the voiceover and background music (add the music as a second audio track with lower volume).
9. **Captions + wrap-up**: provide the on-screen captions (from the script) as a caption list / SRT-style text in your reply, then summarize the final video in natural language (concept, scenes, VO, music, duration). Call `set_guidance` to suggest next steps (e.g. restyle a scene, redo the voiceover, change the music, make another short).

## Notes
- Keep everything vertical: `orientation="portrait"` for images and video.
- Use the fixed `entity_type` values per stage so products don't get mixed on the canvas: `scripts`, `storyboard_images`, `voiceovers`, `music`, `storyboard_videos`, `final_videos`.
- Intermediate products (scene images, clips, voiceover, music) will appear on the canvas — that's expected.
- Video generation does not support NSFW/adult content on any channel; politely decline such requests.
- Report failures honestly and never fabricate URLs or asset IDs — use the actual `asset_id` returned by each tool.
- If the user only wants to change one stage, do just that stage and re-mix if needed — don't regenerate everything.