muted
, autoplay
, playsinline
, loop
) to HTML5 videos to trigger autoplay.Safari's autoplay restrictions and iOS Low Power Mode often prevent videos from autoplaying, replacing them with a visible play button instead. There are workarounds, but limitations are imposed by the browser and OS.
If you’re seeing a play button, you're likely using a custom HTML video element. Use this snippet in Before
Tag under Page Settings or Site Settings > Custom Code:
muted
, autoplay
, playsinline
, and loop
.document.addEventListener("DOMContentLoaded", function () { const video = document.querySelector("video"); if (video) { video.muted = true; video.autoplay = true; video.playsInline = true; // especially important for iOS const playPromise = video.play(); if (playPromise !== undefined) { playPromise.catch(error => { // Autoplay not allowed video.controls = false; // hide native controls/play button }); } }});
Note: Don't expect this to override iOS Low Power Mode or Safari’s hard limitations.
Since nothing can force Safari/iOS to autoplay in Low Power Mode, a common fallback is:
Webflow's native background video is optimized for autoplay but can't override iOS Low Power Mode or Safari's autoplay rules. Use custom code to force muted playback, but always provide fallback content on mobile devices where autoplay may fail.