Agent-JAE/default-skills/venice-video-retrieve/SKILL.md
jae c42cd9a062 feat: add 11 Venice AI skills as bundled defaults
Skills included:
- venice-chat: Chat with Venice LLM models, vision, reasoning
- venice-chat-benchmark: Benchmark chat models with infographics
- venice-image-gen: Generate images via Venice API
- venice-list-image-models: List available image models
- venice-list-text-models: List available text models
- venice-list-video-models: List available video models
- venice-tts: Text-to-speech via Venice API
- venice-video-generate: Generate videos from text/images
- venice-video-queue: Queue video generation jobs
- venice-video-quote: Get video generation cost quotes
- venice-video-retrieve: Retrieve completed videos

All rebranded from Agent Zero paths to Agent JAE (~/.jae/agent/skills/).
Requires VENICE_API_KEY environment variable.
2026-03-23 18:47:33 +01:00

151 lines
4 KiB
Markdown

---
name: "venice-video-retrieve"
description: "Retrieve a queued video from Venice.ai by queue_id. Polls until complete then downloads."
version: "1.0.0"
author: "Agent JAE"
tags: ["venice", "video", "ai", "generation", "download"]
trigger_patterns:
- "retrieve video"
- "download video"
- "get video"
- "venice video retrieve"
---
# Venice Video Retrieve
Retrieve and download queued videos from Venice.ai. Automatically polls until generation is complete.
## Requirements
- `VENICE_API_KEY` environment variable
- A `queue_id` from `venice-video-queue`
## CLI Usage
```bash
python ~/.jae/agent/skills/venice-video-retrieve/scripts/retrieve_video.py MODEL QUEUE_ID [options]
```
### Arguments
| Argument | Required | Description |
|----------|----------|-------------|
| `MODEL` | Yes | Model that was used for generation |
| `QUEUE_ID` | Yes | Queue ID returned from queue_video |
### Options
| Option | Short | Default | Description |
|--------|-------|---------|-------------|
| `--output` | `-o` | Auto-generated | Output path for the video file |
| `--interval` | `-i` | `5` | Polling interval in seconds |
| `--max-wait` | `-w` | `600` | Maximum wait time in seconds |
| `--delete-after` | | False | Delete from Venice servers after download |
| `--quiet` | `-q` | False | Suppress progress output |
| `--json` | | False | Output result as JSON |
## Examples
### Basic Retrieval
```bash
python ~/.jae/agent/skills/venice-video-retrieve/scripts/retrieve_video.py \
wan-2.5-preview-text-to-video \
abc123-def456-queue-id
```
### Save to Specific Path
```bash
python ~/.jae/agent/skills/venice-video-retrieve/scripts/retrieve_video.py \
wan-2.5-preview-text-to-video \
abc123-def456-queue-id \
--output /path/to/my_video.mp4
```
### Custom Polling Settings
```bash
python ~/.jae/agent/skills/venice-video-retrieve/scripts/retrieve_video.py \
wan-2.5-preview-text-to-video \
abc123-def456-queue-id \
--interval 10 \
--max-wait 900
```
### Quiet Mode with JSON Output
```bash
python ~/.jae/agent/skills/venice-video-retrieve/scripts/retrieve_video.py \
wan-2.5-preview-text-to-video \
abc123-def456-queue-id \
--quiet --json
# Output: {"status": "completed", "path": "/root/venice_videos/video_1234567890.mp4"}
```
## Output
Progress output during polling:
```
🎬 Retrieving video...
Model: wan-2.5-preview-text-to-video
Queue ID: abc123-def456-...
[5s] Status: pending | Progress: 10% ETA 45s
[10s] Status: pending | Progress: 25% ETA 35s
[15s] Status: pending | Progress: 50% ETA 20s
[20s] Status: pending | Progress: 75% ETA 10s
[25s] Status: completed | Progress: 100%
✅ Video ready!
💾 Saved to: /root/venice_videos/video_1234567890.mp4
✅ Video saved to: /root/venice_videos/video_1234567890.mp4
```
## Default Output Location
If no `--output` is specified, videos are saved to:
```
/root/venice_videos/video_<timestamp>.mp4
```
## Error Handling
| Exit Code | Meaning |
|-----------|----------|
| `0` | Success |
| `1` | General error (API, network, etc.) |
| `2` | Timeout - generation took too long |
## Programmatic Usage
```python
from retrieve_video import retrieve_and_save, poll_until_complete
# Full workflow: poll and save
path = retrieve_and_save(
model="wan-2.5-preview-text-to-video",
queue_id="abc123-def456",
output_path="/path/to/video.mp4",
poll_interval=5,
max_wait=600
)
print(f"Saved to: {path}")
# Just poll (without saving)
result = poll_until_complete(
model="wan-2.5-preview-text-to-video",
queue_id="abc123-def456"
)
print(f"Status: {result.status}")
# Access result.video_data or result.video_url
```
## Complete Workflow Example
```bash
# Step 1: Queue a video
python ~/.jae/agent/skills/venice-video-queue/scripts/queue_video.py "A cat playing piano" --json
# Output: {"model": "wan-2.5-preview-text-to-video", "queue_id": "abc123..."}
# Step 2: Retrieve the video
python ~/.jae/agent/skills/venice-video-retrieve/scripts/retrieve_video.py \
wan-2.5-preview-text-to-video \
abc123... \
--output /root/cat_piano.mp4
```