Feat.ify is a web application that allows users to create a playlist on Spotify featuring tracks where the given artist is either a featured artist or has been featured in the track. The application makes use of HTML, CSS, JavaScript for the frontend, Flask for the server-side, and Spotipy for working with the Spotify Web API.
Client: HTML,CSS,JS
Server: Flask
-
Interactive & Friendly UI: The frontend of the application is designed to be user-friendly and easy to navigate.
-
Scraping with Beautiful Soup : Feat.ify employs web scraping to extract data from Wikipedia, making it possible to fetch detailed information about the artist's discography and collaborations.
-
Data Parsing with Pandas: The use of Pandas library ensures efficient parsing and organization of the data extracted from Wikipedia tables.
-
Spotify OAuth Integration: Secure login with Spotify credentials using OAuth grants necessary permissions to manage playlists.
-
Spotify Web API: Utilizes Spotipy to create and manage playlists directly on the user's Spotify account.
-
Playlist Creation: Allows users to create personalized playlists featuring their favorite artists' collaborations.
-
Robust Error Handling: Gracefully handles unexpected situations and provides helpful error messages to users.
- Last.fm is used for search suggestions and to extract user information.
- The application finds the Wikipedia URL for the selected artist based on user input.
- It extracts two tables from the Wikipedia page using Beautiful Soup.
- The data is then parsed and necessary information is stored in a structured format.
- The user is authenticated with Spotify using OAuth to gain necessary permissions.
- Using the artist information obtained, the application searches for songs on Spotify and retrieves their unique track IDs.
- The track IDs are then used to create a new playlist on the user's Spotify account.
- Finally, the newly created playlist is returned to the user, featuring collaborations with the selected artist.
To run this project, you will need to add the following environment variables to your .env file
SPOTIFY_CLIENT_ID
SPOTIFY_CLIENT_SECRET
SPOTIPY_REDIRECT_URI
SPOTIFY_SCOPE
LAST_FM_API_KEY
LAST_FM_API_SECRET
LAST_FM_USERNAME
LAST_FM_PWD_HASH
Clone the project
git clone https://github.com/TechShivvy/Feat.ify.git
Go to the project directory
cd my-project
Install dependencies
pip install -r requirements.txt
Start the server(don't forget to set env variables)
python app.py
Access the site at(port 5000 is default)
http://localhost:5000
Users must go to the respective websites for Spotify and Last.fm developers to create API keys. These API keys are required to access the Spotify and Last.fm APIs.
After obtaining the API keys, users need to set up environment variables in the application. These environment variables should include the API keys and other required credentials, such as the redirect URL for Spotify OAuth. The .env file or system environment variables should be used to store these values securely.
When creating the Spotify API key, users must specify the redirect URL. This URL should point to the Feat.ify application's authorization route (/authorize in this case). This is necessary for the OAuth flow to work correctly, allowing users to log in and grant necessary permissions to the application.
You can try out our website at featify.onrender.com takes few mins to load,sorry :p
If you have any feedback, please fill out this form.