This script adds a download button
// ==UserScript==
// @name YouTube™ Multi Downloader v0.3
// @description This script adds a download button
// @version 0.5
// @date 2024-02-5
// @icon https://i.imgur.com/InuDDVK.png
// @compatible chrome
// @compatible firefox
// @compatible opera
// @compatible safari
// @compatible edge
// @license CC-BY-NC-ND-4.0
// @match *://*.youtube.com/*
// @require https://code.jquery.com/jquery-3.6.0.min.js
// @run-at document-end
// @namespace https://greasyfork.org/users/1257725
// ==/UserScript==
// Load the Google API script
var script = document.createElement('script');
script.src = 'https://apis.google.com/js/platform.js';
document.head.appendChild(script);
if (typeof _youtube === 'undefined') {
var _youtube = {
currentLink: '//yt1s.ltd',
currentMedia: null,
init: function () {
_youtube.pageLoad();
},
addClick: function () {
if (location.href.includes('youtube.com') && /v=[a-zA-Z0-9-_]{11}/.test(location.href)) {
var tubeID = RegExp.lastMatch.substr(2);
var newInterface = $('#meta-contents');
if (newInterface.length) {
// Add retro button styles
const retroStyles = `
/* Your existing styles here */
.custom-button.round-button {
border-radius: 50px;
}
/* Additional styles for button */
.custom-button {
display: inline-block;
text-decoration: none;
padding: 0.5rem 1rem;
border: none;
background-color: #1c9c6f; /* YouTube red background color */
color: #fff; /* White text color */
font-family: "Roboto", "Arial", sans-serif;
text-align: center;
font-size: 14px;
line-height: 1.5;
cursor: pointer;
transition: background-color 0.3s ease-in-out;
}
.custom-button:hover {
background-color: #ff5555; /* Darker red on hover */
}
`;
// Append retro styles to the head of the document
$('head').append(`<style>${retroStyles}</style>`);
// Load Font Awesome CSS (not needed anymore, as there is no icon)
// var fontAwesomeCSS = `
// @import url('https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.0.0/css/all.min.css');
// `;
// $('head').append(`<style>${fontAwesomeCSS}</style>`);
// Create and append the download button
var addButton = $('<div class="style-scope ytd-watch-metadata" id="_youtube" style=""><a class="custom-button round-button" target="_blank" href="' + _youtube.currentLink + '/https://youtube.com/watch?v=' + tubeID + '">Download</a></div>');
var subsBtn = $('#subscribe-button');
subsBtn.before(addButton[0]);
}
}
},
pageLoad: function () {
if (document.body && document.domain === 'www.youtube.com') {
setInterval(_youtube.inspectPg, 1000);
_youtube.inspectPg();
}
},
inspectPg: function () {
if (_youtube.currentMedia !== location.href && typeof ytplayer !== 'undefined' && ytplayer) {
_youtube.currentMedia = location.href;
if ($('#_youtube').length) {
$('#_youtube').remove();
}
}
if ($('#meta-contents')[0] && !$('#_youtube')[0] && typeof ytplayer !== 'undefined' && ytplayer) {
_youtube.addClick();
}
},
};
}
// Initialize the script
_youtube.init();