Shazam YouTube Search Button for track pages

Adds a YouTube search button to Shazam track pages next to track name

// ==UserScript==
// @name        Shazam YouTube Search Button for track pages
// @namespace   Violentmonkey Scripts
// @match       https://www.shazam.com/song/*
// @grant       none
// @version     1.0
// @author      raefraem
// @description Adds a YouTube search button to Shazam track pages next to track name
// @license MIT
// ==/UserScript==

(function () {
  'use strict';

  // Function to create YouTube search URL
  function createYouTubeSearchURL(track, artist) {
    const searchQuery = encodeURIComponent(`${track} - ${artist}`);
    return `https://www.youtube.com/results?search_query=${searchQuery}`;
  }

  // Function to create YouTube button
  function createYouTubeButton(track, artist) {
    const button = document.createElement('button');
    button.innerHTML = '▶ YouTube';
    button.style.cssText = `
            background-color: #FF0000;
            color: white;
            border: none;
            border-radius: 4px;
            padding: 5px 10px;
            margin-left: 10px;
            cursor: pointer;
            font-size: 12px;
            vertical-align: middle;
        `;

    button.addEventListener('click', e => {
      // Stop the event from bubbling up and triggering Shazam's click handler
      e.preventDefault();
      e.stopPropagation();

      // Open YouTube in a new tab
      window.open(createYouTubeSearchURL(track, artist), '_blank');

      // Return false to ensure the event is completely stopped
      return false;
    });

    return button;
  }

  function addYouTubeButton() {
    const artistEl = document.querySelector('.TrackPageHeader_songDetail__I618J h1');
    const artist = artistEl.textContent;
    const track = document.querySelector('.TrackPageHeader_songDetail__I618J h2').textContent;

    console.log('artist', artist, 'track', track);

    const youtubeButton = createYouTubeButton(track, artist);
    artistEl.appendChild(youtubeButton);
  }

  setTimeout(addYouTubeButton, 300);
})();

QingJ © 2025

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