Install
openclaw skills install vislaCreates AI-generated videos from text scripts, URLs, or PPT/PDF documents using Visla. Use when the user asks to generate a video, turn a webpage into a video, or convert a PPT/PDF into a video, or when the user asks to check Visla account credits/balance.
openclaw skills install vislaVersion: 260501-1423
Create AI-generated videos from text scripts, web URLs, or documents (PPT/PDF) using Visla's OpenAPI.
Credentials (NEVER output API keys/secrets in responses):
IMPORTANT: Never output API keys/secrets in responses.
~/.config/visla/.credentials exists (do NOT read it yet).~/.config/visla/.credentials?"
Options: Allow / NoVISLA_API_KEY, VISLA_API_SECRET)--key, --secret)VISLA_CLI_ERROR_CODE=missing_credentials or
VISLA_CLI_ERROR_CODE=auth_failed, ask the user to re-enter valid credentials.Only process local files (scripts/docs) explicitly provided by the user, and remind users to avoid uploading sensitive data.
Credential validity check (practical):
account fails with VISLA_CLI_ERROR_CODE=missing_credentials or
VISLA_CLI_ERROR_CODE=auth_failed, treat credentials as invalid and ask the user to provide real ones.File format (bash/zsh):
export VISLA_API_KEY="your_key"
export VISLA_API_SECRET="your_secret"
For PowerShell (temporary session):
$env:VISLA_API_KEY = "your_key"
$env:VISLA_API_SECRET = "your_secret"
Scripts: scripts/visla_cli.py (Python), scripts/visla_cli.sh (Bash)
Default strategy:
Bash (recommended on macOS; also works on Linux-like environments):
# With user consent, you may source ~/.config/visla/.credentials
export VISLA_API_KEY="your_key"
export VISLA_API_SECRET="your_secret"
./scripts/visla_cli.sh <command>
Python (cross-platform):
python3 scripts/visla_cli.py --key "your_key" --secret "your_secret" <command>
# Or, credentials are auto-detected from ~/.config/visla/.credentials (with user consent):
python3 scripts/visla_cli.py <command>
Windows native (PowerShell/CMD without Bash; Python):
# PowerShell
$env:VISLA_API_KEY = "your_key"
$env:VISLA_API_SECRET = "your_secret"
python scripts/visla_cli.py <command>
Windows note:
python scripts/visla_cli.py script "Scene 1: ..."- (recommended, no temp files):
@"
Scene 1: ...
Scene 2: ...
"@ | python scripts/visla_cli.py script -
py -3 scripts/visla_cli.py <command> may work better than python.~/.config/visla/.credentials when present.%USERPROFILE%\\.config\\visla\\.credentials.Note: do not print credentials. Prefer environment variables or auto-detected credentials with explicit user consent.
| Command | Description |
|---|---|
/visla script <script-or-@file> | Create video from a script (text or a local file) |
/visla url <URL> | Create video from web page URL |
/visla doc <file> | Create video from document (PPT/PDF) |
/visla idea <text-or-@file> | Create video from an idea |
/visla visual <file> [file ...] | Create video from visual resources (images/videos), supports multiple files |
/visla speech <file> [file ...] | Create video from speech (audio/video file), supports multiple files |
/visla account | Show account info and credit balance |
/visla avatar | List available AI avatars |
/visla voice | List available AI voices |
Important: For avatar and voice commands:
./visla_cli.sh avatar or ./visla_cli.sh voice).avatar: remove Thumbnail: linesvoice: remove URL: lines- AvatarName (n): Look1 (uuid), Look2 (uuid), ...**Female (16):**
- Emma (5): Blue Dress (1000145), Patterned Dress (1000146), Black Blazer (1000147), Light Gray Blazer (1000148), Emerald Green Pantsuit (1000149)
| Parameter | Description |
|---|---|
-c, --config <file> | Path to JSON config file with video options |
--avatar <id> | Avatar ID to use for the video (get list from avatar command) |
--voice <id> | Voice ID to use for the video (get list from voice command) |
| Parameter | Description |
|---|---|
--script, -s <text> | Script or description text (or @filename) |
--style <style> | Video style: montage, storytelling (default), explainer |
| Parameter | Description |
|---|---|
--function <func> | Speech to video function: SPEECH_TO_VIDEO_SUMMARY or SPEECH_TO_VIDEO_FULL_LENGTH |
All other options (aspect_ratio, pace, burn_subtitles, footage_options, bgm_options, etc.) can be set in the config file.
Cleanup: After video creation completes, delete the config file unless it's intended for reuse.
All video options can be stored in a JSON config file (nested structure matches API request body):
{
"video_title": "My Video",
"video_description": "Video description",
"project_function": "SPEECH_TO_VIDEO_SUMMARY",
"script_text_mode": "ai_rewrite",
"doc_usage": "page_by_page_walkthrough",
"speaker_notes_verbatim": false,
"target_video": {
"aspect_ratio": "16:9",
"video_pace": "fast",
"burn_subtitles": false,
"video_duration_in_seconds": 60
},
"avatar_options": {
"use_avatar": false,
"look_id": 12345,
"avatar_layout": "smart_composition",
"enable_auto_wallpaper": true,
"enable_in_preview": true
},
"voice_options": {
"use_voice": false,
"voice_id": 1
},
"footage_options": {
"enable_footage": true,
"use_free_stocks": true,
"use_premium_stocks": true,
"use_premium_stocks_getty": true,
"use_private_stocks": true,
"private_stock_ids": 123456
},
"bgm_options": {
"enable_bgm": true,
"use_free_stocks": true,
"use_premium_stocks": true
}
}
Note: avatar_options.avatar_layout accepts only: host_only, host_pip, smart_composition.
CLI arguments (avatar, voice) override config file values.
Source of truth for the exact CLI surface: run scripts/visla_cli.sh --help or python3 scripts/visla_cli.py --help.
**Scene 1** (0-10 sec):
**Visual:** A futuristic calendar flipping to 2025 with digital patterns.
**Narrator:** "AI is evolving rapidly! Here are 3 game-changing AI trends."
**Scene 2** (10-25 sec):
**Visual:** Text: "Trend #1: Generative AI Everywhere." Show tools like ChatGPT.
**Narrator:** "Generative AI is dominating industries—creating content and images."
The script, url, doc, idea, visual, and speech commands execute the complete flow automatically:
Execution Instructions:
timeout to >= 30 minutes (Windows defaults are often ~10 minutes and need to be increased). If you
cannot change the timeout, warn the user up front and, on timeout, ask whether to continue or switch to a step-by-step
run.project_uuid in the output. Inform the user they can manually check project
status and continue later using the Visla web interface or API./visla script @myscript.txt
/visla script "Scene 1: ..."
/visla url https://blog.example.com/article
/visla doc presentation.pptx
/visla idea "Create a video about machine learning"
/visla idea @my_idea.txt
/visla visual image.jpg
/visla visual photo1.jpg photo2.jpg photo3.jpg
/visla visual image.jpg --script "Description of the images..."
/visla visual image.jpg --style montage
/visla speech interview.m4a
/visla speech podcast.mp3 audio1.mp3 audio2.mp3
/visla speech podcast.mp3 --function SPEECH_TO_VIDEO_SUMMARY
/visla account
/visla avatar
/visla voice
# With config file
/visla script "Scene 1: Hello" -c config.json
# With avatar/voice (CLI overrides config)
/visla script "Scene 1: Hello" --avatar avatar_123 --voice voice_456
.pptx, .ppt.pdf.jpg, .jpeg, .png, .gif, .webp.mp4, .mov, .avi, .mkv.mp3, .wav, .m4a, .aac, .flac.mp4, .mov, .avi, .mkvThe CLI scripts enforce the following safety measures to prevent unauthorized file access:
.. are rejected./etc/, /proc/, /sys/, /dev/, /run/, /var/log/ (and Windows equivalents) is denied.@file syntax in script, idea, and visual --script commands only accepts .txt, .md, .srt, .vtt, .csv files.doc, visual, and speech commands validate file extensions against supported formats before upload.~/.config/visla/.credentials only. No arbitrary credential file paths are accepted.