I love listening to music, but sometimes I don't have access to a streaming service. And there's also a ton of people around the world without the infrastructure to enjoy the pleasure of listening to music online. So I decided to remedy the problem by building an application that serves up the music you want to listen to whenever you have a connection worthy of a brick phone (so, always).

What it does

Music recommendation and listening over any cellular network, without data. Sure, it's a bit primitive and the sound quality is sub-Bose, but when you've got no data left and no WiFi in sight, you can't complain when you can still listen to your favorite tunes. And for all those people who don't have access to these networks, it provides them with an unlimited amount of

How I built it

Twilio powers the phone call while Django provides the directions (in TwiML). SoundCloud and Spotify provide track and artist recommendations.

Challenges I ran into

Oh, Twilio... You're great; you're the reason I could build my project. But wouldn't it be nice if you could make asynchronous, background calls with Gather while Saying or Playing? I originally planned to have a like feature to improve the music recommendation portion, but Twilio, once given an input, would redirect and stop playing the current song. Also, SoundCloud, I feel like your file has a few bugs in it.

What I learned

ngrok is the best thing ever. No more pushing to Heroku just to test something "locally".

What's next for Phonograph

Improve the recommendation algorithm and integrate with more APIs to increase the available songs and artists. Also, adding a web portal to see a list of songs played in case you missed the name of that one song you really enjoyed.

Share this project: