
Share Social
Re-encode source footage to platform-native aspect ratios, durations, and bitrates before posting Reels, Shorts, or feed video.
Overview
share-social is an agent skill for the Launch phase that encodes video to platform-specific aspect ratios, durations, bitrates, and audio settings using ffmpeg.
Install
npx skills add https://github.com/gupsammy/claudest --skill share-socialWhat is this skill?
- Eight platform presets: Instagram Feed/Reels, TikTok, YouTube Shorts/Standard, X, Facebook, LinkedIn with aspect, max re
- Uses ffprobe inspection and ffmpeg encoding via allowed Bash tools
- Asks which platform when requests are ambiguous (e.g. “make it vertical”) because bitrate and audio differ
- Covers 4:5, 1:1, 9:16, and 16:9 targets with AAC audio rates per preset
- Step 1 process: identify platform before applying encode settings
- 8 platform presets in the reference table
- Instagram Reels max duration 90s at 1080×1920 and 8 Mbps video
Adoption & trust: 1 installs on skills.sh; 253 GitHub stars; 2/3 security scanners passed (skills.sh audits); trending (+100% hot-view momentum).
What problem does it solve?
You have a finished video but each social network rejects uploads or downgrades quality because aspect ratio, duration, and bitrate do not match that platform’s spec.
Who is it for?
Solo builders posting Shorts/Reels/TikTok from one master file and wanting preset-driven ffmpeg commands instead of tab-hopping creator help pages.
Skip if: Teams needing motion graphics, subtitles, brand templates, or ad-platform compliance beyond the eight listed presets—use a full editor or ads workflow first.
When should I use this skill?
User asks to optimize for Instagram, YouTube Shorts, TikTok/Reels, 9:16 or square video, prepare for social media, or encode for Twitter/X, Facebook, or LinkedIn.
What do I get? / Deliverables
You get a platform-matched export (e.g. 1080×1920 Reels at 8 Mbps with AAC 192k) ready to upload without manual codec research.
- Platform-encoded video file matching chosen preset dimensions and bitrate
- Clarified target platform when the request was ambiguous
Recommended Skills
Journey fit
Social uploads fail or look soft when codecs and dimensions do not match each network’s feed rules—this skill sits on the launch shelf where distribution-ready exports happen. Distribution is where solo builders crop to 9:16, cap Twitter length, and match Instagram vs TikTok audio/bitrate tables—not during initial product build.
How it compares
Use for ffmpeg-based social transcoding presets, not for generative video creation or thumbnail/SEO packaging skills.
Common Questions / FAQ
Who is share-social for?
Indie creators, founders doing launch clips, and developers automating export steps who already have source video and need network-correct encodes.
When should I use share-social?
At launch distribution when you ask to optimize for Instagram, make 9:16, prepare TikTok/Reels/Shorts format, encode for Twitter/X, or meet LinkedIn/Facebook upload requirements.
Is share-social safe to install?
It is scoped to ffprobe and ffmpeg Bash tools plus clarifying questions; review the Security Audits panel on this Prism page and treat encoded files as user-owned media on disk.
SKILL.md
READMESKILL.md - Share Social
# Video Social Prepare video for social media platforms: correct aspect ratios, resolutions, bitrates, and container settings. ## Platform Presets | 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 | | Facebook | 16:9 or 9:16 | 1920×1080 | 240min | 4 Mbps | AAC 128k | | LinkedIn | 16:9 | 1920×1080 | 10min | 5 Mbps | AAC 128k | ## Process ### 1. Identify platform If the request is ambiguous (e.g., "make it vertical"), ask which platform — bitrate and audio requirements differ. ### 2. Probe source ```bash ffprobe -v quiet -print_format json -show_streams -show_format "$INPUT" ``` Extract: width, height, duration, existing bitrate, audio codec. ### 3. Determine required transforms Compare probe output against the platform row in the presets table. Apply only the transforms that are actually needed: - **Aspect ratio mismatch** → crop or pad (see Key Decisions for the choice rule) - **Resolution too large** → scale down (never upscale; social platforms reject oversized files at upload) - **Duration exceeds platform limit** → trim; confirm cut point with user first - **Bitrate over limit** → re-encode with target bitrate (platforms reject or silently degrade over-bitrate uploads) 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. ### 4. Construct command **Crop to fit** (preferred when subject is centered): ```bash # 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): ```bash # 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:** ```bash 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" ``` ### 5. Confirm State: crop vs. pad choice, any trim, output resolution and bitrate, output path. Wait for approval. ### 6. Run and verify After encoding, verify bitrate: `ffprobe -v quiet -show_format "$OUTPUT" | grep bit_rate` ## Key Decisions - Always include `-movflags +faststart` — relocates the moov atom to the file start, enabling progressive playback before full download. Required for all social platforms. - **Crop vs. pad**: default to crop for talking-head or centered subjects; default to pad for wide scenic shots or text-heavy content. When the user says "don't cut anything off", use pad. When uncertain with off-center subjects, ask before running. - Never upscale: if source is smaller than target resolution, scale to fit with