Personalized Recommendations
Discover Genres
- Added real-time music recommendations based on the currently playing track
- Uses Last.fm API (
track.getSimilar,artist.getSimilar,artist.getTopTracks) to find related music- Album art fetched from iTunes and Deezer APIs as fallback sources
- Smart YouTube title/artist parsing — cleans
(Official Video),[Lyrics], channel names like- TopicandVEVOfor accurate recommendations from any source- Results cached for 10 minutes per track to reduce API calls
- New endpoint:
GET /api/recommendations?track=...&artist=...
Search Source Fallback
- Browse music by genre with colorful tag pills (rock, pop, electronic, etc.)
- Click a genre to see its top tracks with album art
- Uses Last.fm API (
chart.getTopTags,tag.getTopTracks) for genre data- Album art fetched from iTunes + Deezer with multi-source fallback
- Tags cached for 1 hour, tracks cached for 30 minutes per genre
- New endpoints:
GET /api/top-tags,GET /api/tag-tracks?tag=...
- When searching by text and the primary source fails (e.g., Spotify rate limit), automatically tries alternative sources
- Fallback chain: Spotify → Deezer → Apple Music → SoundCloud
- Each source has its own fallback order
- Only applies to text searches, direct URL links are not affected
Removed
Spotify OAuth & Playlist Features
- Removed Spotify OAuth login flow (
/auth/spotify,/auth/spotify/callback)- Removed Spotify connection endpoints (
GET/POST/DELETE /api/user/spotify)- Removed Spotify playlist browsing from Player sidebar
- Removed Spotify card from Profile page (connect/disconnect button, Spotify ID input)
- Removed
SpotifyOAuthService.ts— no longer needed- Removed
spotifyOAuthStateandspotifyCallbackUrlfrom session types- Removed
"spotify"fromDashboardViewtype- Removed Some Command (Radio, Spotify Connect)
APIs Used
| API | Purpose | Auth Required |
|-----|---------|---------------|
| Last.fmtrack.getSimilar| Find similar tracks | API Key |
| Last.fmartist.getSimilar| Find similar artists | API Key |
| Last.fmartist.getTopTracks| Top tracks per artist | API Key |
| Last.fmchart.getTopTags| Popular genre tags | API Key |
| Last.fmtag.getTopTracks| Top tracks per genre | API Key |
| iTunes Search API | Album art thumbnails | None |
| Deezer Search API | Album art fallback | None |
added
changed
- radio station menu in dashboard
- persistent overlay web player for global playback control
- default music source setting in guild dashboard
fixed
- migrated project from nextjs to vite
- improved dashboard player navigation and layout
- improved music control logic for dashboard playback
- fixed dashboard playback behavior to avoid sending discord playing embed
New Features Added
Web Music Player
Guild Management Dashboard
- Control the Discord music bot directly from the browser
- Play, pause, skip, and manage the queue
- Real-time updates synced with the bot
- Lyrics viewer and track progress display
Discord OAuth System
- Manage server settings from the web interface
- View server statistics and player status
- Configure bot settings easily
Improved User Experience
- Secure login using Discord accounts
- Automatically fetch user servers
- Access player and server settings instantly
- Modern dashboard interface
- Faster navigation and responsive layout
- Better integration between the bot and website
- Upgrade project framework from Next.js 13 to Next.js 16.
- Redesign footer and integrated new player popup.
- Refactor Premium Page
- Enhanced FAQ with step-by-step activation guide and new command instructions.
- Refactored ChatExporter page to use
useStateanduseEffect, improving HTML content fetching and rendering logic.- Introduced Blur component and enhanced ChatExporter page layout.
- Removed cache control headers and simplified fetch calls.
- Added Premium Plan page.
- Made "How to Support" page's navbar optional.
- Dropped UI2 interface.
- Added new modules.
- Fixed bug with incorrect hints and improved toast messages.
- Moved filtration action sidebar logic from the Users page.
- Completely remove ChatExporter as it is no longer used in the application
- Merge Premium Plan, Comparison, and FAQ sections for better user experience
- Modify UI styles, reposition components, and clean up code syntax for maintainability
- add ChatExporter page to fetch and display chat export content based on URL parameters
- resolve issue with Table of Contents not rendering on the webpage
- add customizable Alert component with optional link support
- enhance body styling with background patterns and custom scrollbars
- Enhanced the overall user interface (UI) of the website
- Added new pages: Blog and Plan, 404 Page
- Updated styles and colors across all pages, including buttons
- Added marquee for music sources
- Fixed marquee on partner bot list
- Added sitemap and RSS feed for better site indexing and updates
