Youtube Video Downloader | MP3,MP4

A basic youtube video downloader using y2mate, faster, a single click!

目前为 2022-04-27 提交的版本。查看 最新版本

// ==UserScript==
// @name         Youtube Video Downloader | MP3,MP4
// @name:pt-BR   Youtube Video Downloader | MP3,MP4
// @name:es      Youtube Video Downloader | MP3,MP4
// @namespace    http://tampermonkey.net/
// @version      2022.04.27.2
// @description  A basic youtube video downloader using y2mate, faster, a single click!
// @description:pt-BR Um downloader básico de vídeo do youtube usando y2mate, mais rápido, um único clique!
// @description:es ¡Un descargador básico de videos de YouTube usando y2mate, más rápido, con un solo clic!
// @author       misteregis
// @match        *://www.youtube.com/*
// @icon         https://www.google.com/s2/favicons?domain=youtube.com
// @grant        none
// @license MIT
// ==/UserScript==

/* jshint esversion:6 */

(function () {
    'use strict';

    let downloadButton = document.createElement( "div" );
    let waitForElement = ( selector, callback ) => {
        const element = document.querySelector( selector );

        if (element) return callback(element);

        return window.requestAnimationFrame( () => {
            waitForElement( selector, callback );
        });
    };

    downloadButton.textContent = "Download";
    downloadButton.style.backgroundColor = "var(--yt-spec-brand-button-background)";
    downloadButton.style.borderRadius = "2px";
    downloadButton.style.position = "absolute";
    downloadButton.style.right = 0;
    downloadButton.style.color = "var(--yt-spec-static-brand-white)";
    downloadButton.style.padding = "var(--yt-button-padding)";
    downloadButton.style.marginTop = "10px";
    downloadButton.style.userSelect = "none";
    downloadButton.style.fontSize = "var(--ytd-tab-system-font-size)";
    downloadButton.style.fontWeight = "var(--ytd-tab-system-font-weight)";
    downloadButton.style.letterSpacing = "var(--ytd-tab-system-letter-spacing)";
    downloadButton.style.textTransform = "var(--ytd-tab-system-text-transform)";
    downloadButton.style.cursor = "pointer";

    downloadButton.onclick = () => {
        const win = window.open( `https://www.y2mate.com/youtube/${new URL(window.location).searchParams.get("v")}`, "_blank" );
        const video = document.querySelector( "video" );

        video.pause();

        const timer = setInterval(() => {
            if (win.closed) {
                clearInterval(timer);
                video.play();
            }
        }, 400);
    }

    waitForElement( "ytd-player", target => target.appendChild( downloadButton ) );
})();