Instagram does not offer a built-in feature to embed a video inside a post or story — the platform’s embed tools place your public Instagram content onto external websites, blogs, or apps instead.
That sentence stops most of the confusion cold. People come to this topic because they want to do one of two things, and they usually want the wrong one explained first. Either you want to put an Instagram video onto your own website (the official embed feature), or you want to place a video into Instagram itself (which uses the upload button, not an embed). The official and widely-documented method is the first one, and that’s where the real help lives.
This article walks both paths — the embed-to-website route with exact steps, the upload-to-Instagram route for the other half — and clears up the one mistake that wastes the most time.
What Instagram Embed Actually Does
Instagram’s embed feature works only one direction: from Instagram out to an external site. It cannot insert a video into someone else’s Instagram post, your own feed, or a Story. If the account is public, anyone can grab the embed code for a post, reel, photo, or profile and paste it into a blog, news article, or web app. That embed code is an iframe piece of HTML that loads the content directly from Instagram — you do not download the video file itself, and the playback controls stay Instagram’s.
The same rule applies in reverse: private accounts and private content are invisible to the embed system. Only public posts are eligible.
The Official Steps to Embed an Instagram Video on a Website
Open the post or reel in a desktop browser, tap the three-dot menu, and choose Embed. Instagram generates a short block of HTML you can drop into any site that accepts custom code. Here is the exact sequence:
- Navigate to the Instagram post or reel in a web browser (Chrome, Safari, Edge, or Firefox — all work the same way).
- Click or tap the three-dot icon in the upper-right corner of the post.
- Select Embed from the menu. A popup appears with the embed code already generated.
- Click Copy Embed Code. The HTML is now on your clipboard.
- Paste that code into your website’s HTML editor, blog post, or wherever your CMS accepts third-party embed blocks.
That’s it. The video appears as an interactive player on your page, and anyone watching it is seeing the original Instagram-hosted version, updated live. If the original account deletes the post, the embed breaks — you’re displaying a live feed, not a static file.
Programmatic Embed via the Instagram oEmbed API
Website developers can also pull embed HTML programmatically using Meta’s oEmbed endpoint. Instead of copying code manually, you send a single GET request with the post URL and get back structured data including the embed HTML, thumbnail URL, author name, and provider attribution.
The API call looks like this:
GET /instagram_oembed?url=<URL_OF_THE_POST>&access_token=<ACCESS_TOKEN>
Key details from Meta’s developer documentation:
- The access token can be supplied as a query parameter or in the
Authorization: Bearer <ACCESS_TOKEN>header. - If using a client access token, append your Meta App ID with a pipe symbol — otherwise the request fails.
- Request optional fields like
thumbnail_url,author_name,provider_name, andprovider_url. - The
maxwidthparameter controls the embed player width. - Meta’s oEmbed response returns embed HTML and basic metadata only — it is not a video download endpoint.
This route is ideal for news sites, signage dashboards, and apps that display live Instagram content at scale.
Common Mistakes That Waste Time
The single most frequent error is looking for an embed feature inside the Instagram app itself. Posting a video to your own feed uses the plus button, not embed code — embed is an export-to-web function, not an import-into-Instagram function. Below are the other regular issues:
| Mistake | Why It Fails | Fix |
|---|---|---|
| Trying to embed a private post | Private accounts block public embed codes | Make the post public temporarily, or use an alternative posting method |
| Searching for “embed video” inside the Instagram mobile app | The embed option does not exist in the mobile app — only the browser version shows it | Open the same post in your phone’s browser and request the desktop site |
| Pasting embed code into a plain text field instead of an HTML editor | Plain text fields display the code as readable text, not a player | Use your site’s Custom HTML or Embed block instead |
| Using the wrong access token format with the API | Client tokens require App ID + pipe — missing either causes a silent rejection | Double-check the format: APP_ID|CLIENT_TOKEN without spaces |
Each of these stops the process cold, but each has a straightforward correction.
How to Upload a Video Directly to Instagram (What People Often Actually Want)
If your real goal is putting a video into an Instagram post, reel, or story, the action is upload, not embed. Instagram’s native flow is simpler than most people expect:
- Tap the + (plus) icon at the bottom of the screen.
- Select the video from your camera roll or gallery.
- Choose a format — Post, Reel, or Story. Posting as a Reel gets the most reach on the platform currently.
- Apply any edits, filters, or music, then tap Share (or Next for a standard post).
You get a native Instagram video that lives inside the platform and behaves like any other post — comments, likes, shares, and all. This method works for both public and private accounts, and there is no embed code involved at any step.
The when the post finishes processing, it appears in your profile grid or Reels tab instantly. If the progress bar stalls or the video stays stuck at “processing,” check that the video format meets Instagram’s specs (MP4 or MOV, under 60 minutes for Reels, under 10 minutes for feed posts).
How Embedding and Uploading Compare Side by Side
| Method | What It Does | Where the Video Lives | Best For |
|---|---|---|---|
| Embed from Instagram | Places an existing Instagram post/reel onto an external website | Stays on Instagram; loads via iframe on your site | Blog posts, news articles, signage, portfolio websites |
| Upload to Instagram | Adds a new video to your personal feed, Reels tab, or Story | Lives inside Instagram; visible to your followers | Personal or brand content, influencer posting, promotion |
Instagram’s embed policy for public accounts states that anyone can embed a public post, reel, or profile, but the content must remain public for the embed to keep working. If you change your account to private after embedding, the embedded player stops loading.
Finish With the Right Path for Your Situation
Two questions decide which route is yours: Where does the video need to appear, and who needs to see it? If the answer is “on my website for the general public to watch,” embed the post from a public account. If the answer is “in my own Instagram feed for my followers to engage with,” upload it through the plus button. The only wrong move is searching the Instagram app for an “embed” button — it is not there, and it was never meant to be.
Start with the method that matches your screen. If you are looking at a browser tab with a web editor open, use the three-dot embed path. If you are looking at the Instagram app with a video clip in your camera roll, tap the plus icon. The rest of the process is one step past that decision.
References & Sources
- Instagram Help Center. “Embed an Instagram Post or Profile.” Official support article covering public-account embedding rules and steps.
- Meta for Developers. “oEmbed – Instagram Platform.” Developer documentation for programmatic embed via the oEmbed API endpoint.
- Retriever Digital Signage. “Instagram Embed Guide.” Practical notes on iframe-based embedding for third-party signage and web displays.
- Embedsocial. “How to Embed Instagram Reels on a Website.” Alternative walkthrough covering Reel-specific embed process.
