Skip to content

Instantly share code, notes, and snippets.

@mifyow
Created November 6, 2025 12:35
Show Gist options
  • Select an option

  • Save mifyow/19bffd9bf5169993bf8ad92ed47ecfa4 to your computer and use it in GitHub Desktop.

Select an option

Save mifyow/19bffd9bf5169993bf8ad92ed47ecfa4 to your computer and use it in GitHub Desktop.
Uploaded via Mifinfinity-!! | Yessir
import axios from "axios";
export default {
name: "ytdl",
category: "downloader",
command: ["ytdl", "yt"],
run: async (conn, m) => {
try {
const input = m.isQuoted ? m.quoted.text : m.text;
const regex = /(https?:\/\/(?:www\.)?(youtube\.com|youtu\.be)\/[^\s]+)/;
const parseUrl = input.match(regex)?.[0];
if (!parseUrl) {
return m.reply(
`# Cara Penggunaan\n\n` +
`> ${m.cmd} <link_youtube> --audio\n` +
`> ${m.cmd} <link_youtube> --video\n\n` +
`# Contoh:\n` +
`> ${m.cmd} https://youtu.be/dQw4w9WgXcQ --audio`
);
}
let type;
if (input.includes("--audio")) type = "audio";
else if (input.includes("--video")) type = "video";
else return m.reply(`❗ Tentukan jenis unduhan: --audio atau --video`);
m.reply("⏳ Sedang memproses permintaanmu...");
let command;
if (type === "audio") command = `-x --audio-format mp3 ${parseUrl}`;
else command = `-f bestvideo+bestaudio[ext=mp4]/best[ext=mp4]/best ${parseUrl}`;
const encoded = encodeURIComponent(command);
const response = await axios.get(
`https://ytdlp.online/stream?command=${encoded}`,
{ responseType: "stream" }
);
const downloadUrl = await new Promise((resolve, reject) => {
let found = null;
response.data.on("data", (chunk) => {
const text = chunk.toString();
const match =
text.match(/href="([^"]+\.(mp3|mp4|m4a|webm|mov|mkv))"/i) ||
text.match(/(https:\/\/ytdlp\.online\/[^"' ]+\.(mp3|mp4|m4a|webm|mov|mkv))/i);
if (match)
found = match[1].startsWith("http")
? match[1]
: `https://ytdlp.online${match[1]}`;
});
response.data.on("end", () => {
if (!found) reject(new Error("Gagal menemukan URL download"));
else resolve(found);
});
response.data.on("error", reject);
});
if (type === "audio") {
await m.reply({
audio: { url: downloadUrl },
mimetype: "audio/mpeg",
caption: "🎧 Berhasil mengunduh audio!"
});
} else {
await m.reply({
video: { url: downloadUrl },
caption: "🎥 Berhasil mengunduh video!"
});
}
} catch (error) {
m.reply("⚠️ Terjadi kesalahan saat mengambil video YouTube.");
}
},
};
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment