A Safari port of Global Speed - a powerful browser extension for controlling video/audio playback speed and audio effects.
Note: This is an unofficial Safari port for personal use. All credit goes to the original author polywock. Please support the original project!
- macOS (required for Safari extension development)
- Xcode (free from Mac App Store)
- Node.js and npm
- Basic command line knowledge
- Visit https://developer.apple.com
- Click Account (top-right corner)
- Sign in with your Apple ID.
- After signing in, you’ll see a prompt to review and accept the Apple Developer Agreement.
- Read and click Agree.
Once you’ve accepted the agreement:
- You now have a free Apple Developer account.
- You can access:
- Xcode developer tools
- Documentation
- Sample code
- Developer forums
Note: To distribute apps / publish apps on the App Store requires a paid membership.
- Open the Mac App Store
- Search for "Xcode" and install it
- Open Xcode once to accept the license agreement
OR
git clone https://github.com/polywock/globalSpeed.git
cd globalSpeed
npm install
npm run build:prodThis will create a build/unpacked folder with the compiled extension.
Use Apple's conversion tool to create a Safari-compatible extension:
xcrun safari-web-extension-converter build/unpacked --app-name "Global Speed"You'll see warnings about unsupported APIs - this is expected. Some Chrome-specific features may not work in Safari:
offscreen- Advanced audio processingtabCapture- Tab audio captureuserScripts- Some content script features
It will open automatically, if it doesn't use this
cd "Global Speed"
open "Global Speed.xcodeproj"In Xcode:
- Click on "Global Speed" in the left sidebar (blue project icon)
- Select "Global Speed" target
- Go to "Signing & Capabilities" tab
- Under Team, select your Apple ID (add account if needed)
- Select "Development"
- Check "Automatically manage signing"
- Repeat for "Global Speed Extension" target
Important: Make sure both targets are set to macOS only (not iOS). If you see iOS errors:
- Look for "Supported Destinations"
- Uncheck iOS and iPad, keep only macOS
When building, macOS will ask for your password multiple times:
- Always click "Always Allow" (not just "Allow")
- This prevents the popup from appearing repeatedly
- If this does not work then try:
security unlock-keychain ~/Library/Keychains/login.keychain-db- After the build is completed, lock the Keychain manually again using
security lock-keychain ~/Library/Keychains/login.keychain-db- In Xcode, press the Play button (
▶️ ) or pressCmd + R - A simple app window will open with instructions
- The extension is now loaded into Safari
- Open Safari
- Go to Safari → Settings → Advanced
- Check "Show Develop menu in menu bar"
- In the menu bar, click Develop → Allow Unsigned Extensions (for first-time setup)
- Go to Safari → Settings → Extensions
- Enable "Global Speed Extension"
- Grant any requested permissions
- The Global Speed icon should appear in Safari's toolbar
- Click it to access speed controls and settings
- Visit any website with video/audio and test it out!
Since Safari doesn't support all Chrome APIs, some features may not work:
- Advanced audio effects (offscreen API not supported)
- Tab audio capture (tabCapture API not supported)
- Some content script injection features
Basic playback speed control and most features should work fine.
- Once signed, you don't need to click "Allow Unsigned Extensions" every time
- To reload changes: rebuild in Xcode (
Cmd + R)
To update when the original extension releases new versions:
cd globalSpeed
git pull origin master
npm install
npm run build:prodThen rebuild in Xcode.
Extension doesn't appear in Safari:
- Make sure you clicked "Allow Unsigned Extensions" in Develop menu
- Restart Safari completely (
Cmd + Q, then reopen) - Check that both targets are signed in Xcode
Build errors about iOS:
- Select each target in Xcode
- Make sure only macOS is selected in "Supported Destinations"
- Original Extension: polywock/globalSpeed
- Safari Port: Community contribution for personal use