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
JavaScript
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}