All Projects → PaystackHQ → paystack-music-api

PaystackHQ / paystack-music-api

Licence: MIT license
The bot and API that powers Paystack Music.

Programming Languages

javascript
184084 projects - #8 most used programming language
HTML
75241 projects
shell
77523 projects

Projects that are alternatives of or similar to paystack-music-api

PlaylistParty
📺 Play Spotify Playlists on Youtube.
Stars: ✭ 20 (-71.43%)
Mutual labels:  playlist, spotify
Spotify Dl
Downloads songs from your Spotify Playlist
Stars: ✭ 578 (+725.71%)
Mutual labels:  playlist, spotify
163MusicToSpotify
Convert your favorite 163 music playlist to Spotify
Stars: ✭ 98 (+40%)
Mutual labels:  playlist, spotify
SpotifyWebApi
A .net core wrapper for the Spotify Web API
Stars: ✭ 19 (-72.86%)
Mutual labels:  playlist, spotify
Spotlistr
🎧 Convert Anything to a Spotify Playlist!
Stars: ✭ 226 (+222.86%)
Mutual labels:  playlist, spotify
fresh script
Find Spotify tracks posted to the HipHopHeads subreddit and add them to a Spotify playlist.
Stars: ✭ 69 (-1.43%)
Mutual labels:  playlist, spotify
spoti-vote
Web application to vote the next Song in Spotify Queue
Stars: ✭ 14 (-80%)
Mutual labels:  playlist, spotify
spotify-vibe-check
Spotify Vibe Checker Web App to vibe check your Spotify Playlists! (currently broken due to CORS)
Stars: ✭ 24 (-65.71%)
Mutual labels:  playlist, spotify
Coverify
🎧 Design fresh album cover for your Spotify playlists
Stars: ✭ 167 (+138.57%)
Mutual labels:  playlist, spotify
Alltomp3
Node module to download and convert in MP3 with tags an online video
Stars: ✭ 120 (+71.43%)
Mutual labels:  playlist, spotify
MusicPlayer
A Telegram Music Bot written in Python using Pyrogram and Py-Tgcalls. This is Also The Source Code of The UserBot Which is Playing Music in @S1-BOTS Support Group ❤️
Stars: ✭ 218 (+211.43%)
Mutual labels:  playlist, spotify
ideas-for-projects-people-would-use
Every time I have an idea, I write it down. These are a collection of my top software ideas -- problems I think enough people have that don't have solutions. I expect you can reach a decent userbase if marketed correctly, as I am surely not the only one with these problems.
Stars: ✭ 646 (+822.86%)
Mutual labels:  playlist, spotify
Quaggify
A spotify clone made in Swift 4 consuming the Spotify API
Stars: ✭ 30 (-57.14%)
Mutual labels:  playlist, spotify
Spotify Playlist Archive
Daily snapshots of public Spotify playlists
Stars: ✭ 111 (+58.57%)
Mutual labels:  playlist, spotify
Singlespotify
🎵 Create Spotify playlists based on one artist through the command line
Stars: ✭ 254 (+262.86%)
Mutual labels:  playlist, spotify
Partify
This is a free open source Spotify-powered app that lets users host parties and have guests connect using their smartphones to submit and vote on songs. The app will only play the highest voted song and can connect to personal playlists.
Stars: ✭ 37 (-47.14%)
Mutual labels:  playlist, spotify
lavalink-music-bot-2021
Advance Discord Lavalink Music Bot With Spotify and Buttons Help Menu || Best Music Quality || Radio Commands
Stars: ✭ 26 (-62.86%)
Mutual labels:  spotify
vue-music-player
🎵 basic music player, keeps your favorite musics
Stars: ✭ 77 (+10%)
Mutual labels:  playlist
gmusic wrapped
A spotify 'year wrapped' like for Google Play Music
Stars: ✭ 44 (-37.14%)
Mutual labels:  spotify
hoergewohnheiten
Save your Spotify plays to a Postgres database and run a Flask app to provide listening stats.
Stars: ✭ 16 (-77.14%)
Mutual labels:  spotify

Paystack Music Slack Bot

Paystack Music

The Paystack Music Slack Bot is an integration built by our team at Paystack. It's responsible for all the wonderful playlists we're now sharing with the world every month at Paystack Music

How it works

At Paystack, when we find music we like, we share to a #fun-music channel on Slack for others to enjoy.

At the end of each month, our music bot automatically fetches all the Spotify tracks, creates a mixtape with custom cover art, and publishes it online.

We've cobbled together a couple of APIs to make this work.

  1. First, we use the Slack API to fetch all the messages shared in the designated channel for the month. The bot keeps a tally of how many different people shared songs that month.
  2. The bot then filters the messages for all the ones that contain links to Spotify tracks, and creates a Spotify playlist with all of them.
  3. For the album art, we fetch the cover of the newly created playlist from Spotify (it's usually a combination of the first 4 songs added to the playlist). We then grab the dominant color from the fetched album art, and use it as the background of a new image that follows the playlist template. This gets set as the new playlist cover.
  4. Next up, the bot fetches the track info and audio features for all the tracks on the playlist, and saves the new playlist to the DB

Setup

  1. Clone the repo.
  2. Duplicate the .env.example file and rename it .env.

You'll need to set up apps on both Slack and Spotify for the next steps.

Slack

  • You'll first need to create a new Slack app and give it the links:read OAuth scope. This allows our bot to view URLs in Slack messages.
  • Install the app to your workspace. Once it's installed, Slack will generate a Bot User OAuth Access Token. When you get it, paste it in the SLACK_TOKEN variable in your .env file.
  • Next, we'll need the CHANNEL_ID for the Slack channel you want the bot to get song links from. If you open your Slack workspace in the browser, you can copy it from the URL. The format is https://app.slack.com/client/{WORKSPACE_ID}/{CHANNEL_ID}
  • Set the SLACK_TARGET_CHANNEL_ID in your .env file to the channel ID you've copied.

Spotify

  • Open the Spotify web player. Visit the profile link on the top right of the page
  • Copy the part of the url corresponding to your user ID. The url should be formatted like this: open.spotify.com/user/{USER_ID} and paste it in your local .env as SPOTIFY_USER_ID
  • Go to the Spotify developer dashboard (sign in when you're prompted to)
  • Create a new app (this will be the app you use for testing the bot locally on your Spotify account)
  • Copy the client secret and client ID and past them in the corresponding .env file variables: SPOTIFY_CLIENT_ID and SPOTIFY_CLIENT_SECRET
  • Edit the app settings on the Spotify developer dashboard to add your redirect URI as localhost:{PORT}/callback ({PORT} needs to corresponds to the port your app loads on. Default is set to 3000.
  • Set the corresponding callback URL on your local .env file: SPOTIFY_REDIRECT_URI.
  • Set your APP_TRIGGER_URI to localhost:{PORT}/trigger. ({PORT} needs to corresponds to the port your app loads on. Default is set to 3000
  • When you set up all this, visit localhost:{PORT}/authorize and sign in with your Spotify account.
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].