Skip to content

disutils/DisMusic

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

74 Commits
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

๐ŸŽต DisMusic

Your Music, Your Way - A powerful music streaming platform that aggregates multiple sources into one beautiful interface.

Built with โค๏ธ by the Disutils Team


๐ŸŒŸ Overview

DisMusic is a comprehensive music streaming application that allows users to search, queue, and play music from multiple platforms including Spotify, YouTube, and more. (Soon) With real-time queue management and a sleek web interface, DisMusic provides a seamless music experience for individuals and teams.

โœจ Key Features

  • ๐Ÿ” Smart Search - Search across multiple platforms (Spotify, YouTube, etc.) (Soon)
  • โฏ๏ธ Real-time Queue Management - Live queue updates with drag & drop reordering
  • ๐ŸŽค Live Lyrics - Synchronized lyrics display for your favorite songs (after v1.0)
  • ๐Ÿ“Š Music Statistics - Track listening habits and discover insights (after v1.0)
  • ๐Ÿ“‹ Playlist Management - Create, edit, and share playlists
  • ๐Ÿ“ฑ Responsive Design - Works seamlessly on desktop and mobile (Soon for mobile )
  • ๐ŸŒ Multi-platform Support - Aggregate music from various sources
  • ๐Ÿ”„ Real-time Updates - Socket.IO powered live synchronization

๐Ÿ› ๏ธ Tech Stack

Backend

  • Next.js - Core application logic
  • Node.js - High-performance web framework
  • Socket.IO - Real-time bidirectional communication
  • Discord OAuth - Authentication system

Frontend

  • HTML5 - Semantic markup
  • CSS3 - Modern styling with animations
  • JavaScript (ES6+) - Interactive functionality
  • Socket.IO Client - Real-time communication

Additional Tools

  • Git - Version control
  • RESTful APIs - External service integration

๐Ÿš€ Quick Start

Prerequisites

  • Node.js (for Socket.IO, and Next.js)
  • Git

๐Ÿ”ง Configuration

Socket.IO Events

The application uses the following Socket.IO events:

  • connect - Client connection established
  • disconnect - Client disconnection
  • play - Play a specific track
  • next - Skip to next track
  • queueUpdate - Real-time queue synchronization
  • playYouTube - YouTube playback event
  • queueEnded - Queue completion notification
  • moveTrack - Move a track to a different position in the queue
  • remove - Remove a track from the queue
  • playNext - Move a track to play right after the current track
  • removeFromQueue - Remove a specific track from the queue

API Endpoints

  • GET / - Main application interface
  • GET /api/search - Music search endpoint
  • POST /api/queue - Queue management
  • GET /api/lyrics - Lyrics retrieval (WIP)
  • GET /api/stats - User statistics (WIP)
  • GET /discord/callback - Discord OAuth callback endpoint
  • POST /api/user/playlist/create - Create a new in-house playlist for the user
  • GET /api/user/playlists - Get user's playlists
  • POST /api/user/playlists - Create/update user's playlists
  • DELETE /api/user/playlists - Delete a user's playlist
  • GET /api/user/playlist/:id - Get a specific playlist by ID
  • POST /api/user/playlist/:id/add-track - Add a track to a specific playlist
  • GET /api/user/info - Get user profile information
  • POST /api/logout - Logout and invalidate session
  • GET /api/user/favorites - Get user's favorite tracks
  • POST /api/user/favorites/toggle - Toggle a track as favorite
  • POST /api/spotify - Get Spotify track/playlist info
  • POST /api/applemusic - Get Apple Music track/playlist info
  • POST /api/youtube - Get YouTube playlist info
  • POST /api/client-logout-log - Log client logout events
  • GET /test - Backend health check endpoint

๐Ÿค Contributing

We welcome contributions from the community! Please read our Contributing Guidelines before submitting pull requests.


๐Ÿ“ License

This project is licensed under the GNU General Public License v3.0 (GPL-3.0) - see the LICENSE file for details.

๐Ÿ‘ฅ Team

Disutils Team - A dedicated group of individuals committed to enhancing and simplifying the Discord experience for all users.


๐Ÿ› Issues & Support

If you encounter any issues or have questions:

  1. Check the Issues page
  2. Search for existing solutions
  3. Create a new issue with detailed information
  4. Join our Discord community for real-time support

๐Ÿ—บ๏ธ Roadmap

Current Version (1.4.0A)

  • โœ… Basic music streaming
  • โœ… Queue management
  • โœ… Inhouse playlist system! Implemented but buggy
  • โœ… Discord OAuth
  • โœ… Real-time synchronization
  • โœ… Web interface
  • โœ… Mobile support (responsive design)
  • โœ… Favorite tracks system
  • โœ… Viewing playlist page
  • โœ… Search page with search results

Upcoming Features / WIP (1.4.3A)

  • ๐Ÿ”„ Advanced playlist features
  • ๐Ÿ”„ Custom themes
  • ๐Ÿ”„ Alerts (Notis)

Future Plans (v1.0)

  • ๐Ÿ”ฎ Offline mode
  • ๐Ÿ”ฎ Social sharing
  • ๐Ÿ”ฎ Mobile app (React Native)
  • ๐Ÿ”ฎ AI-powered recommendations
  • ๐Ÿ”ฎ Voice commands
  • ๐Ÿ”ฎ Multi-room audio
  • ๐Ÿ”ฎ Plugin system
  • ๐Ÿ”ฎ Desktop application

๐Ÿ“Š Stats

Alt

GitHub stars GitHub forks GitHub issues GitHub license


Made with ๐ŸŽต by the Disutils Team

โญ Star this repo โ€ข ๐Ÿ› Report Bug โ€ข ๐Ÿ’ก Request Feature