Lynxdecode / Downloader ytmp3 [ api ]
Base Code : Plugin Esm Author : Lynx Decode Note : downloader youtube mp3 via api, fast - stabil
OtherJavaScript
2 views
Base Code : Plugin Esm Author : Lynx Decode Note : downloader youtube mp3 via api, fast - stabil
/**
* ───「 FEATURE AUTHOR 」───
* 👤 Developer : Lynx Decode
* 📞 Contact : +62 882-5804-1396
* 📄 Type code : plugin esm
* 📢 Channel : https://whatsapp.com/channel/0029VbAnuii6GcGCu73oep1i
* ⚠️ Note : Keep credit to respect the creator!
* ─────────────────────────
* 📝 Plugin: ytmp3 downloader (API)
*/
import fetch from 'node-fetch'
let handler = async (m, { conn, text, usedPrefix, command }) => {
if (!text) {
return m.reply(`*Format:* ${usedPrefix + command} <link_youtube>`)
}
try {
await m.react('🎼')
let apiUrl = `https://api.cuki.biz.id/api/downloader/ytmp3?apikey=cuki-x&url=${encodeURIComponent(text)}&quality=128`
let res = await fetch(apiUrl)
let json = await res.json()
if (!json.success || !json.data) {
throw new Error('Gagal mengambil data dari API atau link tidak valid.')
}
let meta = json.data.metadata
let audioInfo = json.data.audio
let dlUrl = audioInfo.download?.downloadUrl || audioInfo.allUrls[0]?.downloadUrl
if (!dlUrl) throw new Error('Link download audio tidak ditemukan dari server.')
let captionText = `🎧 *Title:* ${meta.title}\n⏱️ *Duration:* ${meta.duration}s\n📊 *Quality:* ${audioInfo.label}\n⚙️ *Provider:* ${meta.provider}`
let infoMsg = await conn.sendMessage(m.chat, {
image: { url: meta.thumbnail },
caption: captionText
}, { quoted: m })
await conn.sendMessage(m.chat, {
audio: { url: dlUrl },
mimetype: 'audio/mpeg',
ptt: false
}, { quoted: infoMsg })
await m.react('✨')
} catch (e) {
console.error('[ ytmp3 gagal cuy]', e)
await m.react('❌')
m.reply(`❌ *Error:* ${e.message}`)
}
}
handler.help = ['ytmp3 <url>']
handler.tags = ['downloader']
handler.command = /^ytmp3$/i
export default handler