Your n8n video workflow, all the way to publishing
Already generating clips in n8n? Send the finished file to QPost, review a draft, then publish to your connected social accounts.
Checked against the platform's official documentation on 2026-10-30. These rules change; confirm against the docs before relying on them.
Download your clip
Save a draft
Review and publish
Tested end to end in n8n 2.45.6 on October 30, 2026: video download multipart upload saved QPost draft, with no publish attempt. Replace the placeholder URL and select your credential before running.
1. Connect the destination and create a key
Create a QPost account, connect your destination under Accounts, and create an API key. A Google sign-in alone does not grant YouTube upload access. For Instagram, use a supported professional account.
2. Import and configure the workflow
- Import the downloaded JSON file into n8n. It contains only built-in nodes and no credentials.
- In Download your video, replace the example URL with a direct, downloadable MP4 you own. The response is stored as binary field
data. - In Save QPost draft, select a Header Auth credential. Set its name to
x-api-keyand its value to your QPost key. Store it in the credential, not in workflow JSON. - Edit the caption. The example targets TikTok; keep
draft=truefor your first run. - Run manually, then open Posts in QPost and inspect your draft.
3. Publish after reviewing the draft
Inspect the saved draft in QPost. Before publishing, confirm the video, caption, destination, privacy and any commercial or AI disclosures. If settings need changing, configure them in the request before creating your next draft. For later automated runs, configure these settings in the API request or community node. Re-running Create makes a new post; to retry an existing post, use its ID and the retry endpoint instead.
For multiple destinations, set platforms to the JSON string below, after connecting each account. Start with one destination while testing.
[
{
"platform": "TIKTOK"
},
{
"platform": "INSTAGRAM"
},
{
"platform": "YOUTUBE"
}
] To schedule a later run, remove draft and add scheduledFor as a future ISO 8601 timestamp with an explicit offset, such as 2026-12-01T14:00:00Z. Without a schedule or draft flag, Create attempts to publish immediately. YouTube also uses the title field.
Why a successful HTTP request is not enough
An accepted upload can still be processing or fail at a destination. Check the returned post ID with GET /api/post/:id and inspect each platform's publishStatus. TikTok publishing is asynchronous. Treat PUBLISHED as the publishing result, rather than the initial HTTP response.
Common setup mistakes
- Missing media: send the binary file as
video, not its URL as caption text. Text-only posts are rejected. - Wrong body type: use Form-Data, with the video parameter set to n8n Binary File and Input Data Field Name
data. Let n8n set the multipart boundary. - Expired media URL: the download must complete before its link expires. A generator job ID or preview webpage is not the video file.
- Duplicate posts: do not blindly retry Create after a timeout. Check Posts first.
Prefer a dedicated node?
On self-hosted n8n, install n8n-nodes-qpost from Settings Community Nodes when your instance permits it. The QPost node supports binary files, URLs, drafts, scheduling, status checks and retries. On n8n Cloud, use the built-in-node workflow above.
References: n8n HTTP Request documentation, community-node availability, and QPost API reference.
Questions people arrive with
Does this work on n8n Cloud?
The downloadable example uses built-in HTTP Request nodes. It does not require installing a community package. Unverified community packages require self-hosted n8n.
Will importing the workflow publish a video?
No. It is inactive, starts manually, and sends draft=true. Replace the video URL and configure your credential before running it. Publishing is a separate step.
Can I use an AI-generated video?
Yes. Download the finished video into n8n binary data, then upload it to QPost. Set the platform disclosure and AI-generated labels that apply before publishing.
Related guides
- Self-hosted TikTok publishing: internal-use rejection and options
- What publishing API access actually takes (TikTok, Instagram, YouTube)
- Why your integration reports success when nothing published
- TikTok: unaudited_client_can_only_post_to_private_accounts
- TikTok: url_ownership_unverified on PULL_FROM_URL
- Are YouTube API uploads still forced to private?
- QPost vs Ayrshare: publishing API comparison
If you'd rather not run the review yourself
QPost is already audited by TikTok and handles the OAuth, token refresh and media hosting for TikTok, Instagram and YouTube. Your users connect their own accounts, and you publish through one REST API or an MCP server. Free while in beta.