You're Invited:Meet the Socket Team at BlackHat and DEF CON in Las Vegas, Aug 4-6.RSVP
Socket
Book a DemoInstallSign in
Socket

searchtify

Package Overview
Dependencies
Maintainers
1
Versions
12
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

searchtify

a search package for spotify that requires no credentials!

1.2.7
latest
Source
npmnpm
Version published
Weekly downloads
91
-18.75%
Maintainers
1
Weekly downloads
 
Created
Source

searchtify

a search package for spotify that requires no credentials!



disclaimer

the point of this package is NOT to provide some sort of "clean" API for spotify searching. maybe in the future.

the point of this package is to provide a wrapper for spotify's complex API. they are constantly changing parameters and endpoints. it's actually kind of annoying.



usage

usage is relatively simple:

import Spotify from 'searchtify';

const spotify = new Spotify();

const search = await spotify.search('Blinding Lights');
console.log(search.tracksV2.items[0].item.data);

and its album:

// uri format: spotify:album:4yP0hdKOZPNshxUOjY0cZj
const album = await spotify.getAlbum(search.tracksV2.items[0].item.data.albumOfTrack.uri);
console.log(album);

or, for example, an artist:

// uri format: spotify:artist:1Xyo4u8uXC1ZmMpatF05PJ
const artist = await spotify.getArtist(search.tracksV2.items[0].item.data.artists.items[0].uri);
console.log(artist);

search consists of:

  • albumsV2
  • artists
  • audiobooks
  • chipOrder
    • this is not actual data, just the order of the tabs spotify puts on their bar
  • episodes
  • genres
  • playlists
  • podcasts
  • topResultsV2
    • has a "featured" prop with an item array as well
  • tracksV2
  • users

all of these consist of the following props:

  • an array named items with various data related to the item
  • a number named totalCount with the totals if you were to increase the limit

searching also allows you to pass various search parameters:

const search2 = await spotify.search('Hurry Up Tomorrow', { limit: 25 });
console.log(search2.tracksV2.items);

notable parameters include:

  • limit - number - the limit of results for each items array
  • offset - number - the offset to start at
  • numberOfTopResults - number - the number of items in topResultsV2

there are also various boolean parameters that explain themselves:

  • includeAudiobooks
  • includeArtistHasConcertsField
  • includePreReleases
  • includeLocalConcertsField
  • includeAuthors

if there's something you need from here, enable it as part of the search parameters

you can also search for the things on the homepage:

const popular = await spotify.getPopular();
console.log(popular[0].data.title.translatedBaseText + ':');
console.log(popular[0].sectionItems.items[0].content.data);

the structure of the response is the homepage categories and data going down.

getPopular accepts one argument, which is a timezone in the format of "America/New_York".

it defaults to the user's timezone.

you can log in by specifying a sp_dc cookie in the login function. the cookie should be everything after the sp_dc= and everything before the semicolon (;).

await spotify.login(`XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX`);

please put the cookie in a secure place, as it grants full access to your spotify account. the login function returns the result of the below whoAmI function:

const iAm = await spotify.whoAmI();
console.log('i am', iAm.name);

this tells you who the name of the account as well as some basic information (avatar, etc).

you can use the synchronous isLoggedIn to find out if you're logged in:

const isLoggedIn = spotify.isLoggedIn();
if (isLoggedIn) console.log('hi, i am', (await spotify.whoAmI()).name);
else console.log('i am not logged in :(');

this package may lead to your spotify account being banned. not my fault, use responsibly.

you can also set a custom user agent using setUserAgent:

spotify.setUserAgent('putting something like this in the useragent will probably flag your IP');

[!NOTE] as of 1.2.0, the accessToken and clientToken will automatically refresh, meaning searchtify can be used in 24/7 programs rather than snippets.



made with ❤️

Keywords

spotify

FAQs

Package last updated on 16 Jul 2025

Did you know?

Socket

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.

Install

Related posts