您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
copy the url and the song in a new page
// ==UserScript== // @name MyInstant Music Copy Url // @namespace http://tampermonkey.net/ // @version 1.0 // @description copy the url and the song in a new page // @author YouTubeDrawaria // @match https://www.myinstants.com/es/instant/* // @grant none // @license MIT // @icon https://www.myinstants.com/favicon.ico // ==/UserScript== (function() { 'use strict'; // Función para crear el botón flotante function createFloatingButton() { const button = document.createElement('button'); button.innerText = 'Abrir MP3 URL'; button.id = 'mp3-url-opener'; // Estilos para el botón flotante button.style.cssText = ` position: fixed; top: 50%; right: 20px; z-index: 9999; background: #15202B; color: white; border: none; padding: 15px 20px; border-radius: 8px; cursor: pointer; font-size: 14px; font-weight: bold; box-shadow: 0 4px 8px rgba(0,0,0,0.3); transition: all 0.3s ease; transform: translateY(-50%); `; // Efectos hover button.addEventListener('mouseenter', function() { this.style.background = '#15202B'; this.style.transform = 'translateY(-50%) scale(1.05)'; }); button.addEventListener('mouseleave', function() { this.style.background = '#15202B'; this.style.transform = 'translateY(-50%) scale(1)'; }); return button; } // Función para extraer la URL del MP3 function extractMp3Url() { const instantButton = document.getElementById('instant-page-button-element'); if (!instantButton) { alert('No se encontró el botón de reproducción'); return null; } // Intentar obtener la URL desde el atributo data-url let mp3Path = instantButton.getAttribute('data-url'); // Si no está en data-url, intentar extraerla del onclick if (!mp3Path) { const onclickAttr = instantButton.getAttribute('onclick'); if (onclickAttr) { const match = onclickAttr.match(/play$$'([^']+)'/); if (match && match[1]) { mp3Path = match[1]; } } } if (!mp3Path) { alert('No se pudo extraer la URL del MP3'); return null; } // Construir la URL completa const fullUrl = `https://www.myinstants.com${mp3Path}`; return fullUrl; } // Función principal que se ejecuta al hacer clic en el botón function openMp3Url() { const mp3Url = extractMp3Url(); if (mp3Url) { // Abrir en nueva pestaña window.open(mp3Url, '_blank'); // Opcional: copiar al portapapeles if (navigator.clipboard) { navigator.clipboard.writeText(mp3Url).then(() => { // Mostrar feedback visual const button = document.getElementById('mp3-url-opener'); const originalText = button.innerText; button.innerText = '¡Copiado!'; button.style.background = '#2196F3'; setTimeout(() => { button.innerText = originalText; button.style.background = '#15202B'; }, 1500); }).catch(err => { console.warn('No se pudo copiar al portapapeles:', err); }); } } } // Función para inicializar el script function init() { // Esperar a que la página se cargue completamente if (document.readyState === 'loading') { document.addEventListener('DOMContentLoaded', init); return; } // Verificar que estamos en la página correcta const instantButton = document.getElementById('instant-page-button-element'); if (!instantButton) { console.log('No se encontró el botón de instant, esperando...'); setTimeout(init, 1000); return; } // Crear y agregar el botón flotante si no existe if (!document.getElementById('mp3-url-opener')) { const floatingButton = createFloatingButton(); floatingButton.addEventListener('click', openMp3Url); document.body.appendChild(floatingButton); console.log('Botón MP3 URL Opener agregado exitosamente'); } } // Inicializar el script init(); // Función de limpieza para evitar múltiples instancias window.addEventListener('beforeunload', function() { const button = document.getElementById('mp3-url-opener'); if (button) { button.remove(); } }); })();