您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Automates Spotify link submission to Lucida downloader and auto-scrolls the Lucida page undetected.
// ==UserScript== // @name Spotify Downloader with Lucida // @namespace http://tampermonkey.net/ // @version 1.3 // @description Automates Spotify link submission to Lucida downloader and auto-scrolls the Lucida page undetected. // @author UniverseDev // @license GPL-3.0-or-later // @match *://open.spotify.com/* // @match https://lucida.to/* // @icon https://www.google.com/s2/favicons?sz=64&domain=spotify.com // @grant none // ==/UserScript== (function() { 'use strict'; if (window.location.href.includes('open.spotify.com')) { const style = document.createElement('style'); style.innerText = ` [role='grid'] { margin-left: 50px; } [data-testid='tracklist-row'] { position: relative; } .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 getTrackURI(trackElement) { const link = trackElement.querySelector('a[href*="/track/"]'); return link ? link.getAttribute('href').split('/track/')[1] : null; } function addButton(track) { const button = document.createElement('button'); button.className = 'btn'; button.onclick = () => { const trackURI = getTrackURI(track); if (trackURI) { const spotifyLink = `https://open.spotify.com/track/${trackURI}`; window.open(`https://lucida.to?url=${encodeURIComponent(spotifyLink)}`, '_blank'); } else { console.error("Failed to retrieve track URI."); } }; track.appendChild(button); track.dataset.hasButton = 'true'; } function animate() { const tracks = document.querySelectorAll('[data-testid="tracklist-row"]'); tracks.forEach(track => { if (!track.dataset.hasButton) { addButton(track); } }); } setInterval(animate, 1000); } if (window.location.href.includes('lucida.to')) { window.addEventListener('load', () => { const urlParams = new URLSearchParams(window.location.search); const spotifyLink = urlParams.get('url'); if (spotifyLink) { const inputField = document.querySelector('input#download'); const goButton = document.querySelector('button#go'); if (inputField && goButton) { inputField.value = spotifyLink; goButton.click(); } } const scrollInterval = setInterval(() => { window.scrollBy(0, 100); if ((window.innerHeight + window.scrollY) >= document.body.offsetHeight) { clearInterval(scrollInterval); } }, 100); }); } })();