Skill flagged — review recommended

ClawHub Security found sensitive or high-impact capabilities. Review the scan results before using.

Video Download FaaS

v1.0.0

Download videos in MP4 format using yt-dlp with FaaS (Firecracker/Container) isolation. Start downloads, check status, and kill processes. Videos are automat...

0· 816· 1 versions· 2 current· 2 all-time· Updated 14h ago· MIT-0
byRobert (Zhaohan) Hu@lasurvivor

Install

openclaw skills install video-download-faas

Video Download FaaS

Download videos asynchronously using yt-dlp in isolated background processes. All downloads are saved as MP4 files.

Overview

This skill manages video downloads as background tasks that:

  • Start immediately and return control to the user
  • Continue running even if the session disconnects
  • Can be monitored for progress
  • Can be terminated when needed

When to Use

Use this skill when:

  • Downloading large videos that take time
  • Processing multiple videos concurrently
  • Running downloads on remote/headless systems
  • Need to continue working while downloading

Quick Start

Start a Download

scripts/download.sh "https://youtube.com/watch?v=..."

Returns immediately with:

  • Session ID
  • Process ID (PID)
  • Log file location

Check Status

# List all active downloads
scripts/check-status.sh

# Check specific download
scripts/check-status.sh video_dl_1234567890_12345

Kill Download

# Graceful stop
scripts/kill-download.sh video_dl_1234567890_12345

# Force kill
scripts/kill-download.sh video_dl_1234567890_12345 --force

Commands

download.sh

Start a video download in background with MP4 output format.

Usage:

download.sh <URL> [output_directory]

Parameters:

  • URL - Video URL to download (required)
  • output_directory - Where to save video (optional, default: ~/Downloads)

Output Format:

  • Downloads are automatically converted to MP4 format
  • Uses best available MP4 video + M4A audio, merged into MP4
  • If source isn't MP4, it will be re-encoded to MP4

Returns:

  • Session ID for tracking
  • PID for process management
  • Paths to log and session files

Example:

scripts/download.sh "https://www.youtube.com/watch?v=dQw4w9WgXcQ" /tmp/videos

check-status.sh

Check download progress and status.

Usage:

# List all sessions
check-status.sh

# Check specific session
check-status.sh <session_id>

Returns:

  • Process status (running/completed)
  • Download progress (if running)
  • Downloaded files (if completed)
  • Error information (if failed)

kill-download.sh

Terminate a running download.

Usage:

kill-download.sh <session_id> [--force]

Parameters:

  • session_id - The session ID from download.sh
  • --force - Use SIGKILL instead of SIGTERM

Session Management

Session files are stored in /tmp/ with format:

  • video_dl_{timestamp}_{pid}.session - Session metadata
  • video_dl_{timestamp}_{pid}.pid - Process ID
  • video_dl_{timestamp}_{pid}.log - Download log

Sessions are automatically cleaned up when:

  • Download completes successfully
  • Process is killed via kill-download.sh

FaaS Integration

For containerized/Firecracker execution:

# Run download in isolated container
./run-in-container.sh scripts/download.sh "URL"

# Check from host
scripts/check-status.sh

Troubleshooting

Download not starting:

  • Check yt-dlp is installed: yt-dlp --version
  • Verify URL is accessible: curl -I "URL"

Process not found:

  • Session may have completed and auto-cleaned
  • Check ~/Downloads for finished files

Permission denied:

  • Ensure scripts are executable: chmod +x scripts/*.sh

Requirements

  • yt-dlp installed and in PATH
  • Bash 4.0+
  • Write access to /tmp and output directory

Version tags

latestvk97br3m56gh16gx87gpf9pjgbd81fmw3