Publishing a single video to all major social platforms is a surprisingly painful process. You record a 16:9 landscape video. YouTube takes it as-is. TikTok needs 9:16 portrait. Instagram Reels also needs 9:16, but the feed wants 1:1 square or 4:5 portrait. LinkedIn prefers 4:5. X accepts 16:9 but performs better with 1:1. Facebook supports everything but favors 4:5 in the feed algorithm. Vimeo takes 16:9.
That is seven different versions of the same video, each with a different aspect ratio. Each platform also has different caption requirements: burned-in for TikTok and Instagram (where viewers watch without sound), SRT sidecar for YouTube (where captions are toggled by the viewer), no standard for X. Each platform has different title length limits, description character limits, hashtag conventions, and thumbnail requirements. Each requires separate authentication, a separate upload, and separate metadata entry.
Content teams spend 15-30 minutes per platform on this workflow. For all seven platforms, that is 2-3.5 hours of manual work per video. Multiply by 10-20 videos per week for an active content operation, and you are looking at a full-time employee doing nothing but reformatting and uploading video. V100 replaces that entire workflow with one API call.
The API Call: One Request, Seven Platforms
// One API call publishes to all 7 platforms
const result = await v100.videos.publish(videoId, {
platforms: [
{
platform: "youtube",
title: "How We Rebuilt Our Video Platform in Rust",
description: "Full architecture deep-dive...",
tags: ["rust", "microservices", "video"],
privacy: "public",
captions: "srt", // SRT sidecar file
thumbnail: "auto", // AI-selected frame
},
{
platform: "tiktok",
title: "We rebuilt everything in Rust",
aspect_ratio: "9:16", // AI reframes to portrait
captions: "burned_in", // Burned into video
hashtags: ["#rust", "#coding", "#tech"],
},
{
platform: "instagram",
type: "reels",
aspect_ratio: "9:16",
captions: "burned_in",
cover_frame: "auto",
},
{
platform: "linkedin",
title: "Architecture Decision: 20 Rust Microservices",
aspect_ratio: "4:5",
visibility: "public",
},
{
platform: "x",
text: "We rebuilt our entire video platform in Rust.\n\n20 services. 0.01ms processing. 938 tests.\n\nHere's the full story:",
aspect_ratio: "1:1",
},
{
platform: "facebook",
title: "Why We Chose Rust for Video Infrastructure",
aspect_ratio: "4:5",
},
{
platform: "vimeo",
title: "Rust Microservices Architecture Deep-Dive",
privacy: "unlisted",
},
],
scheduling: {
youtube: "2026-03-29T10:00:00Z", // Sat 10am UTC
tiktok: "2026-03-29T14:00:00Z", // Sat 2pm UTC
instagram: "2026-03-29T16:00:00Z", // Sat 4pm UTC
linkedin: "2026-03-31T13:00:00Z", // Mon 1pm UTC
x: "2026-03-29T18:00:00Z", // Sat 6pm UTC
facebook: "2026-03-30T12:00:00Z", // Sun 12pm UTC
vimeo: "immediate", // Publish now
},
});
// Response includes URLs for each platform
// {
// "youtube": { "status": "scheduled", "url": "https://youtu.be/..." },
// "tiktok": { "status": "scheduled", "id": "7..." },
// "instagram": { "status": "scheduled", "id": "..." },
// "linkedin": { "status": "scheduled", "urn": "..." },
// "x": { "status": "scheduled", "tweet_id": "..." },
// "facebook": { "status": "scheduled", "post_id": "..." },
// "vimeo": { "status": "published", "url": "https://vimeo.com/..." }
// }
That is the entire workflow. One API call. V100 handles the AI reframing for each aspect ratio, generates captions in the appropriate format for each platform, converts the video to each platform's preferred codec and resolution, authenticates with each platform's API using stored OAuth credentials, uploads the video, sets the metadata, schedules the post, and returns the publishing status and URLs.
AI Reframing: Not Just Cropping
The difference between V100's AI reframing and simple center-cropping is the difference between a professionally framed shot and a decapitated speaker. Center-cropping a 16:9 landscape video to 9:16 portrait cuts off both sides of the frame equally. If the speaker is standing to the right of frame, center-cropping cuts off their face. If the camera is wide and the speaker is small in frame, center-cropping produces a portrait video of the background with a tiny speaker in the middle.
V100's AI reframing analyzes the video content frame-by-frame to identify the primary subject — typically a speaker, product, or area of action. The crop window is dynamically positioned to keep the subject centered and properly framed for the target aspect ratio. When the subject moves, the crop window follows with smooth interpolation to avoid jittery motion. When the subject changes (camera cuts, speaker transitions), the reframing adjusts accordingly.
Platform aspect ratios and reframing behavior
| Platform | Aspect Ratio | Resolution | Reframing |
|---|---|---|---|
| YouTube | 16:9 | 1920x1080 | None (native landscape) |
| TikTok | 9:16 | 1080x1920 | Subject-tracking portrait crop |
| Instagram Reels | 9:16 | 1080x1920 | Subject-tracking portrait crop |
| Instagram Feed | 1:1 | 1080x1080 | Center-weighted square crop |
| 4:5 | 1080x1350 | Slight top-biased crop | |
| X (Twitter) | 1:1 or 16:9 | 1080x1080 or 1920x1080 | Configurable (default: square) |
| 4:5 | 1080x1350 | Slight top-biased crop | |
| Vimeo | 16:9 | 1920x1080 | None (native landscape) |
Auto-Captioning: The Right Format for Each Platform
Captions are not optional on social media. On TikTok, 80% of viewers watch without sound. On Instagram, the default is muted autoplay. On LinkedIn, the feed autoplays silently. A video without captions on these platforms loses most of its potential audience. But each platform handles captions differently, and getting the format wrong means either no captions or broken captions.
V100 generates captions from the video's transcript (word-level timestamps from Deepgram or Whisper) and delivers them in the format each platform requires. For YouTube, captions are uploaded as an SRT sidecar file — viewers can toggle them on or off and choose their display style. For TikTok and Instagram Reels, captions are burned directly into the video frames because these platforms do not support sidecar caption files. For LinkedIn and Facebook, V100 uses the platform's native caption upload API when available, with burned-in as a fallback.
The burned-in captions are styled to match each platform's visual conventions. TikTok captions use a bold, centered style with word-by-word highlighting (the "karaoke" effect popular on short-form video). Instagram Reels use a similar style. The font, size, color, and animation style are all configurable through the API, or V100 can use platform-optimized defaults.
OAuth Credential Management: Connect Once, Publish Forever
Each social media platform uses OAuth 2.0 for API access. Your users connect their social accounts once through V100's credential management flow, and V100 stores the access tokens, handles refresh token rotation, and manages re-authentication when tokens expire. You never touch raw OAuth tokens — V100 stores them encrypted and uses them transparently when publishing.
// 1. Generate OAuth connect URL for user
const connectUrl = await v100.credentials.connectUrl({
platform: "youtube",
user_id: "user_123",
redirect_uri: "https://app.example.com/callback",
scopes: ["upload", "manage"],
});
// Redirect user to connectUrl → they authorize → callback
// 2. Exchange callback code (V100 handles internally)
await v100.credentials.exchange({
platform: "youtube",
user_id: "user_123",
code: callbackCode,
});
// 3. Check connected platforms for a user
const connected = await v100.credentials.list("user_123");
// ["youtube", "tiktok", "instagram", "linkedin"]
// 4. Publish — V100 uses stored credentials automatically
await v100.videos.publish(videoId, {
platforms: [{ platform: "youtube", ... }],
user_id: "user_123", // V100 looks up their credentials
});
Scheduled Posting: Optimal Time Per Platform
Different platforms have different peak engagement windows. LinkedIn performs best during business hours (Tuesday-Thursday, 10am-2pm). TikTok engagement peaks in the evening (7pm-11pm). YouTube has consistent viewership on Saturday mornings. X is event-driven and varies. Publishing to all platforms simultaneously wastes the opportunity to hit each platform's optimal window.
V100's scheduling API lets you set a different publish time for each platform. You can specify exact timestamps, or use the "optimal" keyword to let V100 select the best time based on the platform and the user's historical engagement data. When scheduling is used, V100 queues the publish job and executes it at the specified time, retrying up to 3 times on transient failures.
Platform-Specific Metadata
Each platform has its own metadata requirements and conventions. YouTube allows titles up to 100 characters with rich descriptions, tags for discoverability, and custom thumbnails. TikTok uses short descriptions with hashtags as the primary discovery mechanism. LinkedIn prefers professional, descriptive text. Instagram relies heavily on hashtags and the first line of the caption. X has a character limit that requires concise messaging.
V100's publish API accepts platform-specific metadata for each destination. You can set different titles, descriptions, hashtags, thumbnails, privacy settings, and category tags for each platform. If you do not provide platform-specific metadata, V100 uses the primary title and description, adapting them to each platform's length limits and conventions.
Cross-Platform Analytics in One Dashboard
After publishing, V100 collects performance metrics from each platform and normalizes them into a single analytics view. Views, likes, comments, shares, watch time, and completion rate are tracked per platform and aggregated across all platforms. This eliminates the need to log into seven different analytics dashboards to understand how a piece of content performed.
// Get cross-platform analytics for a published video
const analytics = await v100.videos.analytics(videoId);
// {
// "total_views": 142800,
// "total_engagement": 8420,
// "platforms": {
// "youtube": { "views": 45200, "likes": 1820, "comments": 234 },
// "tiktok": { "views": 68400, "likes": 4200, "shares": 890 },
// "instagram": { "views": 12300, "likes": 980, "saves": 145 },
// "linkedin": { "views": 8900, "likes": 420, "comments": 67 },
// "x": { "views": 5200, "likes": 310, "retweets": 89 },
// "facebook": { "views": 2100, "likes": 140, "shares": 34 },
// "vimeo": { "views": 700, "likes": 45, "comments": 12 }
// }
// }
Cost: $0.07 for All 7 Platforms
V100 charges $0.01 per platform per publish. Publishing to all 7 platforms costs $0.07 total. This includes AI reframing, format conversion, caption generation, thumbnail selection, and the actual upload to each platform's API. There are no additional charges for storage, bandwidth, or credential management.
To put this in perspective: the manual cost of publishing to 7 platforms is approximately $87-175 per video (15-30 minutes per platform at $50/hour for a content operations specialist). A content team publishing 20 videos per week spends $1,740-3,500/week on manual multi-platform publishing. V100 replaces that with $1.40/week ($0.07 x 20 videos). The ROI is not a percentage improvement — it is a category change.
Cost comparison: manual vs V100 vs alternatives
| Method | Per Video (7 platforms) | 20 Videos/Week | Includes AI Reframing |
|---|---|---|---|
| Manual upload | $87-175 | $1,740-3,500 | No (additional editing cost) |
| Buffer + Repurpose.io | ~$3-5 | $200-400/mo (subscriptions) | Basic cropping only |
| V100 API | $0.07 | $1.40 | Yes (subject-tracking AI) |
Architecture: The Publishing Pipeline
API Request (publish to 7 platforms)
|
v
social-publisher (Rust)
|
|--- Analyze video: subject detection, scene analysis
|
|--- Fork into 7 parallel pipelines:
|
|--> [YouTube] 16:9 | SRT captions | H.264 1080p | YouTube Data API v3
|--> [TikTok] 9:16 | Burned-in caps | H.264 1080p | TikTok Content API
|--> [Instagram] 9:16 | Burned-in caps | H.264 1080p | Instagram Graph API
|--> [LinkedIn] 4:5 | Native captions | H.264 1080p | LinkedIn Marketing API
|--> [X] 1:1 | Burned-in caps | H.264 720p | X API v2
|--> [Facebook] 4:5 | Native captions | H.264 1080p | Facebook Graph API
|--> [Vimeo] 16:9 | SRT captions | H.264 1080p | Vimeo API
|
v
publishing-worker (Rust)
|
|--- Each platform: reframe > encode > caption > upload > set metadata
|--- Retry up to 3x on transient failures
|--- Webhook on completion or failure per platform
|
v
Status: { youtube: "published", tiktok: "published", ... }
Two of V100's 20 Rust microservices handle publishing: social-publisher (API endpoint, credential management, job queuing) and publishing-worker (reframing, encoding, upload execution). The seven platform uploads run in parallel, so the total wall-clock time is determined by the slowest platform upload, not the sum of all seven.
V100 vs Buffer + Repurpose.io + Manual Upload
The current multi-platform publishing workflow for most content teams involves a patchwork of tools. Buffer or Hootsuite for scheduling posts across social platforms. Repurpose.io or Opus Clip for reformatting video to different aspect ratios. Manual upload to YouTube and Vimeo (which most scheduling tools do not support well). A graphic designer for thumbnails. A spreadsheet to track what was published where.
V100 replaces the entire chain with a single API call. The reframing is AI-powered (no manual cropping). The captioning is automated (no SRT file editing). The scheduling is per-platform (no separate scheduling tool). The analytics are cross-platform (no spreadsheet). And the pricing is pay-per-use ($0.01/platform) instead of per-seat monthly subscriptions ($20-100/user/month for Buffer + Repurpose.io).
For developers building content platforms, the difference is even more significant. Buffer and Repurpose.io are end-user products — you cannot embed them in your application. V100 is an API — you can build multi-platform publishing directly into your product. Your users connect their social accounts, click "publish everywhere," and V100 handles the rest behind your UI.
Limitations
Platform API limits apply. Each social platform imposes rate limits and content policies on API uploads. TikTok limits API uploads for unverified apps. Instagram requires a Business or Creator account for API publishing. YouTube has daily upload quotas. V100 handles retry logic and rate limit backoff, but cannot circumvent platform-imposed limits.
AI reframing is optimized for talking-head and presentation content. The subject detection works best when there is a clear primary subject (a speaker, a product, a person). For abstract content (animations, text-heavy slides, B-roll montages), the AI reframing may not produce optimal results. You can override the reframing with a manual crop region for any platform.
Platform feature parity varies. Not all platforms support the same features through their APIs. YouTube supports scheduled publishing, custom thumbnails, and playlists through the API. TikTok's API has more limited scheduling support. Instagram does not support hashtag insertion through the Reels API. V100 documents platform-specific limitations in the API reference and provides the maximum feature set available for each platform.
Publish everywhere with one API call
V100's multi-platform publishing pipeline handles AI reframing, auto-captioning, scheduled posting, and cross-platform analytics. $0.01 per platform per publish. Start a free trial and publish your first video to all 7 platforms today.