spotifydl-cores

Spotifydl-Cores

Never gonna give up, never gonna let you down

A simple package to download music tracks from spotify 🎵

Installation

NPM

> npm i spotifydl-cores

Github

> npm i github:rizzlogy/spotifydl-cores

Intialization

You need to intialize the Spotify Class before acessing the methods inside it.

const Spotify = require('spotifydl-cores').default
//import Spotify from 'spotifydl-cores'

const credentials = {
clientId: 'your-client-id',
clientSecret: 'your-client-secret'
}
const spotify = new Spotify(credentials)

Methods

NOTE: Only some methods are shown here. Checkout the docs for a more in-depth documentation

Get Track ⏭️

await spotify.getTrack(track_url) 

// For Example: track_url = 'https://open.spotify.com/track/1Ub6VfiTXgyV8HnsfzrZzC?si=4412ef4ebd8141ab'

// Input: url of the track, Type: string

Download Track/Song ⬇️

await spotify.downloadTrack(track_url, file_name)

// For Example: track_url = 'https://open.spotify.com/track/1Ub6VfiTXgyV8HnsfzrZzC?si=4412ef4ebd8141ab' & file_name = 'song.mp3'

// Input: url of the track and name of the filename, Both Type: string

// It'll return buffer (promise) if you don't provide any filename

Get Artist 👩‍🎤🧑‍🎤

await spotify.getArtist(artist_url)

// For Example: artist_url = 'https://open.spotify.com/artist/3B9O5mYYw89fFXkwKh7jCS'

// Input: url of the artist, Type: string

Get Album 💽

await spotify.getAlbum(album_url)

// For Example: album_url = 'https://open.spotify.com/album/3u3WsbVPLT0fXiClx9GYD9?si=pfGAdL3VRiid0M3Ln_0DNg'

// Input: url of the album, Type: string

Get Playlist 🎧

await spotify.getPlylist(playlist_url)

// Input: url of the playlist, Type: string

Download an Entire playlist

await spotify.downloadPlaylist(playlist_url)

//It'll return an array containing the Buffer of the songs in the playlist

Usage Example

const fs = require('fs-extra') 
// Initialization and Authentication
const Spotify = require('spotifydl-cores').default // Import the library
const spotify = new Spotify({ // Authentication
clientId: 'acc6302297e040aeb6e4ac1fbdfd62c3', // <-- add your own clientId
clientSecret: '0e8439a1280a43aba9a5bc0a16f3f009', // <-- add your own clientSecret
})
/* To learn more about clientId and Secret ,
visit https://developer.spotify.com/documentation/general/guides/app-settings/
*/

// Declaring the respective url in 'links' object
const links = {
artist: 'https://open.spotify.com/artist/7ky9g1jEjCsjNjZbYuflUJ?si=2To3fmc-T9KuyyrQ-Qp5KQ', // Url of the artist you want to gather info about
album: 'https://open.spotify.com/album/3u3WsbVPLT0fXiClx9GYD9?si=pfGAdL3VRiid0M3Ln_0DNg', // Url of the album you want to gather info about
song: 'https://open.spotify.com/track/1Ub6VfiTXgyV8HnsfzrZzC?si=4412ef4ebd8141ab' // Url of the song you want to gather info about or download
};

// Engine
(async () => {
const data = await spotify.getTrack(links.song) // Waiting for the data 🥱
console.log('Downloading: ', data.name, 'by:', data.artists.join(' ')) // Keep an eye on the progress
const song = await spotify.downloadTrack(links.song) // Downloading goes brr brr
fs.writeFileSync('song.mp3', song) // Let's write the buffer to the woofer (i mean file, hehehe)
})()

//spotify.verifyCredentials().then(() => Promise.all([spotify.getTrack(links.song), spotify.getAlbum(links.album), spotify.getArtistAlbums(links.artist)]).then(console.log))

Generated using TypeDoc