Inspiration
As music lovers ourselves, we thought, 'Why not create a TUI (text-based user interface) app that can batch download songs in the highest quality, freely and from the comfort of the command line?'
What it does
What it does is simple, but the impact it has is amazing. It enables users to search for a song, album, or playlist, choose what they want to download, and then download everything with proper organization and a user-friendly interface. It also adds metadata, such as title, year, artist, cover art, and lyrics, to the song files.
How we built it
We built the TUI app using the prompt-toolkit library. We also utilized the Spotify API, accessing metadata of the songs through the spotipy Python library. To replicate the requests sent by JioSaavn, we used the requests library. We studied these requests using HTTPToolkit and replicated them. To convert the downloaded flac files into mp3 files and add metadata, we used the third-party application ffmpeg.
Challenges we ran into
As a group of first year students building this was quite difficult. Our main challenge was locating the requests made by the JioSaavn web app to its servers. Furthermore, we discovered by accident that one could change the parameters of a GET request to obtain the highest-quality file.
Accomplishments that we're proud of
Making the bulk download of songs easy, ad-free and fast.
What we learned
We learned a lot about how to download different types of streaming files even when a download button is not available. We also discovered that it's beneficial to encrypt streaming file data, like Spotify, rather than making it simple and open, like JioSaavn.
What's the fututre of TuneFetch?
To turn this into a web app for ease of use.
Log in or sign up for Devpost to join the conversation.