Posting to YouTube through the API
Where a vertical clip under a minute becomes a Short. The request shape is the same one every network here uses — only the limits on this page change.
Connecting works. Until Google finishes auditing our app, anything we upload stays private on your channel. The status page tracks it.
Connecting a YouTube account
Needs a Google Cloud project with the YouTube Data API. Once connected, we hold the credential and keep it alive; your code only ever sends the API key.
The limits we enforce before publishing
Caption
5000 characters. Over the limit comes back as a 422 before anything publishes.
Media
Up to 1 per post. Video required — a post without one fails pre-flight.
Video
1s to 12h 0m, up to 1.0 GB. Under 60s and vertical is published as a Short.
Cadence
3 posts a day per account — the ceiling that stays under YouTube's spam heuristics.
What pre-flight rejects, verbatim
A request that breaks a YouTube rule comes back as a 422 naming the network and the number — before anything is scheduled, not after the other networks published. The error strings are these:
5132 chars — YouTube allows 5000.3 attachments — YouTube allows 1.YouTube requires a video.Video is 24h 0m — YouTube allows 12h 0m.
The request
curl -X POST https://attentionpilot.com/api/v1/posts \
-H "Authorization: Bearer $PILOT_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"caption": "Written for YouTube, under 5000 characters.",
"accounts": ["youtube"]
}'Omit schedule for the next free queue slot, send "now" to publish immediately, or send an ISO timestamp.
When YouTube fails
Each network is delivered on its own. A revoked token or a rejected upload on YouTube never blocks your other targets: the post returns "partial", the YouTube target carries the error text, and you can retry just this delivery.
Worth knowing
- ✓5,000-character description
- ✓Video required
- ✓Under 60s and vertical publishes as a Short
The same call reaches the rest
Posting to YouTube is an API call.
Start freeOne account free. No card.