4.8 - Recommendations
Last updated
Last updated
const searchResults = await getDataFromSpotfy(
`https://api.spotify.com/v1/search?q=${req.query.query}&type=track%2Cartist&limit=10&offset=0`,
options
);
const audioIdList = searchResults.tracks.items.map((track) => track.id);
const formattedIdList = audioIdList.toString().replace(/,/g, '%2C');const audioFeatures = await getDataFromSpotfy(
`https://api.spotify.com/v1/audio-features?ids=${formattedIdList}`,
options
);const featuresWithMood = audioFeatures.audio_features.map((track) => {
return moodFilter.addMood(track);
});
const recommended = await getDataFromSpotfy(
`https://api.spotify.com/v1/recommendations?limit=${10}&market=US&min_energy=${
featuresWithMood[0].values.energyValues.min
}&max_energy=${featuresWithMood[0].values.energyValues.max}&min_valence=${
featuresWithMood[0].values.valenceValues.min
}&max_valence=${
featuresWithMood[0].values.valenceValues.max
}&min_danceability=${
featuresWithMood[0].values.danceabilityValues.min
}&max_danceability=${
featuresWithMood[0].values.danceabilityValues.max
}&seed_tracks=${featuresWithMood[0].id}`,
options
);res.render(__dirname + '/view/components/result-list.ejs', {
trackData: searchResults.tracks.items,
token: access_token,
recommendations: recommended.tracks,
});