FOSS extension that delays audio and video for synchronized playback
Audio/Video Delay runs locally and does not collect any user data or analytics. It is fully open-source and can be freely reviewed.
If this extension solves your audio issues, please consider sponsoring me at Ko-Fi. Even better (and free!), leave a Google review or star the GitHub repository. Many hours went into making the experience as seamless as possible, so any way of paying it forward is greatly appreciated! If you would like to contribute to the code, you are welcome to do so in the develop branch. Thank you!
- DRM-protected content can only have its audio delayed
- Subtitles are delayed only for videos on YouTube and those using the JW Player
Audio/Video Delay is built for Chromium-based browsers (Brave, Chrome, Edge, etc.). You can install it through the Chrome Web Store or by manually loading it into the browser. Use the latter process if you would like to modify the code or if you just like to guarantee what is running on your computer.
Audio/Video Delay is available here and can be installed like any other extension on the Chrome Web Store
Audio/Video Delay can be manually loaded into the browser with the following steps:
- Download and unzip
Audio-Video-Delay-2.5.0from the latest GitHub release - Visit the browser extensions page and turn on Developer mode
- Click "Load unpacked"
- Select the unzipped folder
Audio/Video Delay uses the Courier New and Brush Script MT fonts, which are not standard on Linux. The following commands can be used to install these fonts for Arch- and Debian-based distros.
- AUR:
yay -S ttf-ms-fonts - apt:
sudo apt install ttf-mscorefonts-installer && sudo fc-cache -fv
Ensure graphics acceleration is enabled in your browser settings. If you have multiple displays, set all to the same refresh rate or watch videos on the one with the highest.
Enable or disable the extension by pressing the bottom button in the GUI. The current on/off state is reflected here.
Video is delayed by default. Delay audio instead by clicking the yellow "Video" button at the top of the GUI. It will change to a red "Audio" button, and clicking it will return the delay mode back to video.
Input the desired delay (in milliseconds) in the middle box of the GUI; no page refresh is required.
NVIDIA GPU users:
- NVIDIA Control Panel -> Manage 3D Settings -> enable Vertical Sync in Global Settings or do so in Program Settings for your browser
- Set all displays to 60fps, as the delay mechanism is fundamentally different for videos at 60fps and above 60fps
- Follow potential fixes in the Intel section below
- Roll back drivers with NVCleanstall if all else fails. If on gaming drivers, try studio drivers instead.
- Send an email to support@cpb.dev with a description of your issues and I will help resolve them
AMD GPU/iGPU users:
- AMD Adrenalin Software -> Gaming -> Display -> enable VRR
Intel GPU/iGPU users:
- Experiment with resolution settings, disabling hardware acceleration in the browser (will reduce performance but will confirm it's a GPU issue), and having multiple displays active (moving the cursor to the display not containing the video may help)
Normal Instagram post videos are inconsistent due to undetermined video caching logic
v2.5.0 - Pausing changed to be immediate while maintaing the delay buffer. Removed the time-based delay for displays over 60hz; previous frame-perfect behavior now available for all displays. Fixed render bug for sites with cross-origin hosted streams. Modified video delay failure result from black video to no modification.
v2.4.6 - Fixed Plex bug where edges weren't fully covered by modifying how video size is determined
v2.4.5 - Bug fix for broken centering caused by v2.4.4
v2.4.4 - Canvas placement fix where delayed video was shifted underneath Bilibili player
v2.4.3 - Modify Plex logic to handle any Plex domain using element 2's ASCII art
v2.4.2 - Plex edge case handling, replaced Instagram Reels bandaid fix with proper solution
v2.4.1 - Resolved a bug which caused a black frame after switching tabs and restarting videos
v2.4.0 - Instagram Reels edge case handling, additional memory leak protections
v2.3.3 - Subtitle alignment fix for thumbnail-sized videos, logic fix for buffering videos, documentation updates
v2.3.2 - General optimization and logic fixes
v2.3.1 - Fallback to original frame queue method for displays over 60fps
v2.3.0 - Optimizations to reduce frame drift and GPU utilization spikes
v2.2.0 - Autogenerated and standard YouTube subtitle delay support
v2.1.0 - Removed fullscreen limitation, GUI behavior modifications
v2.0.0 - Audio delay implemented, GUI update, filename changes, subtitle bug fix
v1.2.1 - Subtitle logic changed to allow multiple styles per line
v1.2.0 - Better render efficiency and subtitle clarity at low resolutions
v1.1.2 - Subtitle bug fix
v1.1.1 - Chrome storage bug fix
v1.1.0 - Subtitle delay support implemented for videos using the JW Player
v1.0.0 - Video delay and UI foundation