
Research
Malicious npm Packages Impersonate Flashbots SDKs, Targeting Ethereum Wallet Credentials
Four npm packages disguised as cryptographic tools steal developer credentials and send them to attacker-controlled Telegram infrastructure.
Stop Googling ffmpeg commands. Just describe what you want.
ai-ffmpeg-cli is an AI-powered CLI that translates natural language into safe, previewable ffmpeg
commands. Built for developers, content creators, and anyone who works with media files but doesn't want to memorize complex syntax.
# Instead of this...
ffmpeg -i input.mp4 -vf "scale=1280:720" -c:v libx264 -c:a aac -b:v 2000k output.mp4
# Just say this... (cli command is different)
aiclip "convert input.mp4 to 720p with good quality"
# Install from PyPI
pip install ai-ffmpeg-cli
# Set your OpenAI API key
export OPENAI_API_KEY="sk-your-key-here"
# Or create a .env file
echo "OPENAI_API_KEY=sk-your-key-here" > .env
Interactive mode (type your request after launching):
aiclip
___ ____________ ________
/ | / _/ ____/ / / _/ __ \
/ /| | / // / / / / // /_/ /
/ ___ |_/ // /___/ /____/ // ____/
/_/ |_/___/\____/_____/___/_/
AI-Powered Video & Audio Processing
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โญโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ Welcome to Interactive Mode โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโฎ
โ โ
โ ai-ffmpeg-cli v0.2.5 โ
โ โ
โ AI-powered video and audio processing with natural language โ
โ Type your request in plain English and let AI handle the ffmpeg complexity! โ
โ โ
โฐโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโฏ
Available Media Files
โโโโโโโโโโณโโโโโโโโณโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ Type โ Count โ Files โ
โกโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโฉ
โ Videos โ 1 โ โข input.mp4 โ
โ Images โ 2 โ โข logo.png โ
โ โ โ โข watermark.png โ
โโโโโโโโโโดโโโโโโโโดโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โญโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ Output Configuration โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโฎ
โ Output Directory: /path/to/your/aiclip โ
โ Generated files will be saved here โ
โฐโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโฏ
aiclip> convert this video to 720p
๐ parse_intent: 2,073 โ 47 (2,120 total) | $0.0057
โโโโโณโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโณโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโณโโโโโโโโโ
โ # โ Command โ Output โ Status โ
โกโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโฉ
โ 1 โ ffmpeg -i input.mp4 -vf scale=1280:720... โ /path/to/your/aiclip/input_720p.mp4 โ New โ
โโโโโดโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโดโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโดโโโโโโโโโ
โญโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ Confirmation Required โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโฎ
โ โ
โ Run these commands? โ
โ โ
โฐโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโฏ
[y/n]: Using default: Y
Or run a one-shot command (no interactive prompt):
aiclip --dry-run "convert input.mp4 to 720p with good quality"
# Convert formats
aiclip "convert input.mov to mp4 with h264 and aac"
# Resize videos
aiclip "downscale video.mp4 to 720p"
aiclip "make input.mp4 1080p resolution"
# Compress files
aiclip "compress large-video.mp4 to smaller size"
aiclip "reduce file size with CRF 23"
# Create animated GIFs
aiclip "convert input.mp4 to animated gif"
aiclip "create a 5 second animated gif from video.mp4"
# Extract audio
aiclip "extract audio from movie.mp4 to mp3"
aiclip "get audio track from video as wav"
# Remove audio
aiclip "remove audio from video.mp4"
# Time-based cutting
aiclip "trim first 30 seconds from video.mp4"
aiclip "keep segment from 2:15 to 3:45 in input.mp4"
aiclip "cut out middle 5 minutes"
# Thumbnails
aiclip "create thumbnail at 10 seconds from video.mp4"
aiclip "extract frame at 2:30 as PNG"
# Frame sequences
aiclip "extract one frame every 5 seconds"
aiclip "get all frames from video as images"
# Overlays
aiclip "add watermark logo.png to top-right of video.mp4"
aiclip "overlay text on video at position 10:10"
# Batch processing
aiclip "convert all .mov files to .mp4"
# One-shot mode (no interaction)
aiclip "your command here"
# Skip confirmation prompts
aiclip --yes "convert video.mp4 to 720p"
# Preview only (don't execute)
aiclip --dry-run "compress input.mp4"
# Use different AI model
aiclip --model gpt-4o-mini "extract audio"
# Increase timeout for complex requests
aiclip --timeout 120 "complex processing task"
# Verbose logging for troubleshooting
aiclip --verbose "your command"
# Specify custom output directory
aiclip --output-dir /path/to/output "convert video.mp4 to 720p"
# View token usage statistics anytime
aiclip> tokens
# Beautiful ASCII art welcome screen
# Responsive terminal UI that adapts to your screen width
# Real-time token usage tracking with cost estimates
You can also use the explicit nl
subcommand. Put global options before the subcommand:
aiclip --yes nl "thumbnail at 10s from test.mp4"
aiclip --dry-run --model gpt-4o-mini nl "compress input.mp4"
Do not invoke the binary twice:
# Incorrect
aiclip aiclip --yes nl "..."
aiclip uses environment variables and .env
files for configuration:
# Required
OPENAI_API_KEY=sk-your-openai-api-key
# Optional
AICLIP_MODEL=gpt-4o # AI model to use
AICLIP_DRY_RUN=false # Preview commands by default
AICLIP_OUTPUT_DIR=aiclip # Default output directory
-c copy
for trimming when possible (faster, lossless)aiclip automatically organizes all generated files in a dedicated output directory:
# Default behavior - files saved to "aiclip" folder
aiclip "convert video.mp4 to 720p"
# Output: ./aiclip/video_720p.mp4
# Custom output directory
aiclip --output-dir /path/to/output "convert video.mp4 to 720p"
# Output: /path/to/output/video_720p.mp4
# Environment variable configuration
export AICLIP_OUTPUT_DIR=my_outputs
aiclip "convert video.mp4 to 720p"
# Output: ./my_outputs/video_720p.mp4
Benefits:
aiclip provides complete transparency into your AI usage and costs:
# Real-time token usage displayed after each operation
aiclip> convert video.mp4 to 720p
๐ parse_intent: 2,073 โ 47 (2,120 total) | $0.0057
# View detailed session statistics anytime
aiclip> tokens
Token Usage Summary
โโโโโโโโโโโโโโโโโโณโโโโโโโโโโโณโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ Metric โ Value โ Details โ
โกโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโฉ
โ Session ID โ a1b2c3d4 โ Started at 14:30:15 โ
โ Duration โ 45.2s โ Session duration โ
โ Operations โ 3 โ Total operations performed โ
โ Input Tokens โ 6,142 โ Total tokens sent to AI โ
โ Output Tokens โ 156 โ Total tokens received from AI โ
โ Total Tokens โ 6,298 โ Combined input + output โ
โ Estimated Cost โ $0.0171 โ Based on OpenAI pricing โ
โโโโโโโโโโโโโโโโโโดโโโโโโโโโโโดโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
# Session summary displayed at the end of each session
Features:
aiclip intelligently handles time-based requests for video and GIF creation:
# Create GIFs with specific duration
aiclip "convert video.mp4 to 5 second animated gif"
aiclip "create a 10 second animated gif from input.mp4"
# Time-based video operations
aiclip "extract first 30 seconds from video.mp4"
aiclip "create 15 second clip from input.mp4"
# Thumbnails at specific times
aiclip "extract frame at 2:30 from video.mp4"
aiclip "create thumbnail at 10 seconds from input.mp4"
Supported time formats:
Operation | Examples | ffmpeg Equivalent |
---|---|---|
Convert | "convert to mp4", "make it h264" | -c:v libx264 -c:a aac |
Resize | "720p", "1920x1080", "scale to 50%" | -vf scale=1280:720 |
Compress | "make smaller", "CRF 28" | -c:v libx265 -crf 28 |
Extract Audio | "get audio as mp3" | -q:a 0 -map a |
Trim | "first 30 seconds", "2:15 to 3:45" | -ss 00:02:15 -to 00:03:45 |
Thumbnail | "frame at 10s" | -ss 00:00:10 -vframes 1 |
Overlay | "watermark top-right" | -filter_complex overlay=W-w-10:10 |
Batch | "all *.mov files" | Shell loops with glob patterns |
GIF Creation | "animated gif", "5 second gif" | -vf fps=10,scale=320:-1:flags=lanczos,split[s0][s1];[s0]palettegen[p];[s1][p]paletteuse -c:v gif |
# Clone and setup
git clone https://github.com/d-k-patel/ai-ffmpeg-cli.git
cd ai-ffmpeg-cli
make setup
# Run tests
make test
# Check code quality
make lint
# Try demo commands
make demo
brew install ffmpeg
sudo apt install ffmpeg
"OPENAI_API_KEY is required"
# Set your API key
export OPENAI_API_KEY="sk-your-key-here"
# Or add it to .env file
"ffmpeg not found in PATH"
# Install ffmpeg
brew install ffmpeg # macOS
sudo apt install ffmpeg # Ubuntu
# Windows: download from ffmpeg.org
"Failed to parse natural language prompt"
--model gpt-4o
for better accuracy--timeout 120
"No input files found"
ls
to verify available files"Duration not applied to GIF/video"
We love contributions! Whether it's:
See our Contributing Guide to get started.
MIT License - see LICENSE file for details.
If aiclip saves you time, please:
Made with โค๏ธ by developers who got tired of Googling ffmpeg commands
๐ฌ Turn your words into perfect video commands
FAQs
AI-powered CLI that translates natural language to safe ffmpeg commands
We found that ai-ffmpeg-cli demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago.ย It has 1 open source maintainer collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Research
Four npm packages disguised as cryptographic tools steal developer credentials and send them to attacker-controlled Telegram infrastructure.
Security News
Ruby maintainers from Bundler and rbenv teams are building rv to bring Python uv's speed and unified tooling approach to Ruby development.
Security News
Following last weekโs supply chain attack, Nx published findings on the GitHub Actions exploit and moved npm publishing to Trusted Publishers.