List your sites.
Choose Only these domains and type each site, like example.com, with no http:// and no path. Up to 20 to a list.
List the domains where a video may be embedded, for the whole library or one video at a time. Embed code copied onto any other site shows a blocked screen instead of your video, and your analytics name the site that tried. Your share pages and channels keep playing. Every plan.
Choose Only these domains and type each site, like example.com, with no http:// and no path. Up to 20 to a list.
Paste the same embed code on your site. It plays there. Copied onto a site you did not list, it shows a blocked screen.
Each video lists the sites it loaded on and the sites it refused. If a refused site looks like yours, add it in one click.
Allowed domains is on every plan, Solo included. It applies to embeds on other sites. Your share pages, channel pages and the console play the video whatever the list says.
In Settings, under Allowed domains, an admin sets the rule your whole library follows: Only these domains with a list, or Anywhere. Every video follows it until someone gives that video a rule of its own.
Each video's Embeds section offers Same as account default, which says what the default is right now, Only these domains with a list of its own, which starts as a copy of the account's so you add to it rather than replace it, or Anywhere. Editors and admins can change it. Press Save allowed domains.
An entry like *.example.com covers example.com, www.example.com and every other subdomain. Type a bare domain or a www. one and the console offers Use *.example.com, because many sites move visitors between the two and the one you left out would be blocked.
A calm, branded panel that reads This video can't play here. and The owner limits where it can be embedded. It does not link to your share page, so a site you did not allow cannot use your refusal to send its visitors somewhere the video plays.
The video's Analytics tab lists, under Blocked, every site that was refused. The blocked screen tells the viewer nothing, so this is where the record lives.
When a refused site is one small change away from your list, such as www.example.com where you listed example.com, the row says This looks like your site. Press Add *.example.com and the entry is added and saved in one step. A video that followed the account default keeps the account's sites and adds this one.
Sources, on each video's Analytics tab, lists the sites it loaded on over the last 30 days and how many of those loads turned into plays. The dashboard shows the top sources across the account.
Admins get Source activity: a day-by-day log of every Loaded, Played and Blocked event by video and site, over the last 30 or 60 days. New blocks appear within seconds, so you can fix a list and reload the page to check. (direct) is your share page or another Stillhaven page, and (hidden) is a browser that did not say where the embed was.
Only the website's name is recorded. Nothing about the viewer is kept.
Notion, HubSpot and many editors show a pasted link through Iframely, so the embed arrives from Iframely's servers rather than from your site, and a locked video is refused. Tick Allow embeds through Iframely and those embeds play without listing Iframely's hosts yourself.
Some privacy tools and editors hide which site an embed is on. Those viewers can watch unless you tick Block viewers whose browser hides where the embed is. It is the strictest setting and can turn away real viewers, so leave it off unless you need it.
With an API key, the Stillhaven plugin warns in the block editor and its Library when a video is locked to domains that leave your WordPress site out, and its settings page shows the exact host to add. Every paid plan includes a key.
A pasted share link still turns into a player in editors that use oEmbed. The check happens when the player loads, on the site showing it. Changing allowed domains through the API is Creator and up.
How the check works, step by step, is in the embed docs.
Every plan, Solo included: the account default, per-video lists, the Iframely switch, the Blocked list and the one-click fix. Changing allowed domains through the API is Creator and up. See every plan side by side on compare plans, or the rates on pricing.
Vimeo restricts embeds by domain too. What Stillhaven adds is the per-video setting beside the account default, and the report of the sites that were refused. Read Stillhaven vs Vimeo, Stillhaven vs Wistia or Stillhaven vs YouTube.
Allowed domains controls where your videos can be embedded, not who can download or screen-record them. It is not DRM. If you need DRM-level anti-piracy, we are not the right tool yet.
It is not a password either. The check reads the site a viewer's browser reports, which a page on someone else's site cannot fake, and that is what stops a copied embed code. It does not keep a video private, and it does not touch your share page. To control who can watch, use a share-page password, an expiring link, or turn the share page off: see private sharing.
If you need embeds locked to your domains, no ads, and your own branding, see how we compare with Wistia, Vimeo, YouTube and others.
Upload a video, list your site, paste the embed. 14 days free on any monthly plan.
Start 14 days free