import streamlit as st from streamlit import session_state as session # Configure Streamlit page st.set_page_config(page_title="Song Recommender🎶", page_icon="🎶") st.title("Song Recommender🎶") st.markdown("Click on '**Recommend from Song🎤**' from the side panel to get recommended songs via the Spotify API.") st.markdown("**How does '**Recommend from Genre Features🎸**' work?**") st.markdown( "The songs come from the [Spotify and Genius Track Dataset](https://www.kaggle.com/datasets/saurabhshahane/spotgen-music-dataset) on Kaggle. The [k-Nearest Neighbor algorithm](https://scikit-learn.org/stable/modules/neighbors.html) is used to obtain recommendations, i.e., the top songs which are closest in distance to the set of parameter inputs specified by you." ) st.markdown("This app will recommend you songs based on the characteristics below.") st.markdown( """ **Acousticness**: A metric describing the 'acousticness' of a song. 1.0 represents high confidence the song is acoustic.
**Danceability**: Describes a song's suitability for dancing based on combination of elements including tempo, rhythm stability, beat strength, and overall regularity. 0.0 is least danceable and 1.0 is most danceable.
**Energy**: Measure of intensity and activity. Often, energetic songs feel fast, loud, and noisy.
**Liveness**: A metric describing the likelihood that a track is a recording of a live performance.
**Speechiness**: How much lyrics the track contains.
**Valence**: A metric ranging from 0.0 to 1.0 describing the positivity conveyed by a track.
Source: [Spotify Web API](https://developer.spotify.com/documentation/web-api/reference) """, unsafe_allow_html=True, )