├── OpenSpotifySafariExtension.appex ├── popup.js ├── Info.plist ├── images │ ├── icon-128.png │ ├── icon-256.png │ ├── icon-48.png │ ├── icon-512.png │ ├── icon-64.png │ ├── icon-96.png │ ├── toolbar-icon-16.png │ ├── toolbar-icon-19.png │ ├── toolbar-icon-32.png │ ├── toolbar-icon-38.png │ ├── toolbar-icon-48.png │ └── toolbar-icon-72.png ├── OpenSpotifySafariExtension ├── background.js ├── popup.html ├── popup.css ├── _locales │ └── en │ │ └── messages.json ├── content.js └── manifest.json └── README.md /OpenSpotifySafariExtension.appex/popup.js: -------------------------------------------------------------------------------- 1 | console.log("Hello World!", browser); 2 | -------------------------------------------------------------------------------- /OpenSpotifySafariExtension.appex/Info.plist: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BillyCurtis/OpenSpotifySafariExtension/HEAD/OpenSpotifySafariExtension.appex/Info.plist -------------------------------------------------------------------------------- /OpenSpotifySafariExtension.appex/images/icon-128.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BillyCurtis/OpenSpotifySafariExtension/HEAD/OpenSpotifySafariExtension.appex/images/icon-128.png -------------------------------------------------------------------------------- /OpenSpotifySafariExtension.appex/images/icon-256.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BillyCurtis/OpenSpotifySafariExtension/HEAD/OpenSpotifySafariExtension.appex/images/icon-256.png -------------------------------------------------------------------------------- /OpenSpotifySafariExtension.appex/images/icon-48.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BillyCurtis/OpenSpotifySafariExtension/HEAD/OpenSpotifySafariExtension.appex/images/icon-48.png -------------------------------------------------------------------------------- /OpenSpotifySafariExtension.appex/images/icon-512.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BillyCurtis/OpenSpotifySafariExtension/HEAD/OpenSpotifySafariExtension.appex/images/icon-512.png -------------------------------------------------------------------------------- /OpenSpotifySafariExtension.appex/images/icon-64.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BillyCurtis/OpenSpotifySafariExtension/HEAD/OpenSpotifySafariExtension.appex/images/icon-64.png -------------------------------------------------------------------------------- /OpenSpotifySafariExtension.appex/images/icon-96.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BillyCurtis/OpenSpotifySafariExtension/HEAD/OpenSpotifySafariExtension.appex/images/icon-96.png -------------------------------------------------------------------------------- /OpenSpotifySafariExtension.appex/OpenSpotifySafariExtension: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BillyCurtis/OpenSpotifySafariExtension/HEAD/OpenSpotifySafariExtension.appex/OpenSpotifySafariExtension -------------------------------------------------------------------------------- /OpenSpotifySafariExtension.appex/images/toolbar-icon-16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BillyCurtis/OpenSpotifySafariExtension/HEAD/OpenSpotifySafariExtension.appex/images/toolbar-icon-16.png -------------------------------------------------------------------------------- /OpenSpotifySafariExtension.appex/images/toolbar-icon-19.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BillyCurtis/OpenSpotifySafariExtension/HEAD/OpenSpotifySafariExtension.appex/images/toolbar-icon-19.png -------------------------------------------------------------------------------- /OpenSpotifySafariExtension.appex/images/toolbar-icon-32.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BillyCurtis/OpenSpotifySafariExtension/HEAD/OpenSpotifySafariExtension.appex/images/toolbar-icon-32.png -------------------------------------------------------------------------------- /OpenSpotifySafariExtension.appex/images/toolbar-icon-38.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BillyCurtis/OpenSpotifySafariExtension/HEAD/OpenSpotifySafariExtension.appex/images/toolbar-icon-38.png -------------------------------------------------------------------------------- /OpenSpotifySafariExtension.appex/images/toolbar-icon-48.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BillyCurtis/OpenSpotifySafariExtension/HEAD/OpenSpotifySafariExtension.appex/images/toolbar-icon-48.png -------------------------------------------------------------------------------- /OpenSpotifySafariExtension.appex/images/toolbar-icon-72.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BillyCurtis/OpenSpotifySafariExtension/HEAD/OpenSpotifySafariExtension.appex/images/toolbar-icon-72.png -------------------------------------------------------------------------------- /OpenSpotifySafariExtension.appex/background.js: -------------------------------------------------------------------------------- 1 | browser.runtime.onMessage.addListener((request, sender, sendResponse) => { 2 | console.log("Received request: ", request); 3 | 4 | if (request.greeting === "hello") 5 | sendResponse({ farewell: "goodbye" }); 6 | }); 7 | -------------------------------------------------------------------------------- /OpenSpotifySafariExtension.appex/popup.html: -------------------------------------------------------------------------------- 1 | 2 | 3 |
4 | 5 | 6 | 7 | 8 | 9 | Hello World! 10 | 11 | 12 | -------------------------------------------------------------------------------- /OpenSpotifySafariExtension.appex/popup.css: -------------------------------------------------------------------------------- 1 | :root { 2 | color-scheme: light dark; 3 | } 4 | 5 | body { 6 | width: 100px; 7 | padding: 10px; 8 | 9 | font-family: system-ui; 10 | text-align: center; 11 | } 12 | 13 | @media (prefers-color-scheme: dark) { 14 | /* Dark Mode styles go here. */ 15 | } 16 | -------------------------------------------------------------------------------- /OpenSpotifySafariExtension.appex/_locales/en/messages.json: -------------------------------------------------------------------------------- 1 | { 2 | "extension_name": { 3 | "message": "Open in Spotify", 4 | "description": "The display name for the extension." 5 | }, 6 | "extension_description": { 7 | "message": "Displays an Open in Spotify alert for sideloaded Spotify. Requires EeveeSpotify 3.1 or newer.", 8 | "description": "Description of what the extension does." 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # How to install 2 | - Requires [EeveeSpotify](https://github.com/whoeevee/EeveeSpotifyReborn) v3.1 or newer. 3 | - Download OpenSpotifySafariExtension.appex 4 | - Unzip your Spotify.ipa & copy the .appex file you downloaded to /Payload/Spotify.app/Plugins 5 | - Compress the Payload folder and then rename the zip folder from Payload.zip to Spotify.ipa 6 | - Sideload using [Sideloadly](https://sideloadly.io/) or your preferred signing service 7 | - Go to Settings > Safari > Extensions > Open in Spotify and toggle it **On** then change it from **Ask** to **Allow** 8 | -------------------------------------------------------------------------------- /OpenSpotifySafariExtension.appex/content.js: -------------------------------------------------------------------------------- 1 | browser.runtime.sendMessage({ greeting: "hello" }).then((response) => { 2 | console.log("Received response: ", response); 3 | }); 4 | 5 | browser.runtime.onMessage.addListener((request, sender, sendResponse) => { 6 | console.log("Received request: ", request); 7 | }); 8 | 9 | function afterNavigate() { 10 | if (window.location.pathname != "/") { 11 | window.location.href = "spotify://eevee/" + window.location.host + window.location.pathname 12 | } 13 | } 14 | 15 | (document.body || document.documentElement).addEventListener('transitionend', 16 | function(/*TransitionEvent*/ event) { 17 | if (event.propertyName === 'width' && event.target.id === 'progress') { 18 | afterNavigate(); 19 | } 20 | }, true); 21 | // After page load 22 | afterNavigate(); 23 | -------------------------------------------------------------------------------- /OpenSpotifySafariExtension.appex/manifest.json: -------------------------------------------------------------------------------- 1 | { 2 | "manifest_version": 3, 3 | "default_locale": "en", 4 | 5 | "name": "__MSG_extension_name__", 6 | "description": "__MSG_extension_description__", 7 | "version": "1.0", 8 | 9 | "icons": { 10 | "48": "images/icon-48.png", 11 | "96": "images/icon-96.png", 12 | "128": "images/icon-128.png", 13 | "256": "images/icon-256.png", 14 | "512": "images/icon-512.png" 15 | }, 16 | 17 | "background": { 18 | "service_worker": "background.js" 19 | }, 20 | 21 | "content_scripts": [{ 22 | "js": [ "content.js" ], 23 | "matches": [ "*://open.spotify.com/*", "*://spotify.app.link/*" ] 24 | }], 25 | 26 | "action": { 27 | "default_popup": "popup.html", 28 | "default_icon": { 29 | "16": "images/toolbar-icon-16.png", 30 | "19": "images/toolbar-icon-19.png", 31 | "32": "images/toolbar-icon-32.png", 32 | "38": "images/toolbar-icon-38.png", 33 | "48": "images/toolbar-icon-48.png", 34 | "72": "images/toolbar-icon-72.png" 35 | } 36 | }, 37 | 38 | "permissions": [ ] 39 | } 40 | --------------------------------------------------------------------------------