Cabin fever hits hard. And it's not the most pleasant. We were experiencing cabin fever and a bit of burnout as a result of the altered school schedule and delivery format and wanted to bring fun into our lives. Thus we created Convertify: a dose of randomness and novel experience to discover Youtube videos based on a link or given text.

What it does

Our web app takes in any text or article link and converts it to a Lo-Fi audio file. Users can also select the number of words they want to include in a search query to acquire the audio file.

How we built it

We used Django for the backend and wrote Python scripts to access the YouTube API, scrape data from the web, analyze the text, and do audio processing (pydub and youtube_dl). On the front end, we used JavaScript, HTML, CSS, Bootstrap for the HTML components, particle.js to create a dynamic background. We also used the circular audio wave JS library to create audio visualizations in beat with the music. JavaScript was used to implement a way for users to add their own twist to the music using their keyboard as a tool to generate sampled electronic sounds.

Challenges we ran into

YouTube API quotas, getting the sound to output in a nice fashion, file organization with Django, working with FFmpeg to output a correct format, getting the wave visualization to work. It was also a challenge to deploy to Heroku due to how our project makes use of multiple obscure libraries that didn't integrate well with Heroku.

Accomplishments that we're proud of

We're happy with how our app looks like and how we were able to get an MVP working to show a proof of concept and the primary basis of our idea! Lofi music is usually used as calming background music for studying, so this could help students and learners experiment with new soundtracks to work to. We had a lot of fun using our creativity to build something interesting and entertaining to help people get in the groove.

What we learned

We learned how to work with Django, how to deal with a bit of web audio, and how to work with Google APIs. We also learned some basic natural language processing.

What's next for Convertify

  • Have a "loading" or "conversion-in-process" page for the user (using progress hooks from Youtube_dl)
  • Host it on Heroku and resolve problems with FFmpeg, Youtube_dl, and Convertify!
  • Improve the lofi-ifying process (algorithmically)
  • Provide more options for text analysis
  • Connect with Firestore and create "rooms" for people to listen to lo-fi creations together
  • Make the buttons turn into "live" adjustments to transform the audio in different ways

Built With

Share this project: