← back to browse
goat command

convertmp3

Convert video to MP3 🎧

0
views
0
likes
0
installs

Aliases: mp3, convertmp3

raw source
const fs = require("fs-extra");
const path = require("path");
const axios = require("axios");

module.exports = {
  config: {
    name: "convertmp3",
 aliases: ["mp3", "convertmp3"],
    version: "1.0.0",
    role: 0,
    author: "MOHAMMAD AKASH",
    shortDescription: "Convert video to MP3 🎧",
    longDescription: "Download video from URL and convert to MP3.",
    category: "media",
    guide: "{p}convertmp3 <video_url>"
  },

  onStart: async function({ api, args, event }) {
    const { threadID, messageID } = event;

    try {
      // 🔗 Get video URL from args or replied message
      const url = args.join(" ") || event.messageReply?.attachments?.[0]?.url;
      if (!url) return api.sendMessage("⚠️ ᴘʟᴇᴀsᴇ ᴘʀᴏᴠɪᴅᴇ ᴀ ᴠɪᴅᴇᴏ ᴜʀʟ!", threadID, messageID);

      // ⏳ Font ABC style message
      api.sendMessage("Mᴘ3 ᴘʀᴏᴄᴇssɪɴɢ ᴘʟᴇᴀsᴇ ᴡᴀɪᴛ ⏳", threadID, messageID);

      // 📥 Download video
      const { data } = await axios.get(url, { responseType: "arraybuffer" });

      // 💾 Save as MP3
      const filePath = path.join(__dirname, "/cache/video.mp3");
      fs.writeFileSync(filePath, Buffer.from(data));

      // 🔊 Send back as attachment
      api.sendMessage({
        body: "Mᴘ3 ʀᴇᴀᴅʏ ✅",
        attachment: fs.createReadStream(filePath)
      }, threadID, async () => {
        fs.unlinkSync(filePath); // Delete after sending
      }, messageID);

    } catch (err) {
      console.log(err);
      api.sendMessage("⚠️ Fᴀɪʟᴇᴅ ᴛᴏ ᴄᴏɴᴠᴇʀᴛ ᴠɪᴅᴇᴏ!", threadID, messageID);
    }
  }
};

View raw file