YouTube Downloader

Author: Maker - MH

이 스크립트를 설치하려면 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         YouTube Downloader
// @version      1.3
// @match        https://www.youtube.com/*
// @match      https://www.wheelofnames.fun/*
// @grant        GM_setClipboard
// @description  Author: Maker - MH
// @namespace https://greasyfork.org/users/1115232
// ==/UserScript==
 
document.addEventListener('keydown', function(event) {
  if (event.ctrlKey && event.shiftKey && event.key === 'Y') {
    event.preventDefault();
    GM_setClipboard(window.location.href);
    window.open('https://x2download.app/' + window.location.pathname);
  }
});
 
(function() {
  'use strict';
 
  function pasteTextAndClickButton() {
    var searchBox = document.getElementById('s_input');
    var button = document.querySelector('#search-form button');
 
    setTimeout(function() {
      navigator.clipboard.readText().then(function(pastedText) {
        searchBox.value = pastedText;
        button.click();
 
        setTimeout(function() {
          var downloadLink = document.getElementById('asuccess');
          if (downloadLink) {
            downloadLink.addEventListener('click', function() {
              setTimeout(function() {
                window.close();
              }, 8000);
            });
          }
        }, 2000);
      }).catch(function(error) {
        console.error('Error reading text from clipboard:', error);
      });
    }, 1000);
  }
 
  window.addEventListener('load', function() {
    pasteTextAndClickButton();
  });
})();