const axios = require("axios"); const yts = require("yt-search"); const fs = require("fs"); let handler = async (m, { conn, usedPrefix, command, text }) => { // Memastikan ada input teks if (!text) { throw `*• Contoh :* ${usedPrefix + command} **`; } m.reply("Tunggu sebentar..."); let videoUrl; // Mencari video berdasarkan teks let result = await yts(text); videoUrl = result.videos[0]?.url; // Ambil URL video pertama if (!videoUrl) { return m.reply("Tidak ada video ditemukan dengan pencarian tersebut."); } // Encode URL untuk digunakan dalam permintaan API const encodedUrl = encodeURIComponent(videoUrl); const apiUrl = `https://Ikygantengbangetanjay-api.hf.space/yt?query=${encodedUrl}`; try { console.log(`Mengirim permintaan ke API: ${apiUrl}`); // Log URL API let response = await axios.get(apiUrl); console.log(`Respons dari API:`, response.data); // Log respons dari API let data = response.data; // Memeriksa apakah hasil valid if (!data.success || !data.result) { return m.reply("Tidak ada hasil ditemukan."); } let videoData = data.result; let cap = `*乂 Y T M P 3 - P L A Y*\n\n` + `◦ Judul : ${videoData.title}\n` + `◦ Link Video : ${videoData.url}\n` + `◦ Durasi : ${videoData.timestamp}\n` + `◦ Penulis : ${videoData.author.name}\n` + `◦ Views : ${videoData.views}\n` + `◦ Diunggah : ${videoData.ago}`; await conn.sendMessage(m.chat, { text: cap }, { quoted: m }); // Mengunduh audio const audioResponse = await axios.get(videoData.download.audio, { responseType: 'arraybuffer' }); const audioBuffer = Buffer.from(audioResponse.data, 'binary'); // Mengunduh thumbnail const thumbnailResponse = await axios.get(videoData.thumbnail, { responseType: 'arraybuffer' }); const thumbnailBuffer = Buffer.from(thumbnailResponse.data, 'binary'); // Kirim audio sebagai dokumen dengan thumbnail await conn.sendMessage(m.chat, { document: audioBuffer, mimetype: 'audio/mpeg', fileName: `${videoData.title}.mp3`, caption: cap, contextInfo: { externalAdReply: { title: "乂 Y T M P 3 - P L A Y", body: videoData.title, mediaType: 2, sourceUrl: videoData.url, mediaUrl: videoData.url, thumbnailUrl: videoData.thumbnail || "", // Thumbnail untuk tampilan renderLargerThumbnail: true } } }, { quoted: m }); } catch (error) { console.error("Terjadi kesalahan:", error); // Log kesalahan m.reply("Terjadi kesalahan saat mengunduh audio. Silakan periksa log untuk detail."); } } handler.help = ["ytmp3", "yta", "play"].map(a => a + " *[query]*"); handler.tags = ["downloader"]; handler.command = ["ytmp3", "yta", "play"]; handler.premium = 50 module.exports = handler;