Actions24
- User Actions
- Publish Actions
- Media Actions
- Comment Actions
- Messaging Actions
- Auth (Token) Actions
Publish → Story
AI-generatedSummary
Publishes an image or video as an Instagram Story via graph.instagram.com. It optionally re-hosts the media or burns FFmpeg overlays onto videos first, creates a STORIES container, waits for processing, then publishes it.
Inputs
- Story Media Type — Image (default) or Video. Determines whether the URL is sent as image_url or video_url.
- Media URL (required) — Public URL of the story image or video.
- Re-Host Media First — Default true. Downloads the media and re-uploads it to a public host (Catbox, falling back to 0x0.st; or Supabase) before giving the URL to Instagram. This avoids download timeouts and 403 errors from slow or blocked source servers.
- Add Text / Watermark Overlay — Video stories only. Runs local FFmpeg to burn text onto the video, then re-uploads it. FFmpeg must be installed on the n8n host. It is ignored for image stories.
- Episode Number — With overlays on, draws "{N}-QISM" at the bottom center. Leave empty to skip.
- Username Watermark — With overlays on (default true), fetches the account username via /me and draws it as a semi-transparent @username watermark.
- Overlay Options — FFmpeg path, font file (.ttf, auto-detected per OS if empty), episode and watermark font sizes, watermark opacity, and watermark position (top, bottom, or center).
- Publish Options — Max poll attempts (default 30), poll interval in seconds (default 5), re-host method (Catbox or Supabase), Catbox-compatible upload URL, and Supabase project URL, bucket and service key. Supabase settings are required if Supabase is chosen.
- Graph API Version — graph.instagram.com API version. Default v21.0.
- Access Token (Override) — Overrides the Instagram Login API credential. Use an expression to post to different accounts per input item.
Output shape
One item per input item, containing creation_id (the media container ID) merged with the media_publish response (typically the published media id).
Processes each input item separately. Errors include a failed container (ERROR status), a timeout while polling, a failed re-host and a failed FFmpeg step. With Continue On Fail, an item with an error message is returned instead. Overlay settings only apply to video stories. The container is always polled until FINISHED before publishing.
Examples
Example 1: Post an image story from a URL
Story Media Type = Image, Media URL = https://example.com/story.jpg, Re-Host Media First = true
Example 2: Post a video story with an episode label and watermark
Story Media Type = Video, Media URL = video .mp4, Add Text / Watermark Overlay = true, Episode Number = 3, Username Watermark = true; FFmpeg installed on host
Example 3: Post to several accounts from input data
Access Token (Override) = {{ $json.account_token }}, Media URL = {{ $json.url }}, Re-Host Method = Supabase with URL, bucket and service key