Skip to content
This repository was archived by the owner on Dec 16, 2025. It is now read-only.

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

Releases

Packages

Used by

Contributors

Languages