← All examples

JavaScript Media mastodon.social

Mastodon: stop video autoplay

Stops videos from auto-playing in the timeline so you have to click to start each clip.

Code to copy

// Pause auto-playing videos and force click-to-play
(function () {
  function pauseAll() {
    document.querySelectorAll('video').forEach(function (v) {
      if (v.dataset.jzPaused) { return; }
      v.dataset.jzPaused = '1';
      v.autoplay = false;
      v.removeAttribute('autoplay');
      try { v.pause(); } catch (e) { /* ignore */ }
    });
  }
  pauseAll();
  var obs = new MutationObserver(pauseAll);
  obs.observe(document.body, { childList: true, subtree: true });
  document.addEventListener('play', function (e) {
    var v = e.target;
    if (v && v.tagName === 'VIDEO' && !v.dataset.jzUserPlay) {
      try { v.pause(); } catch (err) { /* ignore */ }
    }
  }, true);
  document.addEventListener('click', function (e) {
    var v = e.target && e.target.closest && e.target.closest('video');
    if (v) { v.dataset.jzUserPlay = '1'; }
  }, true);
})();

How to use this example

  1. Copy the code with the button above.
  2. Install JustZix (2 minutes) and open the extension on the target page.
  3. Add a new rule matching that page.
  4. Paste the code into the rule's JavaScript panel and save — it runs on every page visit.

Rate this example

No ratings yet — be the first.

Does this example work?

Snippets are useless without somewhere to paste them.

JustZix takes 2 minutes to install and runs your code on every matching page. No account, no payment.

Download free See use cases