← back to browse
goat command

aldl

No description

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

const CUSTOM_API_URL = "https://toshiro-api-editz6t9.vercel.app/api/downloader/alldl";

function detectPlatform(url) {
  if (url.includes("tiktok.com")) return "TikTok";
  if (url.includes("facebook.com") || url.includes("fb.watch")) return "Facebook";
  if (url.includes("instagram.com")) return "Instagram";
  if (url.includes("youtube.com") || url.includes("youtu.be")) return "YouTube";
  if (url.includes("x.com") || url.includes("twitter.com")) return "Twitter / X";
  if (url.includes("pin.it") || url.includes("pinterest.com")) return "Pinterest";
  return "Unknown";
}

module.exports = {
  config: {
    name: "aldl",
    version: "4.3",
    author: "Toshiro Editz",
    role: 0,
    category: "media",
    description: {
      en: "Auto download videos from TikTok, Facebook, Instagram, YouTube, X/Twitter, Pinterest"
    },
    guide: { en: "[video_link]" }
  },

  onStart: async function () {},

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

    const SUPPORTED = [
      "https://vt.tiktok.com",
      "https://www.tiktok.com/",
      "https://vm.tiktok.com",
      "https://www.facebook.com/share/v",
      "https://www.facebook.com/share/r",
      "https://www.instagram.com/",
      "https://youtu.be/",
      "https://youtube.com/",
      "https://x.com/",
      "https://twitter.com/",
      "https://pin.it/",
      "https://www.pinterest.com/"
    ];

    if (!SUPPORTED.some(link => text.startsWith(link))) return;

    api.setMessageReaction("๐Ÿค", event.messageID, () => {}, true);
    const startTime = Date.now();

    try {
      const cacheDir = path.join(__dirname, "cache");
      await fs.ensureDir(cacheDir);

      const filePath = path.join(cacheDir, `autodl_${Date.now()}.mp4`);

      const res = await axios.get(CUSTOM_API_URL + "?url=" + encodeURIComponent(text), {
        timeout: 20000
      });

      const response = res.data;

      if (!response.success) {
        api.setMessageReaction("โŒ", event.messageID, () => {}, true);
        return api.sendMessage(
          `โŒ Failed: ${response.message || "Unknown error"}`,
          event.threadID,
          event.messageID
        );
      }

      const result = response.result || {};
      const downloadUrl = result.video || result.url;
      const title = result.title || "Unknown Title";
      const author = result.author || "Unknown";
      const platform = detectPlatform(text);

      if (!downloadUrl) {
        api.setMessageReaction("โŒ", event.messageID, () => {}, true);
        return api.sendMessage(
          "โŒ No video found for this link",
          event.threadID,
          event.messageID
        );
      }

      const buffer = (
        await axios.get(downloadUrl, {
          responseType: "arraybuffer",
          timeout: 30000
        })
      ).data;

      await fs.writeFile(filePath, Buffer.from(buffer));
      api.setMessageReaction("โœ…", event.messageID, () => {}, true);

      const speed = ((Date.now() - startTime) / 1000).toFixed(2);

      const msg = `
โ•ญโ”ใ€” โœ… Auto Download ใ€•โ”โ•ฎ
โ”ƒ ๐Ÿ“Œ Title     : ${title}
โ”ƒ ๐ŸŒ Platform  : ${platform}
โ”ƒ ๐Ÿ‘ค Author    : ${author}
โ”ƒ โšก Speed     : ${speed}s
โ”ƒ ๐Ÿ†” User ID   : ${event.senderID}
โ•ฐโ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ•ฏ
`;

      api.sendMessage(
        {
          body: msg,
          attachment: fs.createReadStream(filePath)
        },
        event.threadID,
        () => fs.unlinkSync(filePath),
        event.messageID
      );

    } catch (err) {
      console.error(err);
      api.setMessageReaction("โŒ", event.messageID, () => {}, true);
      api.sendMessage(
        `โŒ Error: ${err.message}`,
        event.threadID,
        event.messageID
      );
    }
  }
};

View raw file