Giter Site home page Giter Site logo

discordio's Introduction

About

Discordio is a music bot that will play songs from Spotify and YouTube for your server 24/7. Discordio was built using NodeJS with Fmpeg and YTDL.

Discordio uses scrapers to build your song library ahead of time to maximize performance. These web scrapers were built with NodeJS using Puppeteer and the Spotify API.

Usage

All bot commands must start with a '$' character to be recognized. You can change the prefix to any other string in change_me.env.

Current commands include:

  • $Play: Begin playing music nonstop in the current channel
  • $Skip: Skip current song
  • $Stop: Stop playing music
  • $Move: Move bot to your current voice channel
  • $Update: Update the songs library (must add new artists first)

Setup

Required Steps

  1. You will need NodeJS 12.x or higher to run this discord bot. You can install NodeJS from here.
  2. After installing Node, navigate to this directory and run npm install to install all the needed dependencies.
  3. Rename change_me.env to .env after replacing TOKEN=YOUR_TOKEN_HERE with your Discord bot account's token. You may need to set up a Discord bot account which you may do so at the Discord developer portal. Once again, make sure to rename it to .env otherwise it will not work.

Optional

  1. If you wish to build the song library yourself (e.g. use your own Spotify artists or YouTube channels), take a look at the scrapers folder. There is a README in that folder with more detail for scraping Spotify artists and YouTube channels. You will need a valid Spotify API key which you can get here. This is optional as data.json is pre-populated with YouTube song IDs.

Note: The YouTube parser takes roughly 1-2 minutes on a large channel (thousands of videos) with a fast CPU and good internet connection. The Spotify parser is usually quicker at around 10-20 seconds.

  1. The prefix for commands is $ for default but you can change this in your .env file.

To-do

  • README: Include a video of the bot playing songs
  • Discord: Add webhooks to allow for name and profile picture customization
  • Discord: Set up permissions for who and who can't use the command
  • Storage: Switch from raw JSON to Redis for better maintainability

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.