File size: 3,220 Bytes
47ab1ce
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
84
85
86
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} *<query>*`;
    }

    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;