Overview • Installation • Usage • Contributing • Authors
MILKER is a Python application that extracts audio information of songs. It does that by collecting names of songs with YouTube API from given playlists, querying them with the Spotify API and finally extracting the Spotify audio features of the song. MILKER was specifically tailored for extracting audio features of Bulgarian popfolk songs, 2014-2019.
The installation steps are as follows:
- Make sure to get git and Python
This is required to clone the repository and actually run the app.
- Clone the repository
git clone https://github.com/skilldeliver/milker.git
- Enter the directory
cd milker
- Install Pipenv
python -m pip install pipenv
(if you don't have it installed)
- Install dependencies
pipenv install
- Set up Youtube Data API credentials You will need to set up your project at YouTube to get the credentials necessary to make authorized calls.
Name your client_secret_CLIENTID.json
-> client_yt_secret.json
and paste it in the app directory
- Set up Spotify API credentials You will need to register your app at Spotify to get the credentials necessary to make authorized calls (a client id and client secret).
https://developer.spotify.com/dashboard/applications
{
"client_id": "your_client_id",
"client_secret": "your_client_secret",
"redirect_uri": "http://localhost/"
}
Save this file as client_sp_secret.json
it in the app directory
There are three options for running the applications.
- Running the whole process
pipenv run start
This fetches youtube songs and downloads spotify data
- Fetching youtube songs only
pipenv run start yt
This fetches youtube songs (it's mandatory for running the download of the spotify data)
- Downloading spotify data
pipenv run start sp
This downloads spotify songs data through querieng the youtube fetched songs.
We are open to contributors. To contribute follow these steps.
- Fork and clone the repistory
This is required to do your own development and then finalize with pull request to us.
- Installation
pipenv install --dev
The installation step is a little bit different because we require linting your code and formating it with black. Pipenv this way will install the required development packages.
- Development work
Please write clean and well documented code. Set up the linting with flake8 in your development enviorement and run black after you are done. And write good commit messages!
- Create Pull request
And wait... :) We will check every pull request and make sure to give detailed remarks if we are not fully okay with your work.
I wish to thank @atronasko for having introduced me to the collection of Spotify data and for his subsequent conceptual support. Thanks to the development team of Spotipy for providing easy to use Spotify API wrapper. Thanks to Jagoda Kondratiuk for sharing their work on Unsplash.