Security News
PyPI’s New Archival Feature Closes a Major Security Gap
PyPI now allows maintainers to archive projects, improving security and helping users make informed decisions about their dependencies.
spotifydl-x
Advanced tools
> npm i spotifydl-core
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)
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
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))
FAQs
Spotify downloader for node
We found that spotifydl-x demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Security News
PyPI now allows maintainers to archive projects, improving security and helping users make informed decisions about their dependencies.
Research
Security News
Malicious npm package postcss-optimizer delivers BeaverTail malware, targeting developer systems; similarities to past campaigns suggest a North Korean connection.
Security News
CISA's KEV data is now on GitHub, offering easier access, API integration, commit history tracking, and automated updates for security teams and researchers.