spotify-downloader.js

by Fsbyte
49 Raw
/* ES Module
import axios from "axios";
import FormData from "form-data";
import * as cheerio from "cheerio";
*/

/* Common JS
const axios = require("axios");
const FormData = require("form-data");
const cheerio = require("cheerio");
*/

const baseUrl = "https://spotidown.app/";

const spotify = {
  download: async (url) => {
    try {
      const { data: initPage } = await axios.get(baseUrl);
      const $init = cheerio.load(initPage);
      
      const formData = new FormData();
      
      formData.append("url", url);
      
      $init('input[type="hidden"]').each((index, element) => {
        const name = $init(element).attr('name');
        const value = $init(element).val();
        
        if (name && value) {
          formData.append(name, value);
          console.log(`Menambahkan field: ${name} = ${value}`);
        }
      });

      formData.append("g-recaptcha-response", "");

      const { data: resultPage } = await axios.post("https://spotidown.app/action", formData, {  
        headers: {  
          ...formData.getHeaders(),  
          "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36",  
          "Referer": baseUrl,  
        },  
      });  
      return resultPage;
    } catch (error) {  
      console.error("Error:", error.message);  
      return {  
        status: "error",  
        message: error.message,  
      };  
    }
  },
};

spotify.download("https://open.spotify.com/track/52SSvrnwEf8VUW1Y5IwPEw")
  .then(console.log)
  .catch(console.error);