Social Video Downloader

v1.2.0

Download videos from Instagram Reels, TikTok, YouTube Shorts, Twitter/X clips, and other social media platforms. Use when the user clearly wants to download/...

0· 151· 6 versions· 0 current· 0 all-time· Updated 9h ago· MIT-0

Install

openclaw skills install social-video-downloader

Social Video Downloader

Download social media videos via yt-dlp and send them to the user.

Requirements

  • yt-dlp must be installed
  • ffmpeg recommended for best format support

Setup

See SETUP.md for installation and configuration.

Workflow

  1. Verify download intent is clear from the user's message
  2. Run the download script:
    python3 scripts/download.py "<url>" /tmp
    
  3. On SUCCESS:<path>, send file to user via the message tool
  4. On ERROR:..., report failure to user
  5. After sending, delete the temp file with rm <path>

Sending the File

Use the message tool with action=send, media=<path>, and buttons=[].

If file exceeds Telegram's 50MB limit, inform the user and provide the file path instead.

Supported Platforms

Instagram (Reels, Posts), TikTok, YouTube Shorts, Twitter/X, Reddit, Facebook, Vimeo, Dailymotion, Twitch, Bilibili, and more.

Security

The script includes these protections:

  • URL allowlist — only pre-approved domains can be downloaded from
  • SSRF protection — blocks URLs resolving to private/internal IP ranges
  • Command injection protection — URLs are validated against shell metacharacters, and -- separator prevents option injection
  • Subprocess isolation — URLs passed as separate arguments, never interpolated into shell strings

Safety Guards

  • No playlists--no-playlist prevents accidentally downloading hundreds of files
  • Metadata check — verifies video info before downloading
  • Retry limit--retries 2 stops after failures to avoid bans
  • Timeout--socket-timeout 30 bails on stalled connections
  • Timestamp filenamessocial_dl_<timestamp>.mp4 prevents filename collisions

Version tags

latestvk972a9ayd9qe87qdasfxh3fa7d83t8y8