From claude-content
Optimizes videos for social platforms like Instagram Reels, TikTok, YouTube Shorts by cropping/padding, scaling, trimming, bitrate adjustment using FFmpeg.
npx claudepluginhub gupsammy/claudest --plugin claude-contentThis skill is limited to using the following tools:
Prepare video for social media platforms: correct aspect ratios, resolutions, bitrates, and container settings.
Provides upload specs, FFmpeg presets, encoding settings, and optimization tables for TikTok, YouTube Shorts, Instagram Reels, Facebook Reels, Snapchat Spotlight, and Twitter/X. Useful for multi-platform video exports and compliance.
Converts videos between formats (MP4, WebM, GIF, ProRes, MOV), codecs (H.264, VP9, HEVC), aspect ratios (16:9, 9:16, 1:1); optimizes for social media, web streaming using each::sense AI API.
Provides FFmpeg patterns and rules for video post-production: audio mastering, captions, color correction, platform exports. Useful for adding music, voiceover, captions, color grading.
Share bugs, ideas, or general feedback.
Prepare video for social media platforms: correct aspect ratios, resolutions, bitrates, and container settings.
| Platform | Aspect | Max Resolution | Max Duration | Video Bitrate | Audio |
|---|---|---|---|---|---|
| Instagram Feed | 4:5 portrait or 1:1 | 1080×1350 / 1080×1080 | 60s | 3.5 Mbps | AAC 128k |
| Instagram Reels | 9:16 | 1080×1920 | 90s | 8 Mbps | AAC 192k |
| TikTok | 9:16 | 1080×1920 | 10min | 8 Mbps | AAC 192k |
| YouTube Shorts | 9:16 | 1080×1920 | 60s | 8 Mbps | AAC 192k |
| YouTube Standard | 16:9 | 1920×1080 | unlimited | 8 Mbps (1080p) | AAC 192k |
| Twitter / X | 16:9 or 1:1 | 1920×1200 | 140s | 25 Mbps cap | AAC 128k |
| 16:9 or 9:16 | 1920×1080 | 240min | 4 Mbps | AAC 128k | |
| 16:9 | 1920×1080 | 10min | 5 Mbps | AAC 128k |
If the request is ambiguous (e.g., "make it vertical"), ask which platform — bitrate and audio requirements differ.
ffprobe -v quiet -print_format json -show_streams -show_format "$INPUT"
Extract: width, height, duration, existing bitrate, audio codec.
Compare probe output against the platform row in the presets table. Apply only the transforms that are actually needed:
Exit condition: when all four properties (aspect ratio, resolution, duration, bitrate) are within platform bounds and -movflags +faststart will be set, proceed to Step 4. If source already matches all properties, skip to Step 5 with a simple re-encode plan.
Crop to fit (preferred when subject is centered):
# 16:9 source → 9:16 (1080×1920), center crop:
ffmpeg -i "$INPUT" \
-vf "crop=ih*9/16:ih,scale=1080:1920" \
-c:v libx264 -b:v 8000k \
-c:a aac -b:a 192k \
-movflags +faststart "$OUTPUT"
Pad to fit (preserves full frame, adds letterbox/pillarbox):
# 16:9 source → 9:16 with black bars:
ffmpeg -i "$INPUT" \
-vf "scale=1080:-2,pad=1080:1920:(ow-iw)/2:(oh-ih)/2:black" \
-c:v libx264 -b:v 8000k \
-c:a aac -b:a 192k \
-movflags +faststart "$OUTPUT"
Square (1:1) from 16:9 — center crop:
ffmpeg -i "$INPUT" \
-vf "crop=ih:ih,scale=1080:1080" \
-c:v libx264 -b:v 3500k \
-c:a aac -b:a 128k \
-movflags +faststart "$OUTPUT"
State: crop vs. pad choice, any trim, output resolution and bitrate, output path. Wait for approval.
After encoding, verify bitrate: ffprobe -v quiet -show_format "$OUTPUT" | grep bit_rate
-movflags +faststart — relocates the moov atom to the file start, enabling progressive playback before full download. Required for all social platforms.