Spotidownloader

Downloads spotify songs and playlists

目前为 2025-02-24 提交的版本。查看 最新版本

// ==UserScript==
// @name         Spotidownloader
// @namespace    http://tampermonkey.net/
// @version      0.7
// @description  Downloads spotify songs and playlists
// @author       doja
// @match        *://open.spotify.com/*
// @match        https://spotidownloader.com/
// @icon         https://www.google.com/s2/favicons?sz=64&domain=spotify.com
// @grant        none
// ==/UserScript==

const queryParams = new URLSearchParams(window.location.search);

if(window.location.origin === 'https://spotidownloader.com' && queryParams.get('link') !== "") {
  console.log('userscript download')
  const queryParams = new URLSearchParams(window.location.search);
  navigator.clipboard.writeText(queryParams.get('link'));
  setInterval(() => {
    //document.querySelector(".searchInput").value = queryParams.get('link');
    document.querySelector("#__next > div > div.relative > button").click();
    document.querySelector("#__next > div > button").click();
  }, 500)
  document.querySelector("#__next > div > button").click()
} else {

const style = document.createElement( 'style' );

style.innerText = `

[role='grid'] {
	margin-left: 50px;
}

[data-testid='tracklist-row'] {
	position: relative;
}

[role="presentation"] > * {
	contain: unset;
}

.btn {
	width: 40px;
	height: 40px;
	border-radius: 50%;
	border: 0;
	background-color: #1fdf64;
	background-image: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 20 20"><path d="M17 12v5H3v-5H1v5a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-5z"/><path d="M10 15l5-6h-4V1H9v8H5l5 6z"/></svg>');
	background-position: center;
	background-repeat: no-repeat;
	cursor: pointer;
}

.btn:hover {
	transform: scale(1.1);
}

[data-testid='tracklist-row'] .btn {
	position: absolute;
	top: 50%;
	right: 100%;
	margin-top: -20px;
	margin-right: 10px;
}

`;

document.body.appendChild( style );

function sleep( ms ) {

	return new Promise( resolve => setTimeout( resolve, 0 ) );

}

function animate() {

	const tracks = document.querySelectorAll( '[data-testid="tracklist-row"]' );

	for ( let i = 0; i < tracks.length; i ++ ) {

		const track = tracks[ i ];

		if ( ! track.hasButton ) {

			addButton( track ).onclick = async function () {

				const btn = track.querySelector( '[data-testid="more-button"]' );
				btn.click();

				await sleep( 1 );

				const highlight = document.querySelector( '#context-menu a[href*="highlight"]' ).href.match( /highlight=(.+)/ )[ 1 ];

				document.dispatchEvent( new MouseEvent( 'mousedown' ) );

				const url = 'https://open.' + highlight.replace( ':', '.com/' ).replace( ':', '/' );

				download( url );

			}

		}

	}

	const actionBarRow = document.querySelector( '[data-testid="action-bar-row"]:last-of-type' );

	if ( actionBarRow && ! actionBarRow.hasButton ) {

		addButton( actionBarRow ).onclick = function () {

			download( window.location.href );

		}

	}

}

function download( link ) {

	window.open('https://spotidownloader.com/?link=' + link, '_blank' );

}

function addButton( el ) {

	const button = document.createElement( 'button' );

	button.className = 'btn';

	el.appendChild( button );

	el.hasButton = true;

	return button;

}

setInterval( animate, 1000 );
}

QingJ © 2025

镜像随时可能失效,请加Q群300939539或关注我们的公众号极客氢云获取最新地址