How to Embed Your Live Stream on Any Website (Step by Step)
A step-by-step guide to embedding your playout.video live channel on your own website: creating the embed, choosing access mode, DVR and quality settings, and troubleshooting playback.
Before You Start
Website embedding requires the Business plan (or Enterprise). On other plans the Embed tab shows an upgrade path; see Understanding Plans and Pricing.
You need edit access to the website where the player will live: any CMS or site builder that accepts HTML (WordPress, Webflow, Squarespace, Framer, hand-written HTML) works.
Step 1: Create the Embed
Open the stream you want to publish and go to its Embed tab.
Click Create embed. This generates the embed with a public player link and embedding enabled.
You now see the two things you'll actually use:
Player link: a hosted player page, useful for testing and for sharing directly
Embed code: the iframe snippet for your site
Step 2: Put the Snippet on Your Site
Copy the embed code and paste it where the player should appear:
<iframe
src="https://stream.playout.video/e/YOUR_PLAYER_ID"
style="width:100%;aspect-ratio:16/9;border:0"
allow="autoplay; fullscreen; picture-in-picture"
allowfullscreen></iframe>
The default style makes the player fill its container at 16:9, so control its size by sizing the container. In WordPress use a Custom HTML block; in Webflow an Embed element; in Squarespace a Code block.
Open your page. If your stream is live, you're watching it on your own site.
Step 3: Choose an Access Mode
In the Embed tab under Access:
Public: anyone with the link can watch, from any site. Fine for open channels.
Domain-restricted: playback only works on domains you add to the allowlist (e.g.
yourchurch.org). Recommended for most sites: it stops anyone from lifting your embed onto their own page. Add each domain the player will load on, including a staging domain if you use one.Signed: playback requires a token your own server mints. This is for paywalled and members-only setups and doesn't work with the copy-paste iframe; use domain-restricted unless you're building your own player integration.
Step 4: Tune the Player
Three settings, all in the same panel:
Passthrough vs adaptive. By default the embed streams with an adaptive quality ladder, so each viewer gets the best quality their connection carries. Switching passthrough on sends the single source quality instead. Changing this while live briefly reconnects viewers.
Live rewind (DVR). Choose live edge only, 1 hour, or 4 hours of rewind. With rewind on, viewers can scrub back through the show and jump to live again.
Show viewer count. Adds a live "N watching" badge to the player. The same live number appears next to the embed toggle in your dashboard.
Managing the Embed Over Time
Turn it off without deleting. The Embedding enabled switch stops the player and every existing embed from loading, and turns back on just as fast. Useful between seasons or during private events.
Rotate the link if it leaks. Rotate link issues a new player ID and kills the old one immediately. Update the iframe on your site afterward.
Delete removes the embed permanently.
Troubleshooting
The player shows nothing / an error on my site. Check, in order: the embed is enabled; your stream is actually live; and if you're on domain-restricted mode, the exact domain of the page (including subdomain) is in the allowlist.
It plays on the player link but not on my website. That's almost always the domain allowlist. Add the site's domain, or switch to public mode to confirm, then restrict again.
Quality looks lower than the source. Adaptive playback starts conservatively and climbs. If it stays low, the viewer's connection is the limiter, which is exactly the situation adaptive mode exists for.
I changed passthrough/adaptive and viewers dropped for a moment. Expected: switching the transcoding mode restarts the output path. Do it between shows if possible.