Giter Club home page Giter Club logo

spotifydl-core's Introduction

Spotifydl-Core

Never gonna give up, never gonna let you down

A simple package to download music tracks from spotify ๐ŸŽต

Installation

> npm i spotifydl-core

Intialization

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

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

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-core').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))

๐Ÿ™‡โ€ Special Thanks

spotifydl-core's People

Contributors

alenvelocity avatar dependabot[bot] avatar aliaryantech avatar nayzflux avatar somnathdas avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.