Brighter Future

Maxwell You
maxyou
Published in
6 min readNov 24, 2018

It’s been 11 weeks since I first started this blog to keep track of the development of Spotify Voice. Along the way, I talked about various aspects of app development such as how APIs work, dealing with missing data, and documenting your code. I also talked about new features I added as they were developed such as releasing Spotify Voice, playing Spotify Voice in-browser (w/o the need for Spotify to be open!), and adding more than 100 songs from New Music Friday. I spent more time than I thought would be necessary for most of these features, but I am happy with how they turned out: they all improved the user experience significantly.

This is the final post and will serve to wrap up the last 11 weeks, hopefully with a bow on top! Of course, this does not mean I am going to stop working on this app, but this will probably be the last time I blog about it. Before I stop however, I want to go over the possible features that could be added in the not too far future!

To Be Added

Source

As I worked on developing Spotify Voice, cool feature ideas / user experience improvements popped into my head and I jotted them down. Here are some of the features I hope to get released soon:

Populating the spotify_voice playlist w/o manually deleting it every week: Currently, if the spotify_voice playlist exists on your account when the new week comes around, then it will not add any of the new week’s tracks. It works this way because I have Spoitfy Voice play the spotify_voice playlist if it exists and, if it doesn’t, then it creates the playlist. Therefore, you have to manually delete the playlist every time you finish listening to it if you want to have the playlist created again for next week’s New Music Friday. This is obviously undesirable behavior, especially in the case where you haven’t even finished last week’s New Music Friday tracks and probably don’t want to delete the playlist yet. The ideal functionality here would be to add the new tracks on top of the songs that are already in the spotify_voice playlist. In this sense, you would be able to keep the tracks from the previous week that you haven’t listened to yet and still have the new tracks from the new week.

Getting spotify_voice to add songs based on date is a challenging problem. How should I choose to compare the date differences? Let’s look at a scenario spanning two Fridays: you have songs you haven’t listened to yet from the first Friday, but it is now the second (new) Friday, so there is new music. If I choose to check if the current date is one, two, three, etc. weeks older than the date the spotify_voice playlist was created, then that works fine if I click the “Play New Music Friday” button exactly every Friday, but what happens if I press it a day too late? Then, I won’t be able to add the new music even though I still don’t have it.

The above scenario is just one of many intricacies of figuring out how to account for leftover and new music. This will probably be the most challenging problem to figure out in terms of the user experience, but it will also be one of the most satisfying fixes.

Implementing the refresh token: Currently, you can only listen to Spotify Voice for an hour before the media controls will stop working. I mentioned this is one of my previous blog posts, but I never got around to implementing the fix for this: retrieving the refresh token. Essentially, this just means that I need to check if it has been more than an hour since the initial token for Spotify Voice’s API calls was issued. If so, then I would send a request for another token and the media controls would work as normal without you noticing anything going on behind the scenes. This is one of the more pressing issues since some people listen to music for longer periods of time and having Spotify Voice fail after one hour is very annoying. Currently, the workaround to solve this is to go back to the landing page and click ‘Get Started’ again, but this is unintuitive and could be improved through implementing the refresh token.

Adding analytics: After listening to all the tracks for each New Music Friday playlist, I always wondered how many tracks I added from it that week. Of course, I can just sort my playlist by date added and count the ones for that Friday and my question would be answered. However, I thought it would be neat to see how many songs you add from each week’s New Music Friday. It would be interesting to go back and see which songs you added from that week and the trends over time. This would probably require me to implement a database to store this information for each user, so that would be a new challenge.

Songs left: A small but useful (I think) change would be to add an area to the Spotify Voice UI that told you how many songs were left in the spotify_voice playlist. That way, when you get down to 0 songs left, you won’t be wondering if Spotify crashed, the token timer ran out, or there are just no songs left to play. I also want to give users the option to hide this info if they don’t want to see it.

Complying with Developer Terms: Spotify has some guidelines surrounding the use of their app on other sites. All album covers must be displayed in their original form: no modification whatsoever (e.g. rounding). There should also be a link to the song on Spotify. Currently, Spotify Voice abides by not modifying the original album cover, but does not link the song back to Spotify. I think I will add a hyperlink on the album cover that will link the song in Spotify if clicked.

It’s important to comply with any services’ terms and conditions when you use their product in your own site. Piracy isn’t cool (for the most part).

A Note on Mobile Functionality

Now for some bad news, Spotify Voice will probably never work (as people would think) on mobile since the Web Player isn’t supported for mobile browsers. Also, creating a mobile app for Spotify Voice also wouldn’t solve this issue since the mobile APIs are not very comprehensive: they mostly act as a remote control for playback.

It is unfortunate that Spotify Voice doesn’t work on phones currently, but if Spotify makes the Web Player compatible with mobile browsers or make their mobile APIs more robust, then I would be happy to get this working on mobile. As for now, I will be making sure the desktop Spotify Voice experience is as seamless and intuitive as possible.

Bon Voyage: Until Next Time

Source

This blog has been an awesome experience for me. I got to write about the development of my app and also explain some app development concepts to you along the way. Hopefully, my analogies were helpful in the discussion of app development concepts. Writing about Spotify Voice also motivated me to continue its development because I knew anyone could be using it at any time. Therefore, I wanted Spotify Voice to be the best experience for those that are using it. It has come a long way since when I was the only one using it, but now, I have added features that make it a better working app for the general audience instead of just myself. I know listening to music unbiased is not the most exciting activity, but I hope you all find a use for Spotify Voice and continue to use it (if you do)!

And remember, although this will probably be the last time in a long time that I will blog about Spotify Voice, the development will still be continued as my school time permits.

(Last) Song of the Week

You Make Me by Avicii [Spotify][YouTube]

--

--