danieltmbr / lyb-api

Webservice of Lyb

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Lyb

#quick-and-dirty #passion-project

Lyb is a lyrics application which persists lyrics to local storage. The idea is driven by the frustration of London underground where no network is available hence reading something or listening to something are the only options. Combining these to activity would be great, but with on-demand lyrics services it's just not possible.

Service

Lyb Api enables clients to search for a song with its information and also scrapes its lyrics if available. The service is backed by Genius Api and lyrics scraping is using a method described in Will Soares' blogpost.

Endpoints

Base url: https://lyb.herokuapp.com/v1/

  • search?q={string:search_query}:

    GET request returning a json song list with the top results.

  • song/{int:id}:

    GET request returning a json song object by id (only metainfo NO lyrics attached).

  • artist/{int:id}:

    GET request returning a json artist object by id.

  • album/{int:id}:

    GET request returning a json album object by id.

  • lyrics/{string:genius_lyrics_path}:

    GET request returning a text with the lyrics scraped from genius html page. For path use path property of song object from previous endpoints' result.

  • lyrics?q={string:search_query}:

    GET request combining search and lyrics endpoints, returning metainfo and lyrics as well from the very first song of search result.

Further improvements

Technical stuff:

  • Error handling
  • Write tests
  • Clean app architecture

About

Webservice of Lyb


Languages

Language:Python 100.0%