Samplefocus Downloader

Replaces the original download button to a one that redirects to the mp3 file page.

이 스크립트를 설치하려면 Tampermonkey, Greasemonkey 또는 Violentmonkey와 같은 확장 프로그램이 필요합니다.

You will need to install an extension such as Tampermonkey to install this script.

이 스크립트를 설치하려면 Tampermonkey 또는 Violentmonkey와 같은 확장 프로그램이 필요합니다.

이 스크립트를 설치하려면 Tampermonkey 또는 Userscripts와 같은 확장 프로그램이 필요합니다.

이 스크립트를 설치하려면 Tampermonkey와 같은 확장 프로그램이 필요합니다.

이 스크립트를 설치하려면 유저 스크립트 관리자 확장 프로그램이 필요합니다.

(이미 유저 스크립트 관리자가 설치되어 있습니다. 설치를 진행합니다!)

이 스타일을 설치하려면 Stylus와 같은 확장 프로그램이 필요합니다.

이 스타일을 설치하려면 Stylus와 같은 확장 프로그램이 필요합니다.

이 스타일을 설치하려면 Stylus와 같은 확장 프로그램이 필요합니다.

이 스타일을 설치하려면 유저 스타일 관리자 확장 프로그램이 필요합니다.

이 스타일을 설치하려면 유저 스타일 관리자 확장 프로그램이 필요합니다.

이 스타일을 설치하려면 유저 스타일 관리자 확장 프로그램이 필요합니다.

(이미 유저 스타일 관리자가 설치되어 있습니다. 설치를 진행합니다!)

// ==UserScript==
// @name        Samplefocus Downloader
// @namespace   http://tampermonkey.net/
// @version     1.0
// @description Replaces the original download button to a one that redirects to the mp3 file page.
// @author      ToxicBiohazard
// @match       *://*.samplefocus.com/*
// @grant       none
// @license MIT
// ==/UserScript==

(function() {
  'use strict';

  const originalLink = document.querySelector('.download-link');

  if (!originalLink) {
    console.warn('Original download link not found.');
    return;
  }

  const audioElement = document.querySelector('audio');

  if (!audioElement || !audioElement.src) {
    console.error('No audio element found or no source loaded.');
    return;
  }

  const audioSrc = audioElement.src;

  const downloadSample = () => {
    if (confirm('Download the audio sample?')) {
      const link = document.createElement('a');
      link.href = audioSrc;
      link.download = 'extracted-audio.mp3';
      document.body.appendChild(link);
      link.click();
      document.body.removeChild(link);
    }
  };

  const downloadButton = document.createElement('button');
  downloadButton.classList.add('btn-large', 'waves-effect', 'waves-light');
  downloadButton.textContent = 'Download Sample';
  downloadButton.addEventListener('click', downloadSample);

  originalLink.parentNode.replaceChild(downloadButton, originalLink);
})();