YouTube Zapier integration: upload a video from a Zap
Zapier's YouTube integration has an Upload Video action. Map a public, direct file URL into its Video field to post a finished video from a Zap.

Zapier's YouTube integration can upload videos: its Upload Video action posts a video to your channel from a Zap, with Title, Description, and Video required, plus optional fields for privacy status and a publish time. To post a generated video, trigger it from the video service's webhook, check the delivery, and put the finished file's public URL in the Video field.
Zapier's fields and file rules are quoted from its YouTube integrations page and its help article on sending files; the Sume side comes from Run webhooks. All were read on 2026-09-28. Sume has no Zapier app; it sends a plain signed HTTPS POST.
What can Zapier's YouTube integration do?
Zapier lists these YouTube triggers and actions. The triggers poll: Zapier checks for new data every 15 minutes on the Free plan.
| Type | Name | What it does on YouTube |
|---|---|---|
| Action | Upload Video | Post a video to your channel |
| Action | Add Video to Playlist | Add a video to one of your playlists |
| Action | Update Video Thumbnail | Updates the thumbnail; needs a verified phone number |
| Search | Find Video | Search for videos by keywords, channel, date range, and more |
| Search | Get Report | A report on your owned and managed channels |
| Action | API Request (Beta) | A raw HTTP request that includes the integration's authentication |
| Trigger | New Video in Channel, New Video by Search, New Video in Playlist, New Comment on Video, New Live Stream | Start a Zap from channel activity |
How do I upload a generated video with a Zap?
Use one workflow that starts when the video is done. Zapier AI video automation builds it for a Sume run: a Catch Raw Hook trigger receives Sume's one signed POST, and a Code step checks the HMAC-SHA256 signature over <timestamp>.<raw_body> from the x-sume-webhook-signature header. Then add YouTube's Upload Video:
- Continue only when the check passed,
eventisformat.run.terminal, andstatusisOK, which means the run completed.ERRORmeans it failed. - Video: map
payload.primary_output_url, the finished file. - Title and Description: both required. Fill them from your own data or the run's output.
- Privacy status and publish time: optional fields on the action. YouTube's Videos resource accepts a publish time only on a private video that has never been published; see Can you schedule YouTube Shorts?.
- Also on the action: Thumbnail, Tags, Category, Made for kids, Notify subscribers, and localized titles.
- Dedupe on the envelope's
request_id. It equals the run id and stays the same on every retry, so a retried delivery must not post the video twice.
Which URL goes in the Video field?
The Video field needs a public, direct link to the file itself, not to a watch or preview page. Zapier's rules for file URLs, and the links it lists as failing, are in Zapier: upload a file to Google Drive. For a generated clip:
primary_output_urlis a durablemedia.sume.comHTTPS URL that does not expire and is public to anyone holding it. Test the Upload Video action on one real run's URL before you switch it on, and treat the URL as a secret until the video is live on YouTube.- The
/v1/videos/{jobId}/contentroute needs your API key in a header, which the Video field can't send. - A failed run's receipt can still carry files in
artifacts[], butprimary_output_urlstaysnullunless the runcompleted, so an empty Video field is a sign to checkstatus.
What are the limits for a YouTube upload through Zapier?
Zapier caps downloads from connected apps at 150 MB, so a video file above that size can fail in the Video field; upload those from code instead.
- Sume sends one webhook per run and inlines receipts up to 1 MiB. A larger one arrives with
payload: nulland aresult_urlto fetch, which you read with your key in a Webhooks by Zapier GET step. - If you'd rather make the upload yourself from code, Automate YouTube Shorts with AI calls the YouTube Data API directly.
Sources
Related posts
More in Integrations
- How to add an MCP server to ChatGPT with developer mode
Turn on ChatGPT developer mode, create an app for the server's URL, and sign in with OAuth. The steps, with Sume's hosted MCP server as the example.
- How to add subtitles to a video in Python
Add subtitles to a video in Python with Requests: POST the video URL to Sume's /v1/video-captions, poll the job, then read the captioned video_url.
- Add Sume to Claude as a custom connector (remote MCP)
Add Sume's hosted MCP server to Claude under Customize > Connectors, see what Sume's OAuth consent grants, and decide whether to allow paid tools.
- Airflow HTTP sensor: wait for an AI video job to finish
Submit an AI video job with Airflow's HttpOperator, then wait with an HttpSensor in reschedule mode that passes once the job's status is completed.
Written by Sume