/C-3PO

The metadata overlord and API server for LTTKGP

Primary LanguagePythonMIT LicenseMIT

C3PO by SteveArgyle on Deviantart

C3PO

When he's not flying around with the Solos and Skywalkers on the Millenium Falcon, C-3PO decided to help LTTKGP out with managing the huge amount of songs being posted each day to the group and organising them in a database (such a nice guy!) so we can build cool functionality on top of it.

Getting started

These instructions will get you a copy of the project up and running on your local machine for development and testing purposes.

Prerequisites

  • Docker & Docker Compose

  • Spotify Web API Credentials

    You will also need Spotify authorization for fetching song metadata. The prodcude is very straightforward. Register a new application here: Spotify for Developers

    That will give you a unique client ID and client secret key to use in authorization flows.

  • Google Application Credentials

    Google Application Credentials is an API key that is required to extract YouTube metadata from the Youtube Data API. To get the key, create a new project on the Google Developer Console, enable the YouTube Data API and proceed to Credentials and create a new API key.

Setting up

  • Create a .env file, using the .env.template file as reference.

    cp .env.template .env

    Fill all the fields using the credentials created as part of the pre-requisites.

Developing

  • Install Development Dependencies

    pip install -e . -r requirements/dev.txt
  • Install pre-commit hooks

    pre-commit install

Starting the server

Run the server with:

docker-compose up

The API server should be accessible at http://localhost:8000/.

Populating the database

Follow the instructions on R2-D2 and start it.

Contributing

Contributions are always welcome. Your contributions could either be creating new features, fixing bugs or improving documentation and examples. Find more detailed information in CONTRIBUTING.md.

License

MIT