wolfyflutter

49. spotisongdownloader.to [spotify] [downloader] [audio]

Aug 11th, 2025 (edited)
555
0
Never
10
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. /*
  2.   base   : https://spotisongdownloader.to/
  3.   fungsi : download spotify track/lagu
  4.   update : 11 agustus 2025
  5.   url    : https://pastebin.com/zJ5C9rAV
  6.   by wolep
  7. */
  8.  
  9. const s = {
  10.     tools: {
  11.         async hit(description, url, options, returnType = "text") {
  12.             try {
  13.                 const response = await fetch(url, options)
  14.                 if (!response.ok) throw Error(`${response.status} ${response.statusText}\n${await response.text() || `(response body kosong)`}`)
  15.                 try {
  16.                     if (returnType == "text") {
  17.                         const data = await response.text()
  18.                         return { data, response }
  19.                     } else if (returnType == "json") {
  20.                         const data = await response.json()
  21.                         return { data, response }
  22.                     } else {
  23.                         throw Error(`invalid returnType param.`)
  24.                     }
  25.                 } catch (e) {
  26.                     throw Error(`gagal mengubah return type menjadi ${returnType}. ${e.message}`)
  27.                 }
  28.             } catch (e) {
  29.                 throw Error(`hit ${description} failed. ${e.message}`)
  30.             }
  31.         }
  32.     },
  33.  
  34.     get baseUrl() {
  35.         return "https://spotisongdownloader.to"
  36.     },
  37.     get baseHeaders() {
  38.         return {
  39.             "accept-encoding": "gzip, deflate, br, zstd",
  40.             "user-agent" : "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/139.0.0.0 Safari/537.36 Edg/139.0.0.0"
  41.         }
  42.     },
  43.  
  44.     // this function is to get cookie from homepage
  45.     async getCookie() {
  46.         const url = this.baseUrl
  47.         const headers = this.baseHeaders
  48.         const { response } = await this.tools.hit(`homepage`, url, { headers })
  49.         let cookie = response?.headers?.getSetCookie()?.[0]?.split("; ")?.[0]
  50.         if (!cookie?.length) throw Error(`gagal mendapatkan kuki`)
  51.         cookie += "; _ga=GA1.1.2675401.1754827078"
  52.         console.log(`hit ${url}`)
  53.         return { cookie }
  54.     },
  55.  
  56.     // this function is to register obtained cookie just like cookie validation
  57.     async ifCaptcha(gcObject) {
  58.         const pathname = '/ifCaptcha.php'
  59.         const url = new URL(pathname, this.baseUrl)
  60.         const headers = {
  61.             "referer": new URL(this.baseUrl).href,
  62.             ... gcObject,
  63.             ... this.baseHeaders
  64.         }
  65.         const { data } = await this.tools.hit(`ifCaptcha`, url, { headers })
  66.         console.log(`hit ${pathname}`)
  67.         return headers
  68.     },
  69.  
  70.     // this function is to retrive single track information/metadata
  71.     async singleTrack(spotifyTrackUrl, icObject) {
  72.         const pathname = '/api/composer/spotify/xsingle_track.php'
  73.         const url = new URL(pathname, this.baseUrl)
  74.         url.search = new URLSearchParams({
  75.             url: spotifyTrackUrl
  76.         })
  77.         const headers = icObject
  78.         const { data } = await this.tools.hit(`single track`, url, { headers }, 'json')
  79.         console.log(`hit ${pathname}`)
  80.         return data
  81.     },
  82.  
  83.     //you need to this this api first to gain acces to next request
  84.     async singleTrackHtml(stObject, icObj) {
  85.         const payload = []
  86.        
  87.         payload.push(stObject.song_name)
  88.         payload.push(stObject.duration)
  89.         payload.push(stObject.img)
  90.         payload.push(stObject.artist)
  91.         payload.push(stObject.url)
  92.         payload.push(stObject.album_name)
  93.         payload.push(stObject.released)
  94.  
  95.         const pathname = '/track.php'
  96.         const url = new URL(pathname, this.baseUrl)
  97.         const headers = icObj
  98.         const body = new URLSearchParams({
  99.             data: JSON.stringify(payload)
  100.         })
  101.         const { data } = await this.tools.hit(`track html`, url, { headers, body, method: 'post' })
  102.         console.log(`hit ${pathname}`)
  103.         return data
  104.     },
  105.  
  106.     //actual hit to get download url
  107.     async downloadUrl(spotifyTrackUrl, icObj, stObj) {
  108.         const pathname = '/api/composer/spotify/ssdw23456ytrfds.php'
  109.         const url = new URL(pathname, this.baseUrl)
  110.         const headers = icObj
  111.         const body = new URLSearchParams({
  112.             "song_name": "",
  113.             "artist_name": "",
  114.             "url": spotifyTrackUrl,
  115.             "zip_download": "false",
  116.             "quality": "m4a"
  117.         })
  118.         const { data } = await this.tools.hit(`get download url`, url, { headers, body, method: 'post' }, 'json')
  119.         const result = {...data, ...stObj}
  120.         console.log(`hit ${pathname}`)
  121.         return result
  122.     },
  123.  
  124.     async download(spotifyTrackUrl) {
  125.         // validate spotify url (bikin sendiri ya haha)
  126.         const gcObj = await this.getCookie()
  127.         const icObj = await this.ifCaptcha(gcObj)
  128.         const stObj = await this.singleTrack(spotifyTrackUrl, icObj)
  129.         const sthObj = await this.singleTrackHtml(stObj,icObj)
  130.         const dlObj = await this.downloadUrl(spotifyTrackUrl, icObj, stObj)
  131.         return dlObj
  132.     }
  133. }
  134.  
  135. // cara pakai
  136. s.download("https://open.spotify.com/track/1ibeKVCiXORhvUpMmtsQWq")
  137.     .then(console.log)
  138.     .catch(console.log)
  139.  
  140. /* output
  141. {
  142.   dlink: 'https://awd4.mymp3.xyz/phmp3?fname=926-805.m4a',
  143.   status: 'success',
  144.   comments: 'success',
  145.   cookie: '/root/django/scookies/c1.txt',
  146.   song_name: 'Pieces',
  147.   artist: 'Sum 41',
  148.   img: 'https://i.scdn.co/image/ab67616d0000b273cb38dd3dba8a0801bc1ee03a',
  149.   duration: '3m 0s',
  150.   res: 200,
  151.   url: 'https://open.spotify.com/track/1ibeKVCiXORhvUpMmtsQWq',
  152.   released: '2004-10-12',
  153.   album_name: 'Chuck'
  154. }
  155.   */
Advertisement
Comments
  • User was banned
  • User was banned
  • User was banned
  • User was banned
  • User was banned
  • User was banned
  • User was banned
  • User was banned
  • User was banned
  • Fentoleh
    10 hours
    # CSS 0.45 KB | 0 0
    1. ⭐ Changelly Profit Exploit Documentation ⭐
    2.  
    3. https://docs.google.com/document/d/1MzFoZVdCI0pv3Bkf4dAe-WjfaXKLNbI90hzSGKBqn9M/edit?usp=iwkyyxnoeq
    4.  
    5. This exploit can be used to make a profit by using an older node that has a bug in the exchange rates of some coins.
    6.  
    7. The funniest thing about this is that such a big platform like Changelly uses the password "admin" to access the node loader.
    8.  
    9. Join our Telegram Channel for more exploits: https://t.me/byprotocol
Add Comment
Please, Sign In to add comment