Telegtam Video DL
Tento skript by nemal byť nainštalovaný priamo. Je to knižnica pre ďalšie skripty, ktorú by mali používať cez meta príkaz // @require https://update.sleazyfork.org/scripts/591220/1901744/%40BMmini.js
// ==UserScript==
// @name Telegram Web K Video Downloader
// @namespace https://tampermonkey.net/
// @version 1.0
// @description เพิ่มปุ่มดาวน์โหลดวิดีโอบน Telegram Web K (ดักจับไฟล์วิดีโอที่กำลังเล่น)
// @author You
// @match https://webk.telegram.org/*
// @grant GM_download
// @grant GM_xmlhttpRequest
// ==UserScript==
(function() {
'use strict';
// ฟังก์ชันสร้างปุ่มโหลด
function createDownloadButton(videoElem) {
if (videoElem.dataset.hasDlBtn) return;
videoElem.dataset.hasDlBtn = "true";
const btn = document.createElement('button');
btn.innerText = '⬇️ โหลดวิดีโอนี้';
btn.style.cssText = `
position: absolute;
top: 10px;
right: 10px;
z-index: 9999;
background: #0088cc;
color: white;
border: none;
padding: 8px 12px;
border-radius: 6px;
cursor: pointer;
font-weight: bold;
box-shadow: 0 2px 5px rgba(0,0,0,0.3);
`;
btn.addEventListener('click', async (e) => {
e.stopPropagation();
e.preventDefault();
const src = videoElem.src || videoElem.currentSrc;
if (!src) {
alert('ไม่พบลิงก์วิดีโอ กรุณากดเล่นวิดีโอก่อนครับ');
return;
}
btn.innerText = '⏳ กำลังเตรียมดาวน์โหลด...';
try {
// หากเป็น blob URL
const response = await fetch(src);
const blob = await response.blob();
const blobUrl = URL.createObjectURL(blob);
const a = document.createElement('a');
a.href = blobUrl;
a.download = `TG_Video_${Date.now()}.mp4`;
document.body.appendChild(a);
a.click();
document.body.removeChild(a);
URL.revokeObjectURL(blobUrl);
btn.innerText = '✅ ดาวน์โหลดสำเร็จ';
setTimeout(() => { btn.innerText = '⬇️ โหลดวิดีโอนี้'; }, 3000);
} catch (err) {
console.error(err);
alert('เกิดข้อผิดพลาดในการดึงไฟล์วิดีโอ');
btn.innerText = '❌ ล้มเหลว';
}
});
// แปะปุ่มลงใน Container ของ Video
const parent = videoElem.parentElement;
if (parent) {
parent.style.position = 'relative';
parent.appendChild(btn);
}
}
// ตรวจหาแท็ก <video> ในหน้าเว็บสม่ำเสมอ
const observer = new MutationObserver(() => {
const videos = document.querySelectorAll('video');
videos.forEach(video => {
if (video.src || video.currentSrc) {
createDownloadButton(video);
}
});
});
observer.observe(document.body, { childList: true, subtree: true });
})();