Tải Tổng Hợp
Tải Tổng Hợp
TTok
YTube
Dropbox
<style> body { font-family: Arial, sans-serif; background: #f2f2f2; text-align: center; padding: 50px; } h2 { color: #333; } input[type="text"] { width: 80%; max-width: 400px; padding: 10px; font-size: 16px; border: 1px solid #ccc; border-radius: 6px; } button { padding: 10px 20px; margin: 10px 5px; font-size: 16px; background-color: #4CAF50; color: white; border: none; border-radius: 6px; cursor: pointer; transition: background-color 0.3s; } button:hover { background-color: #45a049; } #result { margin-top: 30px; } video { width: 200px; height: 300px; object-fit: cover; border: 3px solid #4CAF50; border-radius: 12px; margin-bottom: 10px; transition: transform 0.3s, box-shadow 0.3s; } video:hover { transform: scale(1.03); box-shadow: 0 8px 16px rgba(0,0,0,0.2); } .btn-group { margin-top: 10px; } * { box-sizing: border-box; } .btn { padding: 10px 20px; font-size: 15px; border: none; border-radius: 8px; margin: 5px; cursor: pointer; background-color: #ff4757; color: white; transition: background 0.2s; } .btn:hover { background-color: #e84118; } </style> <center><h2>Tải video TikTok</h2> <input type="text" id="tiktokLink" placeholder="Dán link TikTok tại đây"> <br/> <button onclick="downloadVideo()">Lấy video</button> <div id="result"></div></center> <script> async function getVideoLink(tiktokURL) { const apis = [ async () => { const res = await fetch(`https://tikwm.com/api/?url=${encodeURIComponent(tiktokURL)}`); const json = await res.json(); return json?.data?.play; }, async () => { const res = await fetch(`https://api.oioweb.cn/api/tiktok?url=${encodeURIComponent(tiktokURL)}`); const json = await res.json(); return json?.result?.nowatermark; }, async () => { const res = await fetch(`https://videodownloadapi.vercel.app/api/tiktok?url=${encodeURIComponent(tiktokURL)}`); const json = await res.json(); return json?.video_url; } ]; for (let i = 0; i < apis.length; i++) { try { const url = await apis[i](); if (url) return url; } catch (e) { console.warn(`API ${i + 1} lỗi, thử API tiếp theo...`); } } throw new Error("Tất cả API đều không hoạt động."); } async function downloadVideo() { const link = document.getElementById("tiktokLink").value.trim(); if (!link) return alert("Vui lòng nhập link TikTok!"); document.getElementById("result").innerHTML = "Đang xử lý..."; try { const videoURL = await getVideoLink(link); document.getElementById("result").innerHTML = ` <video controls src="${videoURL}"></video> <div class="btn-group"> <a href='${videoURL}' download target="_blank"><button>Tải Video</button></a> <button onclick="copyToClipboard('${videoURL}')">Copy link</button> </div> `; } catch (e) { document.getElementById("result").innerHTML = "Tất cả API đều lỗi, vui lòng thử lại sau."; } } function copyToClipboard(text) { navigator.clipboard.writeText(text).then(() => { alert("Đã copy link tải video!"); }, () => { alert("Không thể copy link."); }); } </script>
<style> body { font-family: Arial, sans-serif; background: #f2f2f2; text-align: center; padding: 50px; } h2 { color: #333; } input[type="text"] { width: 80%; max-width: 400px; padding: 10px; font-size: 16px; border: 1px solid #ccc; border-radius: 6px; } button { padding: 10px 20px; margin: 10px 5px; font-size: 16px; background-color: #4CAF50; color: white; border: none; border-radius: 6px; cursor: pointer; transition: background-color 0.3s; } button:hover { background-color: #45a049; } #result { margin-top: 30px; } video { width: 200px; height: 300px; object-fit: cover; border: 3px solid #4CAF50; border-radius: 12px; margin-bottom: 10px; transition: transform 0.3s, box-shadow 0.3s; } video:hover { transform: scale(1.03); box-shadow: 0 8px 16px rgba(0,0,0,0.2); } .btn-group { margin-top: 10px; } * { box-sizing: border-box; } .btn { padding: 10px 20px; font-size: 15px; border: none; border-radius: 8px; margin: 5px; cursor: pointer; background-color: #ff4757; color: white; transition: background 0.2s; } .btn:hover { background-color: #e84118; } #thumbnail { width: 200px; height: 120px; object-fit: cover; border-radius: 8px; margin-top: 10px; display: none; } .guide-button { color: white;; text-decoration: underline; cursor: pointer; font-size: 18px; margin: 10px 5px; padding: 10px 15px; border: none; border-radius: 5px; background-color: #4CAF50; } .guide-box { display: none; margin-top: 20px; padding: 20px; background: #ffffff; border: 1px solid #ddd; border-radius: 8px; max-width: 500px; margin-left: auto; margin-right: auto; box-shadow: 0 0 10px rgba(0,0,0,0.1); text-align: left; } .close-btn { float: right; cursor: pointer; font-weight: bold; color: #888; font-size: 38px; margin-top: -22px; } .close-btn:hover { color: #000; } </style> <center><h2>Tải video YouTube</h2> <input type="text" id="youtubeLink" placeholder="Dán link YouTube vào đây" oninput="updateThumbnail()"> <button class="btn" onclick="pasteLink()">Paste Link</button> <br> <img id="thumbnail" src="" alt="Thumbnail"> <br> <button class="btn" onclick="openDownloader('savefrom')">SaveFrom</button> <button class="btn" onclick="openDownloader('y2mate')">Y2Mate</button> <div id="result"></div></center> <script> function extractVideoId(url) { try { const ytUrl = new URL(url); if (ytUrl.hostname.includes('youtu.be')) return ytUrl.pathname.slice(1); if (ytUrl.hostname.includes('youtube.com')) return ytUrl.searchParams.get('v'); } catch (e) { return ''; } } function updateThumbnail() { const link = document.getElementById('youtubeLink').value.trim(); const videoId = extractVideoId(link); const img = document.getElementById('thumbnail'); if (videoId) { img.src = `https://img.youtube.com/vi/${videoId}/mqdefault.jpg`; img.style.display = 'inline'; } else { img.style.display = 'none'; } } function pasteLink() { navigator.clipboard.readText().then(function(text) { const input = document.getElementById('youtubeLink'); input.value = text; updateThumbnail(); }).catch(function(err) { alert("Không thể dán nội dung từ clipboard."); }); } function openDownloader(service) { const link = document.getElementById('youtubeLink').value.trim(); if (!link) return alert("Vui lòng nhập link YouTube hợp lệ."); let videoId = extractVideoId(link); let url = ''; switch (service) { case 'savefrom': url = `https://en.savefrom.net/1-youtube-video-downloader-1/?url=${encodeURIComponent(link)}`; break; case 'y2mate': url = `https://www.y2mate.com/youtube/${videoId}`; break; } window.open(url, '_blank'); } </script>
<style> body { font-family: Arial, sans-serif; background: #f2f2f2; text-align: center; padding: 50px; } h2 { color: #333; } input[type="text"] { width: 80%; max-width: 400px; padding: 10px; font-size: 16px; border: 1px solid #ccc; border-radius: 6px; } button { padding: 10px 20px; margin: 10px 5px; font-size: 16px; background-color: #4CAF50; color: white; border: none; border-radius: 6px; cursor: pointer; transition: background-color 0.3s; } button:hover { background-color: #45a049; } #result { margin-top: 30px; } </style> <center><h2>Chuyển đổi Link Dropbox</h2><input type="text" id="dropboxLink" placeholder="Mẫu https://www.dropbox.com/scl/fi/...&dl=0"> <button onclick="convertLink()">Chuyển đổi</button> <div class="result" id="result1"></div> <button onclick="copyLink()" id="copyButton" style="display: none;">Copy Link</button></center> <script> let convertedLink = ''; // Lưu trữ link đã chuyển đổi function convertLink() { const dropboxLink = document.getElementById('dropboxLink').value; const resultDiv = document.getElementById('result1'); const copyButton = document.getElementById('copyButton'); if (!dropboxLink) { resultDiv.textContent = 'Vui lòng nhập link Dropbox.'; copyButton.style.display = 'none'; // Ẩn nút sao chép nếu không có link return; } // Kiểm tra xem link có phải là link Dropbox hợp lệ không if (!dropboxLink.includes('www.dropbox.com')) { resultDiv.textContent = 'Link không hợp lệ. Vui lòng nhập link Dropbox.'; copyButton.style.display = 'none'; // Ẩn nút sao chép nếu link không hợp lệ return; } // Chuyển đổi link từ www.dropbox.com sang dl.dropboxusercontent.com convertedLink = dropboxLink.replace('www.dropbox.com', 'dl.dropboxusercontent.com'); // Hiển thị kết quả resultDiv.innerHTML = `Link đã chuyển đổi: <a href="${convertedLink}" target="_blank">${convertedLink}</a>`; copyButton.style.display = 'inline-block'; // Hiển thị nút sao chép } function copyLink() { if (!convertedLink) { alert('Không có link để sao chép.'); return; } // Tạo một thẻ input tạm thời để sao chép link const tempInput = document.createElement('input'); tempInput.value = convertedLink; document.body.appendChild(tempInput); tempInput.select(); document.execCommand('copy'); document.body.removeChild(tempInput); alert('Đã sao chép link: ' + convertedLink); } </script>