File size: 2,961 Bytes
046b271 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 |
const axios = require("axios");
const { cmd } = require("../command");
cmd({
pattern: "fbdl",
alias: ["facebook", "fb"],
react: 'โฐ',
desc: "Download videos from Facebook.",
category: "download",
use: ".fbdl <Facebook video URL>",
filename: __filename
}, async (conn, mek, m, { from, reply, args }) => {
try {
// Check if the user provided a Facebook video URL
const fbUrl = args[0];
if (!fbUrl || !fbUrl.includes("facebook.com")) {
return reply('*๐โัฮฑสั ๐ษผเนฮฝฮนษั ๐ fbา ๐ฮนษัเน เนษผ ษผััโ ๐ษผโ..*');
}
// Add a reaction to indicate processing
await conn.sendMessage(from, { react: { text: 'โณ', key: m.key } });
// Prepare the API URL
const apiUrl = `https://apis.davidcyriltech.my.id/facebook2?url=${encodeURIComponent(fbUrl)}`;
// Call the API using GET
const response = await axios.get(apiUrl);
// Check if the API response is valid
if (!response.data || !response.data.status || !response.data.video) {
return reply('โ Unable to fetch the video. Please check the URL and try again.');
}
// Extract the video details
const { title, thumbnail, downloads } = response.data.video;
// Get the highest quality download link (HD or SD)
const downloadLink = downloads.find(d => d.quality === "HD")?.downloadUrl || downloads[0].downloadUrl;
// Inform the user that the video is being downloaded
// await reply('```Downloading video... Please wait.๐ฅ```');
// Download the video
const videoResponse = await axios.get(downloadLink, { responseType: 'arraybuffer' });
if (!videoResponse.data) {
return reply('โ Failed to download the video. Please try again later.');
}
// Prepare the video buffer
const videoBuffer = Buffer.from(videoResponse.data, 'binary');
// Send the video with details
await conn.sendMessage(from, {
video: videoBuffer,
caption: `*๐ซ๐ษญฤซฤซ ๐ฦ ๐๐๐๐๐๐๐๐๐๐*\n\n` +
`๐ *TITLE*: ${title}\n` +
`๐ *QUALITY*: ${downloads.find(d => d.quality === "HD") ? "HD" : "SD"}\n\n` +
`> *ยฉ แดแดแดกแดสแดแด
สส แดสษช*`,
contextInfo: {
mentionedJid: [m.sender],
forwardingScore: 999,
isForwarded: true,
forwardedNewsletterMessageInfo: {
newsletterJid: '120363318387454868@newsletter',
newsletterName: 'ใ ๐ษญฤซฤซ ๐ฦ ๐
๐ ๐๐ ใ',
serverMessageId: 143
}
}
}, { quoted: mek });
// Add a reaction to indicate success
await conn.sendMessage(from, { react: { text: 'โ
', key: m.key } });
} catch (error) {
console.error('Error downloading video:', error);
reply('โ Unable to download the video. Please try again later.');
// Add a reaction to indicate failure
await conn.sendMessage(from, { react: { text: 'โ', key: m.key } });
}
});
|