Greasy Fork is available in English.

Spotify open in app

This userscript redirects open.spotify.com links to the desktop app

< Feedback on Spotify open in app

Review: Good - script works

§
Posted: 12 November 2018
Edited: 12 November 2018

Works perfectly, thanks! I added a "close tab" to mine

Thanks! 👍🏻

--- spotifylink.old.js  2018-11-12 16:40:19.000000000 +0900
+++ spotifylink.js  2018-11-12 16:40:07.000000000 +0900
@@ -5,6 +5,7 @@
 // @match        http://open.spotify.com/*
 // @match        https://open.spotify.com/*
 // @namespace https://greasyfork.org/users/172431
+// @grant        window.close
 // ==/UserScript==

 (function() {
@@ -12,4 +13,9 @@
     var data=document.URL.match(/[\/\&](track|playlist|album|artist)\/([^\&\#\/\?]+)/i);
     console.log("This is a "+data[1]+" with id:"+data[2]+"\nAttempting to redirect");
     window.location.replace('spotify:'+data[1]+':'+data[2]);
+
+    setTimeout(function() {
+      console.log("Closing tab");
+      window.close();
+    }, 500);
 })();
§
Posted: 06 Januari 2019

good idea, thanks for sharing! and by adding // @run-at document-start we don't even need to load the web player! Author, please add those changes to your script

§
Posted: 06 Januari 2019

Your window.close() extension actually doesn't work for me if combined with // @run-at document-start. Any idea how to fix this?

OrdinaryDogPembuat
§
Posted: 15 Januari 2019

While this works perfectly in Firefox, chromium based browsers show the confirmation dialog inside the tab and do not pause the script execution. If you haven't set the "always open these types of links in the app" checkmark, the tab will close and so will the dialog. I've tried several workarounds, but none of them seem to work perfectly every time. If anyone has any solutions I'm happy to include them, but at the moment I'm not adding a "close tab" behaviour.

§
Posted: 07 Juli 2019

Thanks, exactly what I was lacking. +1 for the author to add it

§
Posted: 22 April 2020
Edited: 22 April 2020

[removed]

Post reply

Sign in to post a reply.