Use when you have a written implementation plan to execute in a separate session with review checkpoints
npx skills add millord237/10X-Canva-Skills --skill "canva-asset-manager"
Install specific skill from multi-skill repository
# Description
|
# SKILL.md
name: canva-asset-manager
description: |
Upload and manage assets (images, videos, audio) in your Canva account. Use this skill
when user wants to upload files to Canva, manage their asset library, or work with
uploaded media. Handles image, video, and audio uploads. Follows 3-mode workflow.
For organizing uploaded assets use canva-folder-organizer.
Canva Asset Manager
Upload and manage media assets in your Canva account.
Capabilities
- Upload Assets - Upload images, videos, audio from files
- Upload from URL - Import assets from web URLs
- Get Asset Info - View asset metadata
- Update Assets - Rename and tag assets
- Delete Assets - Remove assets (moves to trash)
Supported File Types
Images (Max 50MB)
| Format | Extension | Notes |
|---|---|---|
| JPEG | .jpg, .jpeg |
Best for photos |
| PNG | .png |
Supports transparency |
| GIF | .gif |
Static or animated |
| WebP | .webp |
Modern format |
| HEIC/HEIF | .heic, .heif |
Apple format |
| TIFF | .tiff, .tif |
High quality |
Videos (Max 500MB)
| Format | Extension | Notes |
|---|---|---|
| MP4 | .mp4 |
Most common |
| MOV | .mov |
Apple format |
| AVI | .avi |
Windows format |
| WebM | .webm |
Web format |
| MKV | .mkv |
Container format |
| M4V | .m4v |
Apple format |
| MPEG | .mpeg, .mpg |
Legacy format |
Audio
| Format | Extension |
|---|---|
| MP3 | .mp3 |
| WAV | .wav |
| M4A | .m4a |
| OGG | .ogg |
Available Scripts
Upload from File
# Upload single file
.venv\Scripts\python.exe scripts/upload_asset.py "path/to/image.png"
# With custom name
.venv\Scripts\python.exe scripts/upload_asset.py "path/to/image.png" --name "My Asset"
# Wait for upload to complete
.venv\Scripts\python.exe scripts/upload_asset.py "path/to/video.mp4" --wait
# JSON output
.venv\Scripts\python.exe scripts/upload_asset.py "path/to/file.jpg" --json
Upload from URL (Preview API)
# Upload from URL
.venv\Scripts\python.exe scripts/upload_asset_from_url.py "https://example.com/image.png" --name "Downloaded Image"
# With timeout
.venv\Scripts\python.exe scripts/upload_asset_from_url.py "https://example.com/video.mp4" --name "Video" --timeout 600
Get Asset Info
# Get asset details
.venv\Scripts\python.exe scripts/get_asset.py "asset_id"
# JSON output
.venv\Scripts\python.exe scripts/get_asset.py "asset_id" --json
Update Asset
# Rename asset
.venv\Scripts\python.exe scripts/update_asset.py "asset_id" --name "New Name"
# Set tags
.venv\Scripts\python.exe scripts/update_asset.py "asset_id" --tags "tag1" "tag2" "tag3"
# Add tags to existing
.venv\Scripts\python.exe scripts/update_asset.py "asset_id" --add-tags "new-tag"
# Rename and tag
.venv\Scripts\python.exe scripts/update_asset.py "asset_id" --name "My Logo" --tags "brand" "logo"
Delete Asset
# Delete asset (moves to trash)
.venv\Scripts\python.exe scripts/delete_asset.py "asset_id"
# Force confirm
.venv\Scripts\python.exe scripts/delete_asset.py "asset_id" --confirm
# JSON output
.venv\Scripts\python.exe scripts/delete_asset.py "asset_id" --json
3-Mode Workflow
MODE 1: PLAN
- Verify file format is supported
- Check file size limits
- Determine naming and tagging strategy
MODE 2: CLARIFY
Ask user:
- What should the asset be named?
- Any tags to add for organization?
- Should we wait for upload to complete?
MODE 3: IMPLEMENT
# Execute upload
.venv\Scripts\python.exe scripts/upload_asset.py "input/images/logo.png" --name "Company Logo" --wait
# Output:
# Starting upload...
# Upload job started: job_xxx
# Waiting for upload to complete...
#
# Asset Uploaded Successfully!
# ==================================================
# Asset ID: asset_xxx
# Name: Company Logo
# Type: image
Use Cases
Upload Brand Assets
# Upload logo
.venv\Scripts\python.exe scripts/upload_asset.py "brand/logo.png" --name "Primary Logo"
# Upload with brand tags
.venv\Scripts\python.exe scripts/upload_asset.py "brand/icon.png" --name "Brand Icon"
.venv\Scripts\python.exe scripts/update_asset.py "asset_xxx" --tags "brand" "logo" "icon"
Upload Marketing Images
# Upload product photos
.venv\Scripts\python.exe scripts/upload_asset.py "products/product1.jpg" --name "Product 1"
.venv\Scripts\python.exe scripts/upload_asset.py "products/product2.jpg" --name "Product 2"
Upload from Web
# Download and upload from URL
.venv\Scripts\python.exe scripts/upload_asset_from_url.py "https://example.com/photo.jpg" --name "Stock Photo"
File Size Limits
| Type | Max Size |
|---|---|
| Images | 50 MB |
| Videos | 500 MB |
| URL uploads | 100 MB |
Rate Limits
| Operation | Limit |
|---|---|
| Upload operations | 20-30 requests/user |
| Get asset | 100 requests/user |
| Update asset | 20-30 requests/user |
| Delete asset | 20-30 requests/user |
Error Handling
Unsupported Format
Error: File format not supported
Solution: Convert to supported format (JPG, PNG, MP4, etc.)
File Too Large
Error: File exceeds size limit
Solution: Compress or resize the file
Upload Failed
Error: Upload job failed
Solution: Check file integrity, try re-uploading
Asset vs Design Import
| Operation | Use For | Script |
|---|---|---|
| Asset Upload | Images, Videos (become reusable assets) | upload_asset.py |
| Design Import | PPTX, PDF, AI, PSD (become editable designs) | import_design.py |
Integration
Works with:
- canva-folder-organizer: Organize uploaded assets into folders
- canva-image-editor: Use assets in designs
- canva-video: Use video assets
# Supported AI Coding Agents
This skill is compatible with the SKILL.md standard and works with all major AI coding agents:
Learn more about the SKILL.md standard and how to use these skills with your preferred AI coding agent.