Creating a web application to manage Spotify playlists

OData support
Albert István
Department of Automation and Applied Informatics

Nowadays more and more people choose to stream music from the internet. The main cause of this is the easer portability of their music collection. One of the most widely used online music streaming service is Spotify. The user can group the songs provided by the service into playlists. But the Spotify web player is not without fault. There are many convenience functions that are not implemented or cannot be easily used to manage the user’s playlists. Spotify provides a RESTful API to access its data. To access or modify its users’ private data the developer has to ask for permission first. This permission can be granted by using the OAuth 2.0 protocol.

The goal of this thesis is to develop a web application that provides an interactive user interface, in which a Spotify user can easily manage their playlists, thus solving the above mentioned problem and also to provide background information on the used technologies. After the user logs in with their Spotify account, the user can sort their playlists by a given property or change the order of the songs by hand. The user can also use set-theoretic operations, such as intersection, union, set difference between lists, or filtering duplicate songs from a list.

The solution is composed of three main parts. The first part is a portable class library, which wraps the REST calls to the Spotify API as native C# method invocations to easily use them and to provide an easily used interface to the Spotify API for future projects. The second part is a login implementation of the Spotify OAuth2 login provider as a component, which can be used as easily as the built-in external service providers. The third part is the web application that is built onto the above mentioned other parts and was made with using the ASP.NET MVC. The web application provides a convenient and intuitive control panel to manage a user’s playlists.


Please sign in to download the files of this thesis.