Giter Site home page Giter Site logo

eliasbenb / sortify Goto Github PK

View Code? Open in Web Editor NEW
3.0 3.0 1.0 8.47 MB

Sortify is a Python app built with the Flask framework. It uses the Spotipy API to allow you to view and sort your Spotify playlists to your heart's content.

Home Page: https://sortify.eliasbenb.cf

License: MIT License

Python 1.25% CSS 76.57% HTML 6.13% JavaScript 0.34% Shell 0.01% SCSS 15.71%
spotify spotify-playlist sorter spotipy

sortify's Introduction

What is this repo?

Sortify is a Python app built with the Flask framework. It uses the Spotipy API to allow you to view and sort your Spotify playlists to your heart's content. I hosted the app on Heroku.

I decided to make this app to build my web-app skills, this is my first ever web-app and I'm quite proud of it.

Features supported:

  • Supported sorting options:
    • Alphabetically (A-Z)
    • Alphabetically (Z-A)
    • Release Date (Chronological)
    • Release Date (Non Chronological)
    • Date Added
  • View playlist tracks in a table
  • Heroku deploy ready
  • Can sort unlimited number of tracks
  • Maintains the date added upon sorting (only if the playlist has under 100 tracks)

To do list:

  • Add support to sort playlists of more than 100 tracks
  • Maintain 'added_at' date after sorting
  • Add support to sort other people's playlists
  • Add option to sort playlist into new playlist

Installation

Prerequisites:

  • A server, could be your own computer or Heroku; this repository is Heroku ready
  • Python 3.8 or above
  • A Spotify app

Part 1 (Spotify API):

  • First you need to setup a Spotify API app. To do this go to the Spotify Developer's Dashboard
  • Create an app
  • Name the app anything and describe it as anything. But set it as a Website
  • On the app's page click Edit Settings and under Redirect URIs add this: http://127.0.0.1:5000/callback
  • If your app is not locally hosted than make the Redirect URI something like this https://yourwebsite.com/callback
  • Finally exit back onto the main app's page and copy down the Client ID and Client Secret, you will need these in the next step

Part 2 (The App):

  • Now it's time to make the app. First clone this repository in a command line using git clone https://github.com/eliasbenb/Sortify.git
  • CD into the directory with cd Sortify
  • Open app.py with a text editor and change the following variables:
    • app.secret_key to any string e.g. "string123"
    • SPOTIFY_CLIENT_ID to the Client ID you got from Step 1
    • SPOTIFY_CLIENT_SECRET to the Client Secret you got from Step 1
    • REDIRECT_URI to whatever you set your Redirect URI to in Step 1
  • If you are setting this up for a public website like I am I would recommend using Environment Variables to set the above variables
  • Now your app is ready to be used, to start the app just enter this in a command line flask run

Usage:

Home Page:

  • The home page contains Sortify information
  • And it contains a 'Login' button, clicking it will lead to the Spotify authentication page

Home Page

Login Page:

  • After successfully authenticating your Spotify account, you will receive a success message

Login Page

Playlists Page:

  • After scrolling down on the playlists page you will see all your playlists's images, clicking one will open that playlist's page

Playlists Page

Playlist Page:

  • The playlist page contains a table which displays all the playlist's tracks and its information
  • Below that there are a group of buttons which allow you to sort the playlist:
    • Alphabetically (A-Z)
    • Alphabetically (Z-A)
    • Release Date (Chronological)
    • Release Date (Non Chronological)
    • Added Date

Playlist Page

sortify's People

Contributors

dependabot[bot] avatar dikuchan avatar eliasbenb avatar

Stargazers

 avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

Forkers

dikuchan

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.