UNPKG

notmebotz-tools

Version:

Sebuah Tools yang berfungsi untuk mendownload Video atau Foto dari media sosial, serta sebagai tools yang berguna untuk aplikasi kamu seperti untuk BOT

64 lines (56 loc) 2.1 kB
const axios = require('axios'); const crypto = require('crypto'); const BASE_URL_POST = 'https://rycvzz5nh5shm3bq5caekjrnvu0aadef.lambda-url.us-east-1.on.aws/'; const BASE_URL_GET = 'https://l2tv6fpgy7.execute-api.us-east-1.amazonaws.com/default/free_version_musicverter_python'; const delay = ms => new Promise(resolve => setTimeout(resolve, ms)); async function soundc(url, retries = 3) { try { const userId = crypto.randomUUID(); const postResponse = await axios.post(BASE_URL_POST, { link: url }, { headers: { 'Content-Type': 'application/json' } }); await delay(1000); let lastError; for (let i = 0; i < retries; i++) { try { const getResponse = await axios.get(`${BASE_URL_GET}`, { params: { plan_type: 'free_downloaded_song', link: url }, headers: { 'Accept': '*/*', 'userid': userId, 'Origin': 'https://soundcloud.com', 'Referer': 'https://soundcloud.com/' } }); return { author: "Herza", status: 200, data: { title: getResponse.data.title, thumbnail: getResponse.data.thumbnail, author: getResponse.data.author, downloadUrl: getResponse.data.link, genre: getResponse.data.genre } }; } catch (error) { lastError = error; await delay(2000 * (i + 1)); } } throw lastError; } catch (error) { if (error.response) { throw new Error(`API Error: ${error.response.status} - ${error.response.data}`); } throw error; } } module.exports = { soundc}