### ✨ Improvements • Redesigned embeds across the bot (Now Playing, Queue, Errors) • Clean & consistent styling with bot author and structured layout • Promo footer now shows **date & time** instead of server name ### 🎵 Music System • Better handling of unavailable YouTube videos • Unplayable tracks are automatically skipped • Playlists are pre-checked and cleaned before adding ### ⚠️ Error Handling • Clean embed-based error messages • Clear feedback when tracks can’t be played ### ♾️ 24/7 Mode • Stable behavior with no idle disconnects • Bot only leaves when the voice channel is empty ### 🌍 Localization • Fixed broken & incomplete translations • Removed English fallback texts in all languages • Consistent terminology across all locales • Improved grammar and readability ### 🔧 Misc • Promo message now correctly uses **Kyvora** • Overall multi-language system improved --- 💡 This update focuses on **stability, cleaner UI, and fully polished translations across all languages.**
Kyvora has officially left the Beta phase! After a long testing period and major improvements, I'm confident this is the right step. Huge thanks to everyone who helped test and improve the bot during beta ❤️ What’s New in V4.0 ⚡ Performance Improvements This update focuses on faster playback, faster playlists, and lower CPU usage. 🎧 Faster Song Start • Optimized yt-dlp format selection to Opus (251) for instant streaming • Removed unnecessary format probing • Reduced stream startup overhead 📜 Faster Playlist Loading • Improved YouTube playlist extraction using --flat-playlist --dump-json --skip-download • Music now starts instantly while metadata loads in the background 🔄 Ultra Preload Engine Kyvora now preloads the next two songs automatically, dramatically reducing delays between tracks. Playback workflow: 1️⃣ Song A starts 2️⃣ Song B preloads 3️⃣ Song C preloads 4️⃣ Instant switching 🧠 Smart Metadata Loading Metadata like artist, track name, release date, and lyrics now loads in the background without delaying playback. 🖥️ CPU Optimizations • Reduced extractor overhead • Cleaner yt-dlp spawn arguments • Lower CPU usage during playlist imports 🎧 SoundCloud Improvements 📜 Full Playlist Support SoundCloud playlists now load 100% of tracks correctly (fixed the issue where only 5 songs loaded). 📊 Accurate Metadata Tracks now correctly show: • Title • Duration • Thumbnail • Release date ⚡ Faster Queue Initialization Full playlists now populate instantly, with playback starting in ~200–300ms. 🧠 Smart Metadata Cache Improved caching reduces redundant metadata lookups and lowers yt-dlp calls by ~30–50%. More improvements are coming soon 🚀 Thanks for using Kyvora!
🌐 Major Webpanel Improvements Are Live! We just shipped a major Webpanel update focused on UI polish, search stability, and better layout balance. ✨ What’s new? • Search dropdown now always opens downward • Search fully overlays info sections (no more clipping) • Fixed z-index & stacking issues • Improved playing layout (better spacing between artwork & controls) • Cleaner idle ↔ playing transitions • Improved responsive behavior • UI refinements & stability fixes The Webpanel now feels smoother, cleaner and more consistent overall.
🎵 Update – Prefix System, Player Redesign & YouTube Mix Fixes ✨ Highlights 🆕 New Slash Command: /setprefix You can now change your server’s message-command prefix (default: !). All classic message commands dynamically follow the configured prefix help / commands automatically display the correct active prefix Fully integrated into the server configuration 👋 Improved Welcome Flow Displays the currently active prefix Includes a quick setup option to instantly change the prefix 🎨 Web Panel Player Redesigned Larger video / cover display area Fully responsive layout No more panel shifting or compression Cleaner and more modern overall appearance 🔧 YouTube Mix Handling – Fully Reworked ✅ Improved Mix Detection isYouTubeMix() no longer falsely detects a Mix when a normal video URL is used: /watch?v=... Even if YouTube automatically appends Mix-related parameters like: list=RD... ➡️ This prevents single videos from being incorrectly treated as massive auto-generated playlists. 🆕 New Helper Function: sanitizeYouTubeSingleVideoUrl() If a URL contains: /watch?v= + list=RD... YouTube "Radio" / Mix parameters The bot automatically sanitizes it to: https://www.youtube.com/watch?v=<videoId> This ensures the bot loads only the intended single video instead of a hidden or auto-generated Mix playlist. 🎵 Updated !play Logic The !play command now: Processes the raw input (trackInputRaw) Applies the sanitized version (trackInput) ✅ Result Correct video detection No accidental loading of large Mix playlists More predictable and stable queue behavior
🎯 Major Fixes & Improvements We’ve released Webpanel Version 1.3 with major stability improvements, UI fixes, and better responsiveness. 🛠 Server Picker Fully Restored Fixed an issue where the Servers button and Voice Channel selector were not appearing after selecting a server. Server selection now works reliably again. 🔄 Clean View Handling Reworked the internal view-switching logic to prevent elements from being permanently hidden. No more conflicting CSS/JS display overrides. 🚫 Loading Flash Removed Removed the temporary “- Loading -” dropdown and empty channel selector during server loading for a smoother experience. 🧊 Skeleton Loading Added Server cards now display animated loading placeholders instead of appearing empty while data is being fetched. 🎨 Improved Topbar Layout Better spacing between Servers button and Voice Channel selector No more button shrinking Text remains properly centered inside buttons 📱 Responsive Improvements Cleaner behavior across desktop and mobile devices for a more consistent experience. 🔐 Login Page Adjustments Reduced excessive spacing Login card and logo positioned more naturally on the screen 🌍 Multilanguage Fixes “Manage” button is now properly translated “Select a voice channel” fully integrated into the language system Server selection UI is now completely multilingual
🚀 Major Security & Playback Improvements We’ve rolled out important updates to improve security, stability, and user experience. 🔒 Playback Protection Added The bot can no longer start playing music unless it is already connected to a voice channel. This prevents unauthorized or unintended playback. 🛑 No More Auto-Join via Webpanel The webpanel no longer sends a voiceChannelId during playback or playlist requests. The bot can now only connect to a voice channel by using the Join button. 🧠 Server-Side Security Enforcement Even if someone attempts to manipulate the webpanel, the API will now block: playUrl requests if the bot is not in a voice channel playlist requests if the bot is not in a voice channel Any direct voice channel injection attempts ⚠️ Improved Error Handling Error codes are now translated into clean, user-friendly messages directly inside the webpanel for a smoother experience.
✨ Improvements /about Now shows the bot version Added a Privacy button (configurable via PRIVACY_URL) Fully localized via the multilanguage system /debug Added optional scope filter: full, player, voice, perms, system, config Cleaner & more structured output No hardcoded strings → multilanguage-ready /diag Improved formatting & readability Added optional scope filter: player, queue, voice, system Fully integrated into the multilanguage system 🛠 Fixes & Stability Now Playing embed appears instantly Lyrics + extra metadata are added afterwards via message edit Fixed an issue where Play Now could freeze the bot if a track fails to start Added start token / anti-freeze protection Prevents stale start attempts from locking the player Improved handling for blocked / unavailable videos The bot now skips failed tracks instead of getting stuck Added a timeout safeguard around stream probing Prevents yt-dlp failures from hanging playback forever Improved stability for YouTube playlist playback Faster detection of copyright-blocked / unavailable YouTube videos yt-dlp failures are recognized earlier (no long waiting before skip) Improved failover behavior On playback start errors, the bot waits for unlock and then continues automatically with the next track
📣 Update - YouTube Playback Fix 🎶 ✅ YouTube playback is working again! The bot is now fully functional again and should feel a bit faster overall. 🔧 Fixes & Improvements 🎵 YouTube playback restored (yt-dlp fix) ⚡ Faster song & playlist startup 🛡️ Improved stability on VPS / PM2 setups 🚧 Maintenance mode now ignores random ! commands 🧹 General performance & reliability improvements 🙏 Thanks for your patience - enjoy the music!
✨ New The !votedj command now supports targeting a user: !votedj @User starts a vote to set the mentioned user as DJ. If no user is provided, it defaults to yourself. The /overridedj slash command can now also target a user: /overridedj user:@User instantly sets the selected user as DJ. If no user is selected, you will be set as the DJ. 🛠 Improvements Consistent behavior between !votedj and /overridedj. Clearer feedback showing which user is now the DJ.
🚀The Kyvora Web Panel just received a major polish for a smoother and more modern experience: ✨ Visual Improvements - Subtle glow effects on panels & progress bar - Cleaner Now Playing & Queue layout - Improved spacing & typography 📱 Mobile Optimization - Fully responsive top bar (status, user, language, logout) - Automatic Discord name truncation - Optimized controls, playbar & stats for small screens - Reduced shadows for better mobile performance 🎵 Player Enhancements - Progress bar glow now only active during playback - Fixed 0:00 flashing issue - Clearer queue separation ♿ Usability & Accessibility - Unified focus styles for keyboard users - Full support for prefers-reduced-motion ✅ Smoother animations ✅ Cleaner layout ✅ Better performance on all devices
🚀 Kyvora Update - Webpanel & Lyrics System ✨ We’ve just released a major quality-of-life update for Kyvora! 🔥 Highlights - ⚡ Ultra-fast YouTube search in the Webpanel - 🎵 Lyrics button now works for Webpanel playback - 🖼️ Fixed missing & broken thumbnails - 🧠 Better artist & song detection - 🛠️ Improved stability & metadata handling ✅ Result: Webpanel playback is now fully on par with !play in Discord - including Lyrics, thumbnails, and clean metadata. 💙 Thanks for supporting Kyvora on Top.gg!
✨ Kyvora - Major Feature Update Huge upgrade! This update brings powerful new playback controls, better queue tools, and fresh quality-of-life features for all Kyvora users. 🔀 Shuffle Command Mix your entire queue instantly using !shuffle Perfect for long playlists, events, or chaotic music sessions. 🔁 New Repeat Modes Control exactly how Kyvora loops your music: !repeat off - Looping disabled !repeat one - Repeat the current track !repeat all - Loop the whole queue ⏭️ Skipto - Jump to Any Song Navigate your queue fast with: !skipto <index> No more spamming skip! 🎶 PlayNext - Prioritize Tracks Instantly Insert any song right after the one currently playing: !playnext <song|url> Great for quick requests & live DJing. ⚡ 24/7 Mode Keep Kyvora permanently in your voice channel: !247 on → always stay !247 off → auto-leave !247 status → check mode Perfect for Lofi rooms, community hubs & radio-style servers. 🔥 Thanks for using Kyvora! More features are coming soon.
UPDATE: V2.9 - Smarter YouTube Search 🎯🚀 Kyvora just received a major upgrade to enhance your music experience! ✨ What’s New? 🔍 New YouTube search engine powered by yt-dlp 🎯 More accurate results for every search 🖼 Improved thumbnails, ✔️ durations & 📅 release dates ⚡ Faster response times with smarter caching 🤖 Worker-powered multi-search for better web search results 🛡 More resilient to rate-limits & extractor issues 🔁 Automatic fallback to yt-search if needed 🧠 Under the Hood ✅ Worker extended with yt-json-many ✅ Unified metadata ➜ fewer formatting errors ✅ Improved error resilience in web + bot commands ✅ Lower playback start latency after searching 🎧 Enjoy better music. More improvements coming soon… stay tuned! :metal::zap:
🚀 New Update: Global Announcements, Lyrics Button & More! 🗣️ Global Announcements System You can now broadcast messages globally across all servers where the bot is in! /global - send an announcement (admin-only via whitelist) /global_msg enable | disable | status - servers can opt-in or out of global messages anytime. (Disabled by default for full compliance - no unsolicited pings!) 🎶 New: Lyrics Button A new “View Lyrics” button now appears when lyrics are available for the current track - right next to “Watch on YouTube”! 📡 Ping Command Added !ping to measure real-time latency (WebSocket + API) with a clean, modern embed. ⚙️ Improvements Unified admin permission system - all admin commands (/global, /maintenance, /overridedj, etc.) now use: WHITELIST_USER_IDS=123456789012345678,987654321098765432 /overridedj now works for users with Manage Channels permission or whitelisted admins. Enhanced error handling and polished embed designs. 🧹 Removed / Deprecated Old variables like MAINT_ALLOWED_USER_IDS or DEBUG_ALLOWED_USER_IDS are no longer needed - everything is handled via WHITELIST_USER_IDS. 🧰 Fixes & Stability Fixed rare state.textChannel.send and reply errors. Improved fallback logic for deleted messages. yt-dlp warnings fixed for smoother reconnects. More robust playback and error handling - fewer crashes, smoother experience. 💡 Tip: If you want your server to receive official announcements, use /global_msg enable anytime!