Last active
February 25, 2025 07:53
-
-
Save maanimis/839472082c8eb6774526e24235c5f69f to your computer and use it in GitHub Desktop.
Clean YouTube URLs to only keep the video ID when Shift + Left Click is used
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// ==UserScript== | |
// @name YouTube URL Cleaner | |
// @namespace http://tampermonkey.net/ | |
// @version 1.6 | |
// @description Clean YouTube URLs to only keep the video ID when Shift + Left Click is used and show a popup | |
// @author maanimis | |
// @match *://*.youtube.com/* | |
// @grant clipboardWrite | |
// @run-at document-end | |
// @license MIT | |
// ==/UserScript== | |
(function() { | |
'use strict'; | |
const showPopup = (message) => { | |
const popup = document.createElement('div'); | |
Object.assign(popup.style, { | |
position: 'fixed', | |
bottom: '20px', | |
right: '20px', | |
padding: '10px', | |
background: 'black', | |
color: 'white', | |
borderRadius: '5px', | |
boxShadow: '0px 0px 10px rgba(0,0,0,0.5)', | |
zIndex: '1000', | |
fontSize: '14px', | |
fontFamily: 'Arial, sans-serif' | |
}); | |
popup.textContent = message; | |
document.body.appendChild(popup); | |
setTimeout(() => popup.remove(), 3000); | |
}; | |
const cleanUrl = () => { | |
const urlMatch = window.location.href.match(/https?:\/\/www\.youtube\.com\/watch\?v=([a-zA-Z0-9_-]+)/); | |
if (!urlMatch) return; | |
const cleanUrl = `https://www.youtube.com/watch?v=${urlMatch[1]}`; | |
navigator.clipboard.writeText(cleanUrl) | |
.then(() => { | |
console.log('Cleaned URL copied to clipboard:', cleanUrl); | |
showPopup(`Copied: ${cleanUrl}`); | |
}) | |
.catch(err => { | |
console.error('Failed to copy URL:', err); | |
showPopup('Failed to copy URL'); | |
}); | |
}; | |
document.addEventListener('click', (event) => { | |
if (event.shiftKey && event.button === 0) { | |
cleanUrl(); | |
} | |
}); | |
})(); |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment