Now liveThe Skillselion MCP - thousands of ranked skills, loaded into your agent mid-task. No install.Get it →
agricidaniel avatar

Claude Video Export

  • 6 installs
  • 23 repo stars
  • Updated April 6, 2026
  • agricidaniel/claude-video

claude-video-export is a Claude Code skill that exports platform-optimized video files for YouTube, TikTok, Instagram, and more using FFmpeg.

About

claude-video-export is a Claude Code skill that exports video into ready-to-upload files per platform using FFmpeg. It produces presets for YouTube, TikTok, Instagram Reels and Feed, LinkedIn, web WebM, audio-only podcast, and GIF, handling resolution, codec, bitrate, and aspect ratio. A developer uses it to render a final video correctly for a target platform.

  • One-command platform-optimized video export via FFmpeg
  • Presets for YouTube, TikTok, Reels, Instagram, LinkedIn, WebM, GIF
  • Handles resolution, codec, bitrate, and aspect ratio per platform

Claude Video Export by the numbers

  • 6 all-time installs (skills.sh)
  • Ranked #1,096 of 1,335 Generative Media skills by installs in the Skillselion catalog
  • Data as of Aug 5, 2026 (Skillselion catalog sync)
At a glance

claude-video-export capabilities & compatibility

Free; runs on local FFmpeg with no API keys.

Capabilities
video export · platform optimization · aspect ratio conversion · video encoding
Pricing
Free
From the docs

What claude-video-export says it does

One-command platform-optimized video export using FFmpeg. Produces ready-to-upload
SKILL.md
Note: TikTok max 10 min, Reels max 3 min, Shorts max 3 min. The `-t 180` caps at 3 min.
SKILL.md
npx skills add https://github.com/agricidaniel/claude-video --skill claude-video-export

Add your badge

Show developers this skill is listed on Skillselion. Paste this into your README.

Listed on Skillselion
Installs6
repo stars23
Last updatedApril 6, 2026
Repositoryagricidaniel/claude-video

What it does

Export a finished video into platform-optimized files for YouTube, TikTok, Instagram, LinkedIn, web, or GIF with FFmpeg.

Who is it for?

Rendering ready-to-upload files with the right resolution, codec, and aspect ratio per platform

Skip if: Editing content or downloading source video, which other sub-skills handle

When should I use this skill?

You need a final video exported for YouTube, TikTok, Reels, Instagram, LinkedIn, web, or as a GIF

What you get

Produces a correctly encoded video file ready to upload to the chosen platform.

  • YouTube-ready MP4
  • Vertical TikTok/Reels MP4
  • Instagram square/portrait MP4

By the numbers

  • Presets for 8 export targets (YouTube, TikTok, Reels, Instagram, LinkedIn, Web, Podcast, GIF)

Files

SKILL.mdMarkdownGitHub ↗

claude-video-export — Platform-Optimized Export

Pre-Flight

1. Run bash scripts/preflight.sh "$INPUT" "$OUTPUT" 2. Run bash scripts/detect_gpu.sh for encoder selection 3. Analyze input: ffprobe -v error -select_streams v:0 -show_entries stream=width,height,r_frame_rate -of json "$INPUT"

Platform Presets

YouTube (1080p)

ffmpeg -n -i "$INPUT" -c:v libx264 -preset slow -crf 18 -profile:v high -level 4.1 \
  -pix_fmt yuv420p -bf 2 -g 30 -movflags +faststart \
  -c:a aac -b:a 384k -ar 48000 "${INPUT%.*}_youtube.mp4"

YouTube 4K:

ffmpeg -n -i "$INPUT" -c:v libx264 -preset slow -crf 18 -profile:v high -level 5.1 \
  -pix_fmt yuv420p -movflags +faststart \
  -c:a aac -b:a 512k -ar 48000 "${INPUT%.*}_youtube_4k.mp4"

YouTube NVENC (5-10x faster):

ffmpeg -n -hwaccel cuda -hwaccel_output_format cuda -i "$INPUT" \
  -c:v h264_nvenc -preset p5 -tune hq -rc constqp -cq 19 \
  -profile:v high -movflags +faststart \
  -c:a aac -b:a 384k -ar 48000 "${INPUT%.*}_youtube.mp4"

TikTok / Reels / Shorts (9:16 Vertical)

Center crop (from 16:9 source):

ffmpeg -n -i "$INPUT" \
  -vf "crop=ih*9/16:ih,scale=1080:1920:flags=lanczos" \
  -c:v libx264 -crf 20 -preset medium -profile:v high -pix_fmt yuv420p \
  -c:a aac -b:a 128k -ar 44100 -movflags +faststart \
  -t 180 "${INPUT%.*}_tiktok.mp4"

Note: TikTok max 10 min, Reels max 3 min, Shorts max 3 min. The -t 180 caps at 3 min.

With padding (black bars, no crop):

ffmpeg -n -i "$INPUT" \
  -vf "scale=1080:-2:flags=lanczos,pad=1080:1920:(ow-iw)/2:(oh-ih)/2:black" \
  -c:v libx264 -crf 20 -preset medium -profile:v high -pix_fmt yuv420p \
  -c:a aac -b:a 128k -movflags +faststart "${INPUT%.*}_vertical.mp4"

With blur background (cinematic, no black bars):

ffmpeg -n -i "$INPUT" -i "$INPUT" -filter_complex \
  "[0:v]scale=1080:1920:force_original_aspect_ratio=increase,crop=1080:1920,gblur=sigma=20[bg];\
   [1:v]scale=1080:1920:force_original_aspect_ratio=decrease[fg];\
   [bg][fg]overlay=(W-w)/2:(H-h)/2" \
  -c:v libx264 -crf 20 -preset medium -c:a aac -b:a 128k \
  -movflags +faststart "${INPUT%.*}_tiktok_blur.mp4"

Instagram Feed (Square 1:1)

ffmpeg -n -i "$INPUT" \
  -vf "crop=min(iw\,ih):min(iw\,ih),scale=1080:1080:flags=lanczos" \
  -c:v libx264 -crf 20 -preset medium -profile:v high -pix_fmt yuv420p \
  -c:a aac -b:a 128k -movflags +faststart \
  -t 60 "${INPUT%.*}_ig_square.mp4"

Instagram Feed (Portrait 4:5)

ffmpeg -n -i "$INPUT" \
  -vf "crop=ih*4/5:ih,scale=1080:1350:flags=lanczos" \
  -c:v libx264 -crf 20 -preset medium -profile:v high -pix_fmt yuv420p \
  -c:a aac -b:a 128k -movflags +faststart \
  -t 60 "${INPUT%.*}_ig_portrait.mp4"

LinkedIn

ffmpeg -n -i "$INPUT" \
  -vf "scale=1920:1080:force_original_aspect_ratio=decrease,pad=1920:1080:(ow-iw)/2:(oh-ih)/2:black" \
  -c:v libx264 -crf 20 -preset medium -profile:v high -pix_fmt yuv420p \
  -c:a aac -b:a 192k -movflags +faststart \
  -fs 200M "${INPUT%.*}_linkedin.mp4"

Note: LinkedIn max 200MB / 10 min. The -fs 200M caps file size.

Web (VP9 + Opus for modern browsers)

ffmpeg -n -i "$INPUT" \
  -c:v libvpx-vp9 -crf 30 -b:v 0 -row-mt 1 \
  -c:a libopus -b:a 128k "${INPUT%.*}_web.webm"

Podcast (Audio-Only)

# AAC (most compatible)
ffmpeg -n -i "$INPUT" -vn \
  -af "loudnorm=I=-16:TP=-1.5:LRA=11" \
  -c:a aac -b:a 128k -ar 44100 "${INPUT%.*}_podcast.m4a"

# MP3 (universal)
ffmpeg -n -i "$INPUT" -vn \
  -af "loudnorm=I=-16:TP=-1.5:LRA=11" \
  -c:a libmp3lame -b:a 192k -ar 44100 "${INPUT%.*}_podcast.mp3"

High-Quality GIF

# Short clip (3 seconds starting at 5s)
ffmpeg -n -ss 5 -t 3 -i "$INPUT" \
  -vf "fps=15,scale=480:-1:flags=lanczos,split[s0][s1];[s0]palettegen[p];[s1][p]paletteuse" \
  "${INPUT%.*}.gif"

For longer GIFs, consider reducing fps to 10 and scale to 320px width.

Twitter/X

ffmpeg -n -i "$INPUT" \
  -vf "scale=1280:720:force_original_aspect_ratio=decrease,pad=1280:720:(ow-iw)/2:(oh-ih)/2:black" \
  -c:v libx264 -crf 22 -preset medium -profile:v high -pix_fmt yuv420p \
  -c:a aac -b:a 128k -movflags +faststart \
  -fs 512M -t 140 "${INPUT%.*}_twitter.mp4"

Note: Twitter max 512MB / 2:20.

Platform Specs Quick Reference

PlatformMax ResolutionMax DurationMax SizeAspect RatioCodec
YouTube8K12 hours256 GBAny (16:9 preferred)H.264/H.265/AV1
TikTok1080x192010 min287 MB9:16H.264
Instagram Reels1080x19203 min250 MB9:16H.264
Instagram Feed1080x108060s250 MB1:1 or 4:5H.264
LinkedIn1920x108010 min200 MB16:9 or 1:1H.264
Twitter/X1920x12002:20512 MBAnyH.264
Web (WebM)AnyAnyAnyAnyVP9/AV1 + Opus

Multi-Platform Export

To export for multiple platforms at once, Claude should chain exports sequentially. Each export is independent — they share the same input but produce separate outputs.

Output Naming

Auto-generated output names use the pattern: {input_basename}_{platform}.{ext}

  • video.mp4video_youtube.mp4, video_tiktok.mp4, video_ig_square.mp4

Reference

Load references/export-presets.md for detailed per-platform codec settings, bitrate targets, and container requirements.

Related skills

FAQ

Which platforms does it target?

It has presets for YouTube, TikTok, Reels, Shorts, Instagram Feed, LinkedIn, web WebM, podcast audio, and GIF.

How does it make vertical video from a 16:9 source?

It offers center crop, black-bar padding, or a blurred-background fill to reach the 9:16 aspect ratio.

Generative Mediaagentsautomation

This week in AI coding

Five minutes, every Monday - the tools, releases and tactics for developers.

unsubscribe anytime.