I have recently been very interested in language learning. I use a breadth of different tools to assist me in consuming as much genuine content in my target languages as possible. This comes from the philosophy of immersion, which believes that a combination of studying the grammar of a language, as well as consuming content in that language with minimal translation as possible is the most efficient method to acquire a foreign language. This allows one to better connect to their target language, and learn in a way that is fun. One of the ways I achieve this is is by listening to Spotify on my daily commutes to university, following along with the lyrics on my phone. When I come across a word I don't recognize, I tediously pause my music, switch tabs, and find the translation. This majorly disrupts my learning flow and takes time to perform. I thought: there must be a better way. Now there is!
What it does
Lyrify is the perfect way to learn a new language through your favorite songs! It displays the lyrics to the song you are listening to on Spotify, as well as the translations of certain words of interest, upon user interaction. It automates the task of translation for the user, and contains this language learning method into one application.
How I built it
I had to research the Spotify API and analyze endpoints that proved to be extremely crucial to this project's success, but not necessarily made known through the Spotify API documentation. I used BurpSuite to sniff the API calls being made between the client and server, and tried replicating these calls myself using PostMan. Once satisfied with the results, I quickly started on my mobile application. I used Flutter, Dart, the Spotify API, the Google Translate API, BurpSuite and PostMan.
Challenges I ran into
Since this is a solo hack, my biggest challenge was completing the MVP in time. I found myself weakened by exhaustion, which reduced my pace. I also faced problems with sniffing API tokens and authorization parameters, which are allocated a limited time session in terms of the Spotify API.
Accomplishments that I'm proud of
I am extremely proud that I could analyze the Spotify API in a meaningful way, and produce a solution that is unlike any that I've seen for the Spotify API. I'm happy that I had a positive attitude, and was determined to extract what I needed from a tool that would normally not be used in this way.
What I learned
I learned a lot about HTTP requests, and how an API communicated between the client and server to provide meaningful data. I learned that sometimes the most obvious solution is not the most fun or challenging, and I'm glad I saw this project through.
What's next for Lyrify
I plan to use the Co:Here API to analyze the natural language of the lyrics, and be able to display lyrics on the screen in different colours based on the "tone" of the sentence. I also plan to highlight words of interest and allow the user to interact with these blocks to access more information about the word.