<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0"/>
<title>YouTube Thumbnail Downloader</title>
<style>
body {
font-family: 'Segoe UI', sans-serif;
background: #f0f4f8;
padding: 20px;
text-align: center;
}
h1 {
color: #333;
margin-bottom: 20px;
}
input {
width: 90%;
max-width: 500px;
padding: 10px;
border: 2px solid #0077ff;
border-radius: 8px;
font-size: 16px;
}
button {
background: #0077ff;
color: #fff;
border: none;
padding: 12px 24px;
border-radius: 8px;
cursor: pointer;
font-size: 16px;
margin-top: 10px;
transition: 0.3s;
}
button:hover {
background: #0055cc;
transform: scale(1.05);
}
.thumbnail-box {
margin-top: 30px;
}
.thumb-preview {
margin: 20px 0;
}
.thumb-preview img {
max-width: 100%;
border-radius: 10px;
box-shadow: 0 4px 10px rgba(0,0,0,0.1);
}
.download-button {
background-color: #28a745;
color: white;
padding: 10px 18px;
text-decoration: none;
border-radius: 8px;
font-size: 15px;
display: inline-block;
margin: 10px 10px;
animation: bounce 1.5s infinite;
}
.download-button:hover {
background-color: #218838;
transform: scale(1.05);
}
@keyframes bounce {
0%, 100% { transform: translateY(0); }
50% { transform: translateY(-5px); }
}
.ad-container {
margin: 20px auto;
max-width: 728px;
text-align: center;
}
</style>
</head>
<body>
<!-- ?? Adsterra / AdMob Top Banner -->
<div class="ad-container">
<!-- ?? Replace this with your own AdMob or Adsterra banner code -->
<script type='text/javascript'>
atOptions = {
'key' : 'YOUR_ADSTERRA_KEY_TOP',
'format' : 'banner',
'height' : 90,
'width' : 728,
'params' : {}
};
document.write('<scr' + 'ipt type="text/javascript" src="https://www.profitabledisplaynetwork.com/' + atOptions.key + '/invoke.js"></scr' + 'ipt>');
</script>
</div>
<h1>YouTube Thumbnail Downloader</h1>
<input type="text" id="videoUrl" placeholder="Paste YouTube Video URL Here">
<br>
<button onclick="getThumbnails()">Get Thumbnails</button>
<!-- ?? Ad between input & result -->
<div class="ad-container">
<!-- Optional second ad -->
</div>
<div id="thumbnailContainer" class="thumbnail-box"></div>
<!-- ?? Bottom Banner Ad -->
<div class="ad-container">
<!-- ?? Replace this with your second AdMob/Adsterra ad -->
<script type='text/javascript'>
atOptions = {
'key' : 'YOUR_ADSTERRA_KEY_BOTTOM',
'format' : 'banner',
'height' : 90,
'width' : 728,
'params' : {}
};
document.write('<scr' + 'ipt type="text/javascript" src="https://www.profitabledisplaynetwork.com/' + atOptions.key + '/invoke.js"></scr' + 'ipt>');
</script>
</div>
<script>
function getYouTubeVideoID(url) {
const regExp = /^.*(youtu\.be\/|v\/|u\/\w\/|embed\/|watch\?v=|\&v=)([^#\&\?]{11}).*/;
const match = url.match(regExp);
return match ? match[2] : null;
}
function getThumbnails() {
const url = document.getElementById('videoUrl').value.trim();
const videoId = getYouTubeVideoID(url);
if (!videoId) {
alert("? Invalid YouTube URL!");
return;
}
const thumbs = {
fullHD: `https://img.youtube.com/vi/${videoId}/maxresdefault.jpg`,
medium: `https://img.youtube.com/vi/${videoId}/sddefault.jpg`,
small: `https://img.youtube.com/vi/${videoId}/hqdefault.jpg`
};
const html = `
<div class="thumb-preview">
<h3>Full HD Thumbnail</h3>
<img src="${thumbs.fullHD}" alt="Full HD">
<br>
<a class="download-button" href="${thumbs.fullHD}" download target="_blank">Download Full HD</a>
</div>
<div class="thumb-preview">
<h3>Medium Thumbnail</h3>
<img src="${thumbs.medium}" alt="Medium">
<br>
<a class="download-button" href="${thumbs.medium}" download target="_blank">Download Medium</a>
</div>
<div class="thumb-preview">
<h3>Small Thumbnail</h3>
<img src="${thumbs.small}" alt="Small">
<br>
<a class="download-button" href="${thumbs.small}" download target="_blank">Download Small</a>
</div>
`;
document.getElementById("thumbnailContainer").innerHTML = html;
}
</script>
</body>
</html>