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.

Built With

Share this project:

Updates