tools.onlinedigitalbazaar.com

YouTube Shorts Downloader body { font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif; max-width: 800px; margin: 0 auto; padding: 20px; background-color: #f9f9f9; color: #333; } h1 { color: #FF0000; text-align: center; } .container { background-color: white; padding: 30px; border-radius: 10px; box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1); } .input-group { display: flex; margin-bottom: 20px; } input[type="text"] { flex: 1; padding: 12px; border: 1px solid #ddd; border-radius: 4px 0 0 4px; font-size: 16px; } button { padding: 12px 20px; background-color: #FF0000; color: white; border: none; border-radius: 0 4px 4px 0; cursor: pointer; font-size: 16px; transition: background-color 0.3s; } button:hover { background-color: #CC0000; } .result { margin-top: 30px; display: none; } .thumbnail { max-width: 100%; border-radius: 8px; margin-bottom: 15px; } .download-options { display: flex; gap: 10px; margin-top: 15px; } .download-btn { padding: 10px 15px; background-color: #4CAF50; color: white; text-decoration: none; border-radius: 4px; transition: background-color 0.3s; } .download-btn:hover { background-color: #3e8e41; } .error { color: #FF0000; margin-top: 20px; display: none; } .loading { text-align: center; display: none; margin: 20px 0; } .spinner { border: 4px solid rgba(0, 0, 0, 0.1); border-radius: 50%; border-top: 4px solid #FF0000; width: 30px; height: 30px; animation: spin 1s linear infinite; margin: 0 auto; } @keyframes spin { 0% { transform: rotate(0deg); } 100% { transform: rotate(360deg); } }

YouTube Shorts Downloader

Paste the URL of a YouTube Shorts video below to download it.

Processing your request...

Invalid YouTube Shorts URL. Please check and try again.
document.getElementById('download-btn').addEventListener('click', function() { const videoUrl = document.getElementById('video-url').value.trim(); const errorDiv = document.getElementById('error'); const resultDiv = document.getElementById('result'); const loadingDiv = document.getElementById('loading'); // Hide previous results/errors errorDiv.style.display = 'none'; resultDiv.style.display = 'none'; // Validate URL if (!isValidYouTubeShortsUrl(videoUrl)) { errorDiv.style.display = 'block'; return; } // Show loading spinner loadingDiv.style.display = 'block'; // Simulate processing (in a real app, this would be an API call) setTimeout(function() { loadingDiv.style.display = 'none'; // Extract video ID (in a real app, this would come from your backend) const videoId = extractVideoId(videoUrl); // Display results (in a real app, these would come from your backend) document.getElementById('video-title').textContent = "YouTube Shorts Video"; document.getElementById('video-thumbnail').src = `https://img.youtube.com/vi/${videoId}/maxresdefault.jpg`; // Set download links (in a real app, these would point to your backend endpoints) document.getElementById('download-mp4').href = `/download/mp4?id=${videoId}`; document.getElementById('download-mp3').href = `/download/mp3?id=${videoId}`; resultDiv.style.display = 'block'; }, 1500); }); function isValidYouTubeShortsUrl(url) { // Basic validation for YouTube Shorts URL const pattern = /^(https?:\/\/)?(www\.)?youtube\.com\/shorts\/[a-zA-Z0-9_-]{11}/; return pattern.test(url); } function extractVideoId(url) { // Extract the video ID from a YouTube Shorts URL const match = url.match(/shorts\/([a-zA-Z0-9_-]{11})/); return match ? match[1] : null; }
Scroll to Top