Install
zingzy / Instagram Background Play

Published:

Version: 1.0.0+828eea1

Summary: Keep Instagram videos and reels playing when you switch tabs or apps. Stops Instagram from pausing playback the moment you look away, and keeps picture-in-picture live instead of frozen.

Groups:

Homepage: https://github.com/Zingzy/instagram-background-play

Support: https://github.com/Zingzy/instagram-background-play/issues

License: MIT

Antifeature: unspecified

Keep reels and videos playing when you switch tabs. No more frozen picture-in-picture.

What it does

Instagram on the web pauses whatever you are watching the instant you switch to another tab or window. If your browser has automatic picture-in-picture (like Arc, or Chrome with Auto-PiP enabled), you get a frozen preview instead of a playing video.

This is deliberate on Instagram's side: the page watches for the tab going hidden and pauses playback on purpose.

This script stops that. Videos and reels keep playing when you switch away, and picture-in-picture stays live. There is nothing to configure: install it, open Instagram, play a reel, switch tabs.

How it works

Instagram detects you leaving through three channels, and the script defuses each one:

  1. Page Visibility API spoofing: document.visibilityState always reports visible, so polling never notices you left.
  2. Event interception: visibilitychange, blur, focusout, pagehide and friends are captured at the window level before Instagram's listeners can react.
  3. Pause call filtering: any programmatic pause() fired while the tab is genuinely backgrounded is dropped. Your own pauses still work normally, whether you click the video or use picture-in-picture controls.

No data is collected, nothing leaves your browser, and the script only runs on instagram.com.

Tips

  • Pairs well with automatic picture-in-picture: built into Arc, or in Chrome under Settings > Site settings > Additional permissions > Automatic picture-in-picture.
  • On Chromium browsers, Tampermonkey needs the Allow User Scripts toggle (or Developer mode on older versions) enabled on the extensions page, otherwise scripts silently never run.

Caveats

  • Instagram believes the tab is always active, so if you leave a DM conversation open in a backgrounded tab, read receipts may fire while you are away.
  • Intentionally scoped to Instagram only. Sites legitimately use the visibility API to save battery, so a blanket override for every site would be a bad idea.

Support

Found a bug, or did an Instagram update break something? Report it on GitHub.

Rating: 0