const axios = require('axios'); const crypto = require('crypto'); async function suno(prompt, { style = '', title = '', instrumental = false } = {}) { try { if (!prompt) throw new Error('Prompt is required'); if (typeof instrumental !== 'boolean') throw new Error('Instrumental must be a boolean'); const { data: cf } = await axios.get('https://api.nekorinn.my.id/tools/rynn-stuff', { params: { mode: 'turnstile-min', siteKey: '0x4AAAAAAAgeJUEUvYlF2CzO', url: 'https://songgenerator.io/features/s-45', accessKey: '2c9247ce8044d5f87af608a244e10c94c5563b665e5f32a4bb2b2ad17613c1fc' } }); const uid = crypto.createHash('md5').update(Date.now().toString()).digest('hex'); const { data: task } = await axios.post('https://aiarticle.erweima.ai/api/v1/secondary-page/api/create', { prompt: prompt, channel: 'MUSIC', id: 1631, type: 'features', source: 'songgenerator.io', style: style, title: title, customMode: false, instrumental: instrumental }, { headers: { uniqueid: uid, verify: cf.result.token } }); while (true) { const { data } = await axios.get(`https://aiarticle.erweima.ai/api/v1/secondary-page/api/${task.data.recordId}`, { headers: { uniqueid: uid, verify: cf.result.token } }); if (data.data.state === 'success') return JSON.parse(data.data.completeData); await new Promise(res => setTimeout(res, 1000)); } } catch (error) { throw new Error(error.message); } } // Usage: const resp = await suno('lagu tentang rasa cintaku kepada dia (perempuan), vokalis laki², dengan nada lofi santai'); console.log(resp);