← All examples

JavaScript Media bsky.app

Bluesky: click-to-play videos only

Disables timeline video autoplay and pauses everything until you click a video yourself.

Code to copy

// Force click-to-play on every video in the timeline
(function () {
  function tame() {
    document.querySelectorAll('video').forEach(function (v) {
      if (v.dataset.jzBskTamed) { return; }
      v.dataset.jzBskTamed = '1';
      v.autoplay = false;
      v.removeAttribute('autoplay');
      v.controls = true;
      try { v.pause(); } catch (e) {}
    });
  }
  tame();
  var obs = new MutationObserver(tame);
  obs.observe(document.body, { childList: true, subtree: true });
  document.addEventListener('play', function (e) {
    var v = e.target;
    if (v && v.tagName === 'VIDEO' && !v.dataset.jzBskUserPlay) {
      try { v.pause(); } catch (err) {}
    }
  }, true);
  document.addEventListener('click', function (e) {
    var v = e.target && e.target.closest && e.target.closest('video');
    if (v) { v.dataset.jzBskUserPlay = '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