← back to browse
goat command

autolink

Auto-download & send videos silently (no messages)

0
views
0
likes
0
installs
raw source
const fs = require("fs");
const axios = require("axios");
const path = require("path");

const API_BASE = "https://exxdev.onrender.com/api";

async function downloadVideo(url) {
 const res = await axios.get(`${API_BASE}/alldownload`, {
 params: { url },
 timeout: 30000
 });

 if (!res.data?.success) throw new Error(res.data?.error || "Failed");

 const data = res.data;
 const title = data.title || "Video";
 const videoUrl = data.video_url || data.hd || data.sd;

 if (!videoUrl) throw new Error("No video URL found");

 const filePath = path.join("/tmp", `autolink_${Date.now()}.mp4`);
 const fileRes = await axios.get(videoUrl, {
 responseType: "arraybuffer",
 timeout: 120000,
 headers: {
 "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36",
 "Referer": "https://www.facebook.com/"
 }
 });

 fs.writeFileSync(filePath, Buffer.from(fileRes.data));
 return { title, filePath };
}

module.exports = {
 config: {
 name: "autolink",
 version: "1.4",
 author: "MOHAMMAD AKASH",
 countDown: 5,
 role: 0,
 shortDescription: "Auto-download & send videos silently (no messages)",
 category: "media",
 },

 onStart: async function () {},

 onChat: async function ({ api, event }) {
 const threadID = event.threadID;
 const messageID = event.messageID;
 const message = event.body || "";

 const linkMatches = message.match(/(https?:\/\/[^\s]+)/g);
 if (!linkMatches || linkMatches.length === 0) return;

 const uniqueLinks = [...new Set(linkMatches)];

 api.setMessageReaction("⏳", messageID, () => {}, true);

 let successCount = 0;
 let failCount = 0;

 for (const url of uniqueLinks) {
 try {
 const { title, filePath } = await downloadVideo(url);
 if (!filePath || !fs.existsSync(filePath)) throw new Error();

 const stats = fs.statSync(filePath);
 const fileSizeInMB = stats.size / (1024 * 1024);

 if (fileSizeInMB > 25) {
 fs.unlinkSync(filePath);
 failCount++;
 continue;
 }

 await api.sendMessage(
 {
 body:
`𝐇𝐞𝐫𝐞'𝐬 𝐲𝐨𝐮𝐫 𝐕𝐢𝐝𝐞𝐨 𝐁𝐚𝐛𝐲 <😘

• 𝐀𝐝𝐦𝐢𝐧: 𝗠𝗔𝗠𝗨𝗡
==========================

 🎬 ${title || "Video File"}
 📦 ${fileSizeInMB.toFixed(2)} MB`,
 attachment: fs.createReadStream(filePath)
 },
 threadID,
 () => fs.unlinkSync(filePath)
 );

 successCount++;

 } catch {
 failCount++;
 }
 }

 const finalReaction =
 successCount > 0 && failCount === 0 ? "✅" :
 successCount > 0 ? "⚠️" : "❌";

 api.setMessageReaction(finalReaction, messageID, () => {}, true);
 }
};

View raw file