| name | canva-video |
| description | Create and edit video designs in Canva. Use this skill when user wants to work with
videos, animations, or motion graphics. Handles video creation, editing, timeline
management, and export. Follows 3-mode workflow for safe operations.
For static images use canva-image-editor. For presentations use canva-presentation.
|
| allowed-tools | ["Bash","Read","Write","Edit","AskUserQuestion"] |
Canva Video Skill
QUICK REFERENCE
- Scripts location:
scripts/ (NOT skills/canva-video/scripts/ - those don't exist)
- Auth check:
.venv\Scripts\python.exe scripts/auth_check.py
- Export:
.venv\Scripts\python.exe scripts/export_design.py --id "ID" --format mp4
- API client:
scripts/canva_client.py (import: from canva_client import get_client)
- Sample script:
scripts/samples/sample_canva_operations.py
WARNING: Commands below referencing skills/canva-video/scripts/*.py are WRONG paths.
Write custom Python using canva_client.py. See scripts/samples/sample_canva_operations.py.
Create and edit video designs, animations, and motion graphics in Canva.
Scope of This Skill
This skill handles:
- Video Posts (Instagram, TikTok, YouTube)
- Video Stories
- Video Ads
- Animated Presentations
- Motion Graphics
- Video Intros/Outros
- Animated Logos
- GIF Creation
Operations supported:
- Create new video designs
- Edit video elements
- Manage timeline and duration
- Add/remove video clips
- Add text animations
- Manage audio tracks
- Export to MP4 or GIF
Video Design Types
| Type | Dimensions | Duration |
|---|
| Instagram Reel | 1080x1920 | Up to 90s |
| TikTok Video | 1080x1920 | Up to 3min |
| YouTube Short | 1080x1920 | Up to 60s |
| YouTube Video | 1920x1080 | Variable |
| Facebook Video | 1280x720 | Variable |
| Video Ad | Various | 15-30s |
| Animated Post | 1080x1080 | 5-15s |
| Animated Story | 1080x1920 | 5-15s |
3-Mode Workflow
MODE 1: PLAN
-
Analyze Video Structure
python skills/canva-video/scripts/analyze_video.py \
--id "DESIGN_ID"
-
Document Video Elements
## Video Analysis: "[Name]"
### Overview
- Dimensions: 1080x1920
- Duration: 15 seconds
- Frame Rate: 30fps
### Timeline
| Time | Element | Type | Duration |
|------|---------|------|----------|
| 0-3s | Intro | Animation | 3s |
| 3-10s | Main Content | Video Clip | 7s |
| 10-13s | Text Overlay | Animated Text | 3s |
| 13-15s | CTA | Animation | 2s |
### Audio
- Background Music: "Upbeat Track" (15s)
- Voiceover: None
### Proposed Changes
1. Extend duration to 20 seconds
2. Add new text at 15-18s
3. Replace background music
MODE 2: CLARIFY
Video-specific questions:
-
Timing
- "At what timestamp should this appear?"
- "How long should it stay on screen?"
-
Animation
- "What animation style? (fade, slide, bounce)"
- "Should text animate in word-by-word or all at once?"
-
Audio
- "Keep current background music?"
- "Should audio fade out at the end?"
-
Export
- "What quality/resolution for export?"
- "Include audio in export?"
MODE 3: IMPLEMENT
python skills/canva-video/scripts/add_text.py \
--design "DESIGN_ID" \
--text "Your Message Here" \
--start 5.0 \
--duration 3.0 \
--animation "fade-in"
python skills/canva-video/scripts/add_clip.py \
--design "DESIGN_ID" \
--clip "path/to/video.mp4" \
--start 0.0 \
--trim-start 2.0 \
--trim-end 10.0
python skills/canva-video/scripts/update_timing.py \
--design "DESIGN_ID" \
--element "ELEMENT_ID" \
--start 3.0 \
--duration 5.0
python skills/canva-video/scripts/set_duration.py \
--design "DESIGN_ID" \
--duration 20.0
python skills/canva-video/scripts/add_audio.py \
--design "DESIGN_ID" \
--audio "path/to/music.mp3" \
--volume 0.5 \
--loop true
Available Scripts
Analysis Scripts
analyze_video.py - Full video breakdown
get_timeline.py - Timeline elements and timing
extract_frames.py - Get keyframes as images
get_audio_info.py - Audio track details
Edit Scripts
add_text.py - Add animated text
add_clip.py - Insert video clip
add_image.py - Add static or animated image
add_audio.py - Add music/voiceover
update_timing.py - Change element timing
update_animation.py - Change animation style
set_duration.py - Change total duration
remove_element.py - Delete element from timeline
Creation Scripts
create_video.py - New blank video
create_from_template.py - From Canva template
Animation Types
Text animations:
fade-in / fade-out
slide-up / slide-down / slide-left / slide-right
zoom-in / zoom-out
bounce
typewriter
wipe
pop
Element animations:
pan - Move across screen
ken-burns - Slow zoom on images
rotate
scale
baseline - None (static)
Audio Handling
python skills/canva-video/scripts/add_audio.py \
--design "DESIGN_ID" \
--audio "music.mp3" \
--type "background" \
--volume 0.3
python skills/canva-video/scripts/add_audio.py \
--design "DESIGN_ID" \
--audio "voiceover.mp3" \
--type "voiceover" \
--start 2.0
python skills/canva-video/scripts/update_audio.py \
--design "DESIGN_ID" \
--audio-id "AUDIO_ID" \
--fade-in 1.0 \
--fade-out 2.0
Video Export
Use canva-export skill with these options:
- MP4 - Standard video format
- GIF - Animated GIF (no audio)
- WebM - Web-optimized video
Quality options:
720p - 1280x720, smaller file
1080p - 1920x1080, standard
4K - 3840x2160, highest quality
Timeline Best Practices
- Leave breathing room - Don't cram too many elements
- Text timing - 2-3 seconds minimum for readability
- Transitions - Use sparingly, keep consistent
- Audio levels - Music lower than voiceover
- CTA timing - Save call-to-action for end
Safety Guidelines
- Preview before export - Check timing looks right
- Backup audio - Keep original audio files
- Version control - Duplicate before major changes
- File sizes - Be aware of upload limits
Example Interactions
"Add text that says 'Shop Now' at the end"
[PLAN]
- Video is 15 seconds
- Add "Shop Now" at 12-15s
- Recommend animation style
[CLARIFY]
- "Add at 12s, display for 3s until end?"
- "Animation style: 'pop' or 'slide-up'?"
- "Font and color preferences?"
[IMPLEMENT]
- Add text element
- Apply animation
- Verify timing
"Replace the background music"
[PLAN]
- Current music: "Upbeat.mp3" (15s)
- Need new music file
[CLARIFY]
- "What music file should I use?"
- "Same volume level?"
- "Fade in/out at ends?"
[IMPLEMENT]
- Remove current audio
- Add new audio track
- Apply fades if requested
Output Files
output/videos/ - Exported videos
output/frames/ - Extracted keyframes
output/audio/ - Extracted audio
output/logs/video_edits.json - Edit history