Does it seem like Chrome used to do a better job at NOT automatically playing video? Having problems with unmuted video or audio automatically playing when you visit certain sites? Have you gone looking for the old autoplay settings only to discover they’re not in Chrome at all anymore?
You are not alone. In this post, we will first tell you how to fix it, then if you’re interested, keep reading for details about the changes made in Chrome, why they suck, and how we figured out how to disable them. That way, when they change things again, you’ll be able to work out how to handle it.
The Solution:
For Windows, right-click on the icon you click on to start Chrome. If this is on the taskbar on Windows 10, right-click on the taskbar icon, then move up to Google Chrome and right-click on that as well. Then click on Properties, this will open the Google Chrome Properties dialog.
In the Target field, you should see this:
|
<code>"c:\Program Files\Google\Chrome\Application\chrome.exe"</code> |
Click to edit the Target field, Ctrl-A to select everything, hit Backspace to delete it all, and paste the following:
|
"c:\Program Files\Google\Chrome\Application\chrome.exe" --disable-features=PreloadMediaEngagementData,MediaEngagementBypassAutoplayPolicies,RecordMediaEngagementScores,RecordWebAudioEngagement |
Click Apply, Click OK, and you’re done.
For Linux/OSX, the solution is the same. Find the icon you’re clicking on to start Chrome, edit the properties, and add the same command line flags after the location of the Chrome binary:
|
--disable-features=PreloadMediaEngagementData,MediaEngagementBypassAutoplayPolicies,RecordMediaEngagementScores,RecordWebAudioEngagement |
That’s it. Restart Chrome and you should have the old behavior back. Videos might still autoplay on some sites, but they should always be muted until you click on them.
You make sure that it’s off if the chrome://media-engagement/ link stops working! Without this fix, that link will show your current Media Engagement settings and what data has been logged.
What changed? Why does this fix work?
Back in version 62 of Chrome, they added a feature they called Media Engagement Index (MEI), which keeps a log of how many times you actually click on video and audio on various sites. Once you’ve actually clicked on a video on a site a certain number of times, it AUTOMATICALLY DISABLES AUTOPLAY PROTECTIONS for that site. What’s worse than that, they preload a list of sites that get a free bypass of autoplay protections, which includes many porn sites.
Deciding that they did such a good job with this feature, they then proceeded to remove the autoplay settings from the interface in the browser.
Kind of shitty behavior. I guess they never figured that people might want autoplay disabled all the time, even on sites they use frequently or even on the magical list of sites that Google decided get a free pass. Maybe they were just trying to get more people to accidentally blast the audio from porn sites? Otherwise I’m not sure why anyone thought this was a good idea.
Fortunately, you can still disable these features from the command line using the –disable-features flag.
Our recommended fix disables four features, which restore the old autoplay behavior, disable the preloaded bypass list, and completely disable the extra tracking of your media consumption:
PreloadMediaEngagementData – Disabling this feature will disable the list of sites that Google has pre-determined should be able to bypass autoplay protections.
MediaEngagementBypassAutoplayPolicies – Disabling this feature disallows sites that you use regularly to bypass autoplay protections.
RecordMediaEngagementScores – Disabling this feature turns off the Media Engagement tracking altogether.
RecordWebAudioEngagement – Disabling this feature turns off the Media Engagement tracking for web audio.
Try enabling and disabling those features individually if you want to further tune this behavior.
Don’t Take Our Word For It – Look at the Code!
You can search the Chromium source code here: https://source.chromium.org/chromium
This can show you all the other features you might want to disable or enable from the command line. For example, searching for one of our flags, PreloadMediaEngagementData, brings us to a file called media_switches.cc in the Chrome source. This is how we found the flags to disable the whole MEI system, and there are many other feature flags in there you might want to play with.
You can also use the Chromium code search to find out how these feature flags are actually used. Searching again for our flag, we can also see the file media_engagement_contents_observer.cc, which has all of the logic for the MEI features and exactly how and when these flags are used!
If things change in the future, check back on these two files to see if they’ve added more features or logic you need to disable.
What is up with the Preload List? Porn gets to bypass autoplay? Really?
From the Chromium code search, we searched for PreloadMediaEngagementData and found where it loads the list of sites that get to bypass autoplay. It’s coming from a protobuf file called preloaded_data.pb which you can find in your Chrome application folder. On our test machine (version 88), this was at:
|
C:\Program Files\Google\Chrome\Application\88.0.4324.104\MEIPreload\preloaded_data.pb |
Protobuf is a binary data encoding from Google, so you can’t just read it. Being lazy, we just searched Github for preloaded_data.pb, and found this nice Python script , courtesy of NeatMonster, to decode this file to plain text (mirror).
Included in that gist is the list of preloaded list of sites that can bypass autoplay, and you can see sites like pornhub and xhamster in there, among a bunch of other questionable sites for this privilege.
But again, don’t take our word for it, you can run this yourself. Copy your preloaded_data.pb file out of the Chrome folder and into a temporary folder (or Downloads, etc.), save the unpack_dafsa.py file to the same folder, and run it from the command line (requires Python):
That will spit out the current contents of the autoplay bypass list for your installed version of Chrome.
Not exactly a list of sites you want to have just blast audio without your explicit permission, is it?