Creating a Remote-Control Application with Spotify

Spotify is a music streaming service that was developed in Stockholm, Sweden. The first version was released back in 2008 and today it doesn't only provide music, but video and podcasts as well. Growing rapidly from a startup in Sweden to the biggest music service in the world, Spotify has apps running on video game consoles and mobile phones, and has integration with many social networks.
The company really has changed how we consume music and has also enabled not only well-known artists but small indie artists to share their music with the world.

Luckily, Spotify is also a great platform for developers and provides a really nice and well-documented REST API where it's possible to make searches by artists, albums, song names, and also create and share playlists.

For the second application in this book, we are going to develop a terminal application where we can:

  • Search artists
  • Search albums
  • Search tracks
  • Play music

Apart from all these features, we are going to implement functions so we can control the Spotify application through the terminal.

First, we are going to go through the process of creating a new application on Spotify; then, it will be time to develop a small framework that will wrap some parts of Spotify's REST API. We are also going to work on implementing different types of authentication supported by Spotify, in order to consume its REST API.
When all these core functionalities are in place, we are going to develop a terminal user interface using the curses package that is distributed with Python.

In this chapter, you will learn:

  • How to create a Spotify app
  • How to use OAuth
  • Object-oriented programming concepts
  • Using the popular package Requests to consume REST APIs
  • How to design terminal user interfaces using curses

I don't know about you, but I really feel like writing code and listening to some good music, so let's get right into it!