Play

by AlfiXD
22 Raw
/*
šŸ“Œ Nama Fitur: Play
šŸ·ļø Type : Plugin ESM
šŸ”— Sumber : -
šŸ”— Sumber Api : https://api.alfixd.my.id

āœļø By AlfiXD
*/


import axios from 'axios'
import yts from 'yt-search'

let handler = async (m, { conn, args, text, command }) => {
  if (!text) return m.reply(`*Contoh:* ${command} god of war short`)
  m.reply(wait)

  try {
    let search = await yts(text)
    let video = search.videos[0]
    if (!video) return m.reply('Video tidak ditemukan, coba kata kunci lain.')

    const api = `https://api.alfixd.my.id/api/ytdl?url=${encodeURIComponent(video.url)}&format=mp3`;
    const res = await axios.get(api)
    const result = res.data?.result

    if (!result?.download_url) return m.reply('Gagal mendapatkan URL audio.')

   // await conn.sendMessage(m.chat, {
     // image: { url: result.thumbnail },
     let caption =`• *Title:* ${video.title}\n• *Duration:* ${video.timestamp}\n• *Upload at:* ${video.ago}\n• *Descriptions:* ${video.description}\n• *Views:* ${video.views}\n• *Link:* ${video.url}\n\n> Mohon tunggu, audio sedang dikirim...`
   // }, { quoted: m });
    
    await conn.relayMessage(m.chat, {
                extendedTextMessage: {
                    text: caption,
                    contextInfo: {
                        externalAdReply: {
                            title: video.title,
                            mediaType: 1,
                            previewType: 0,
                            renderLargerThumbnail: true,
                            thumbnailUrl: video.image,
                            sourceUrl: video.url
                        }
                    },
                    mentions: [m.sender]
                }
            }, {});

    await conn.sendMessage(m.chat, {
                audio: { url: result.download_url },
                mimetype: "audio/mpeg"
                contextInfo: {
                    externalAdReply: {
                        title: result.title,
                        body: "",
                        thumbnailUrl: video.image,
                        sourceUrl: video.url,
                        mediaType: 1,
                        showAdAttribution: true,
                        renderLargerThumbnail: true
                    }
                }
            }, {
                quoted: m
            });

  } catch (e) {
    console.error(e)
    m.reply(`Terjadi kesalahan saat memproses permintaan. Coba lagi nanti. ${e.message}`)
  }
};

handler.help = ['play'].map(v => v + ' ')
handler.command = ['play']
handler.tags = ['downloader']

export default handler