Iframe Embed Code — One Tag, Every Platform

Iframe Embed Code

Every video on AVCaption gets a single iframe code:

<iframe
  src="https://avcaption.com/watch/{your_embed_token}"
  frameborder="0"
  allow="autoplay; encrypted-media; fullscreen"
  allowfullscreen
  loading="lazy"
  width="100%"
  style="aspect-ratio: 16/9"
></iframe>

Paste it on any platform that accepts HTML. That’s it.

Where it works

CMS / Blog

  • WordPress (Custom HTML block, Code block, raw post HTML)
  • Ghost (HTML card)
  • Substack (HTML in posts, including paid posts)
  • Medium (limited — bookmark cards only, no iframe)
  • Hashnode (Embed block)

LMS / Course platforms

  • Teachable (Video block accepts iframe code via “Custom Code”)
  • Thinkific (Custom Code block)
  • Kajabi (HTML block in posts and product pages)
  • LearnDash (HTML in lesson body)
  • LearnWorlds (Embed block)
  • Podia (Custom HTML)

No-code builders

  • Webflow (Embed element)
  • Bubble (HTML element)
  • Wix (HTML iframe block)
  • Squarespace (Code block)
  • Carrd (Embed section)
  • Framer (Embed component)

Productivity / Knowledge

  • Notion (/embed slash command)
  • Coda (Embed)
  • ClickUp (Embed view)

Email — limited. Most email clients block iframes (Gmail, Outlook). Send a link with og:image preview instead.

URL parameters

Append query parameters to the iframe src:

  • ?autoplay=1&muted=1 — start playing on load (muted required for autoplay)
  • ?start=120 — seek to 120s
  • ?subtitle=vi — preselect Vietnamese subtitle
  • ?quality=1080 — force 1080p variant
  • ?loop=1 — restart on end
  • ?controls=0 — hide all controls (kiosk mode)

Combine multiple: ?autoplay=1&muted=1&start=30&subtitle=es.

Security headers

The iframe responds with:

  • Content-Security-Policy: frame-ancestors {your_whitelist} — browsers block embedding on non-whitelisted origins
  • Referrer-Policy: strict-origin — referrer info limited to scheme+host
  • Permissions-Policy: autoplay=*; fullscreen=* — needed for the allow attribute to work

You don’t configure any of this — AVCaption sets the right headers based on your domain whitelist.

Performance

  • First paint: 600-900ms on 4G mobile, sub-300ms on broadband
  • HLS.js + player JS: ~60KB minified+gzipped
  • First segment pre-warmed at upload time, served from CDN edge
  • loading="lazy" defers iframe load until user scrolls near it (recommended)

Responsive sizing

The iframe is fully responsive when you use width="100%" and aspect-ratio: 16/9. The video scales to its container, which is what you want on most sites.

For a fixed pixel size: width="800" height="450" (or any 16:9 ratio).

For non-16:9 (e.g. 4:3 archival video): set aspect-ratio: 4/3 to match the source.

Get started

Every video uploaded to AVCaption has an iframe code on the video detail page. Upload one test video, copy the iframe, paste it into a Notion doc or a draft blog post — the embed renders the same way it will on Teachable, Kajabi, Confluence, Salesforce Community pages, or your custom site. Common production embed targets: LMS video hosting, online courses, digital products.

Frequently asked questions

Does the iframe embed work on WordPress? +
Yes. Paste it into a Custom HTML block, a Code block, or directly in the post HTML. WordPress's stripping of script tags doesn't affect iframes.
Does it work in an LMS like Teachable, Thinkific, Kajabi? +
Yes. All major LMS platforms support iframe embeds. Some have a dedicated 'video embed' block; others accept raw HTML — both work.
What about Notion, Substack, Ghost, Bubble? +
Notion supports iframe embeds via the /embed slash command. Substack supports iframes in paid newsletters. Ghost has a custom HTML block. Bubble has an HTML element. All work.
← content.back_to_index