Some notes on Firefox's media autoplay settings as of Firefox 89
Back in 2018 I wrote about Firefox's media autoplay settings as of Firefox 63. Unsurprisingly, things have changed in the Firefox world since then, and for once they've changed for the better, at least from my perspective. My interest is in basically never having video autoplay. And when I say basically never, I mean it. In particular, I don't want Youtube to autoplay the next video in a playlist or the like.
The basic control for media autoplaying (for video and audio) is in Preferences → Privacy & Security, as covered in Allow or block media autoplay in Firefox. As mentioned there, if you want to block all videos you want 'block audio and video', not just 'block audio', which only blocks videos with un-muted audio and still allows silent ones to autoplay if they want to. This appears to affect everything, including bare video content such as direct links to .mp4s, which is a change from 2018. The limitation of this setting is that by itself, once you click to play a video in a tab, (auto)playing stays enabled until you close the tab again. So once you've let the first Youtube video play, Youtube (or anywhere else) will autoplay as much else as it wants to (in that tab). I prefer to specifically play each video.
To get more control, we need to turn to
about:config and its
media.autoplay.* settings. Two resources are handy
for this; the Firefox source code file AutoplayPolicy.cpp
(which has been moved around in the Firefox source tree since 2018)
and an additional commentary for
(via this Reddit question and answer).
The Privacy & Security setting controls
A setting of 0 means 'allow', 1 means 'block audio (including video
with audio)', and 5 means 'block audio and video'. Once you've
played video, the
controls what happens to future attempts to autoplay video in the
same tab. A setting of 0 (the default) allows this to work, so
Youtube gets to autoplay further videos. This is apparently called
A setting of 1 is called transient activation,
and apparently will only autoplay future videos within a narrow
time window controlled by
which defaults to five seconds. Finally, a setting of 2 appears to
always require user input, and it certainly stops Youtube autoplaying
the next video for me. It's possible that a setting of 2 will break
some sites, and you'll need '1' instead.
(This apparently replaces the old
media.autoplay.enabled.user-gestures-needed setting. For a long
discussion, see bug 1509933.)
Unfortunately, WebAudio seems to be another matter. Right now, in
a normal Firefox the only way to disable WebAudio autoplaying seems
to be to have
media.autoplay.blocking_policy left at the default
of 0 and
media.autoplay.block-webaudio set to
true. If you set
another value for
media.autoplay.blocking_policy, WebAudio can
always autoplay if it wants to regardless of other settings. This
may be something that Firefox would consider a bug. Fortunately
WebAudio seems to be relatively rare on the web, and autoplaying
WebAudio even more so.
(I base this on this demo,
which autoplays unless I set
media.autoplay.blocking_policy to 0, provided
The information about Firefox
about:config settings in MDN's
Autoplay guide for media and Web Audio APIs is
somewhat outdated but might be useful, especially for
media.autoplay.block-webaudio. Also, see this question
PS: A website that you've given camera or microphone permissions to is always allowed to autoplay video (or audio) regardless of your media autoplay settings. This hasn't changed since my entries in 2018 and Firefox will probably always continue to do this, since it's sensible for video conference tools.
PPS: In theory bug 1480281 might provide
a way to get some information about Firefox's media autoplay decisions
through either setting the
MOZ_LOG environment variable or through
about:networking's HTTP Logging. In
practice I'm not sure if this works in release builds of Firefox.
You'll probably need to read AutoplayPolicy.cpp to understand