Releases: xHackMe/better-song-request-streamerbot
Release v1.3.1
Release v1.3.0
📜 Changelog 06.06.2026
NEW Added a fully customizable OBS widget layout editor with interactive moving, resizing, rotating, hiding, element opacity, and background opacity controls.
NEW Added !when to show when the requesting viewer's nearest queued song will play.
NEW Added !queue to show the current request/manual song plus the next 10 request/manual song titles.
CHANGE Moved the OBS widget URL and resolution reminder into the right side of the widget editor header.
CHANGE Moved the OBS source size reminder under the widget editor preview size controls.
CHANGE Opening the widget editor now publishes the DEMO song state to all widget sources until the editor is closed, preventing live-song/demo flicker.
CHANGE Saving or resetting the widget layout now applies the change without closing the widget editor.
CHANGE Settings backup now includes the saved custom widget layout.
CHANGE Updated page version to v1.3.0. Streamer.bot import is v1.0.4.
FIX DEMO widget publishing now keeps the live editor draft layout instead of replacing it with the previously saved layout during editing.
FIX Removed unintended background blocks from edited title, artist, time, and waveform elements when their background opacity is set to 0.
FIX Matched the edited source/requester badge styling with the original OBS widget badge.
FIX Centered the widget preset delete icons inside their buttons.
Release v1.2.4
📜 Changelog 31.05.2026
NEW Added viewer request history between Clear queue and Save queue, with unique chat-requested songs, search, user/date filters, favorite support, and quick add back to queue.
NEW Added a top brand bar with favicon and the project name.
CHANGE Renamed the project from YTM Song Request to Better Song Request.
CHANGE Updated page version to v1.2.4 and split Streamer.bot import numbering to v1.0.3.
CHANGE Updated HELP/tutorial and README default HTTP folder examples from ytm to betterSongRequest.
CHANGE Added status emoji prefixes to the Song Request on/off chat messages in every language.
CHANGE Footer import version now matches the import metadata exactly, without an extra v prefix.
CHANGE Updated HELP and README HTTP folder examples to betterSongRequest to match Streamer.bot casing.
CHANGE Settings backup now includes viewer history.
FIX Repaired mojibake in static fallback UI text, language names, emojis, and README headings.
Release v1.2.3
📜 Changelog 23.05.2026
NEW Added local favorites with star buttons on base tracks, queued tracks, and the current song; favorites stay at the top of the left panel and are included in START/SHUFFLE.
NEW Added per-message enable switches in custom chat message settings so each bot response can be fully disabled without deleting its text.
NEW Added configurable active !sr limits: per-user requests default to 25 and the global viewer request pool defaults to 100, with translated chat warnings when a limit is reached.
NEW Added settings export/import backup for playlists, bans, custom chat messages, WebSocket settings, request limits, queue persistence, favorites and disabled custom-message states and widget settings. The YouTube API key is intentionally skipped.
NEW Added a diagnostics panel for WebSocket status, Streamer.bot import version, widget bridge, widget state, request-limit sync, and API key presence.
NEW Added automatic Streamer.bot import checking with a clear "import required" warning that lists missing or outdated parts.
NEW Added an OBS widget test button that sends a temporary test card to the widget without changing the real queue.
NEW Added per-user and global request-limit switches, disabled by default, with saved state across refreshes.
CHANGE Replaced native browser alert/confirm popups with in-app confirmation and toast messages.
CHANGE Updated the Streamer.bot import package with a new YtmImportDiagnostics action.
CHANGE Active per-user and global !sr limits can be checked before YouTube search.
CHANGE Import-required messages now point users to HELP as the place to copy the current Streamer.bot import code.
CHANGE Split the Streamer.bot import version from the page version. The current import is v1.2.3-I3 for page v1.2.3.
CHANGE Added the import version to the footer and tightened the footer layout so holiday messages can wrap without pushing the version text out of place.
CHANGE Diagnostics now checks required actions, commands; including missing or disabled components.
CHANGE Removed the special highlight from the first queued track so it keeps the color from its add source.
CHANGE Stabilized track thumbnails, the center now-playing title area, and list action button sizing so panels no longer jump with uneven covers or long titles.
CHANGE Unified left and right song cards with fixed thumbnail slots, compact action columns, and consistent clipped badges.
CHANGE Rebalanced song card metadata into a more compact single-line badge layout for duration, artist, source, and favorites.
CHANGE Moved song numbering into a small top-left corner badge so drag handles and track details have more room.
CHANGE Softened the corner song number styling so it blends into the track cards.
CHANGE Moved custom bot message enable switches to the left of each editable message field.
FIX Added a single-instance audio lock for OBS widget audio so duplicate widget Browser Sources with audio enabled mute their extra hidden players.
FIX Reordered !sr validation for title searches: request-count limits now reject before search, while duration and music-category checks still run after the track is found.
FIX Removed live queue checks from import diagnostics because Streamer.bot does not reliably return that list.
FIX Made confirmation dialogs appear above the blocked-tracks manager.
Release v1.2.2
📜 Changelog 21.05.2026
IMPORT TO STREMERBOT IS REQUIRED!!!
NEW Added !voteskip with configurable required vote count, per-track vote reset, chat responses, custom message support, and updated Streamer.bot import actions.
NEW Added an optional OBS widget audio mode that appends audio=1 to the widget URL and syncs a hidden YouTube player in the widget.
NEW Added a widget URL replacement warning that appears when widget-link settings change and the OBS URL should be replaced.
NEW Added queue clearing with a confirmation prompt while keeping the currently playing song untouched.
NEW Split the base playlist start action into START for loaded playlist order and SHUFFLE for random order, with short UI descriptions.
NEW Added drag and drop reordering for base playlists in the playlist manager, saved locally and used by START order.
NEW Added visible drag handles to both base playlists and right-side queued tracks.
CHANGE Aligned the !SR Request Limits layout with !voteskip on the right and changed the YouTube Music category option to a switch.
CHANGE Made the update, changelog, and help buttons sit horizontally above the footer.
CHANGE Made NEXT and natural song endings refill an empty queue using shuffle mode instead of ordered start.
CHANGE Embedded the favicon directly in index.html as a base64 data URL so favicon.ico is no longer required by the page.
CHANGE Bumped the asset cache key so OBS reloads the updated widget script.
CHANGE Added translated widget audio and widget URL warning text for all supported languages.
FIX Improved OBS widget startup reliability by retrying the Streamer.bot subscription after the widget websocket opens and forcing a short state resend when playback starts.
Release v1.2.1a
📜 Changelog 16.05.2026
NEW Added an editable WebSocket server address setting with 127.0.0.1 as the default.
NEW Added Ukrainian language support across the UI, HELP tutorial, chat messages, and OBS widget text.
CHANGE Delayed the OBS widget waiting-for-player message until the connection has been missing for 15 seconds.
CHANGE Added the WebSocket server address to the generated OBS widget URL and widget connection logic.
CHANGE Added Ukrainian to both language selectors.
FIX Ignored stale localStorage widget snapshots when fresh Streamer.bot, BroadcastChannel, or storage-event state is available to prevent alternating widget/waiting flicker.
FIX Rebuilt the i18n dictionary with complete UTF-8 translations for English, Polish, Ukrainian, German, French, and Turkish.
FIX Kept all UI translation keys covered so language switching updates the whole interface again.
Release v1.2.1 (IMPORT TO STREMERBOT IS REQUIRED!!!)
📜 Changelog
NEW Added a standalone transparent OBS Now Playing widget page with cover art, elapsed time, duration, waveform, and progress bar.
NEW Added an OBS widget configuration section in Settings with an auto-generated Browser Source URL.
NEW Added cover-color extraction for Now Playing cards to tint the panels from the current song artwork.
CHANGE Made the standalone OBS Now Playing widget fill and scale to the full browser source size.
CHANGE Redesigned the right-panel Now Playing card to match the standalone widget style and show live playback progress.
CHANGE Updated the Streamer.bot import string with a NowPlayingWidgetState bridge action for OBS widget updates.
CHANGE Updated Help and Settings with a short OBS widget setup guide pointing to the Settings-generated URL.
CHANGE Added a frosted-glass style to the Now Playing info and meter panels with translucent cover-based coloring.
CHANGE Renamed the right-panel queue heading from "Queue !SR" to "Queue" in every language.
CHANGE Moved queue persistence into a compact switch under the Now Playing label.
FIX Kept the !SR queue header controls on one line with responsive text sizing for long times and large queue counts.
FIX Kept queue duration and track count fully visible in the right-panel header instead of truncating them.
FIX Kept the OBS widget silent after auto-hiding from pause, stop, or idle until music starts again.
FIX Prevented the waiting-for-player message from reappearing after its own 30-second auto-hide unless a real player connection returns.
Release v1.2.0 (IMPORT TO STREAMERBOT IS REQUIRED!!!)
📜 Changelog
v1.2.0
08.05.2026
NEW Added editable !sr request limits for maximum track length and YouTube Music category filtering.
IMPORT TO STREMERBOT IS REQUIRED!!! you can find it in HELP Section! Replace and enable commands in stremer bot!
NEW Added optional queue persistence so the current queue can survive browser refreshes.
NEW Added automatic startup track loading before playback begins, using YouTube Music most popular results when an API key is available.
NEW Split the original single-file page into index.html, style.css, translations.js, and app.js while preserving the existing behavior.
FIX Fixed Streamer.bot WebSocket password authentication by handling the Hello salt/challenge flow and sending the hashed authentication response before subscribing to events.
CHANGE Moved static visual styles out of index.html into style.css, including previously inline styles.
CHANGE Moved static UI event wiring out of index.html into app.js using data-action, data-change-action, and data-input-action attributes.
CHANGE Updated the Help tutorial with queue persistence and request limit details.
CHANGE Updated the Streamer.bot import string so !sr settings can be synced from the web interface after reimporting the actions.
FIX Translated all source-code comments to English.
FIX Track-too-long chat messages now use the configured duration limit instead of a hardcoded 15 minutes.
FIX Restored language-specific diacritics in newly added Polish, French, German, and Turkish UI text.
Release v1.1.0
📜 Changelog
v1.1.0
07.05.2026
NEW Massive UI Clean-up! Middle panel refactored using CSS Grid. Statuses are now perfectly aligned on the left, a large !SR ON/OFF toggle in the center, and the Settings gear (⚙️) on the right.
NEW Multi-language System (i18n) expanded! Fully implemented translation system supporting English, Polish, German, French, and Turkish.
NEW Custom Chat Messages! You can now fully edit all bot responses directly from the Settings menu. Supports restoring defaults and saving per-language.
NEW Added WebSocket Password support for Streamer.bot authentication.
NEW Base Playlist manager moved to a new dedicated 📁 Manage Playlists button for better access and full i18n support.
CHANGE UI/UX Modernization: Added smooth hover animations, distinct green badges for "ONLINE" statuses, and an overall consistent Dark Mode palette.
CHANGE Refactored codebase: All Polish comments in the HTML/CSS/JS source code have been translated to English.
FIX Fixed the GitHub changelog fetcher to correctly parse release notes, markdown lists, and status badges.
FIX Dynamic language translation now applies correctly to the "New Update" button without requiring a page reload.
FIX "STOP" and "ERROR" statuses under the player are now properly translated.
FIX Changed default suggested tutorial path from YTM to ytm.
FIX Tutorial window now includes a quick language selector and updated instructions reflecting the new UI layout.
First Official Release v1.0.0a
📜 Changelog
v1.0.0a
06.05.2026
NEW GitHub implementation and final project structuring.
FIX Fixed a visual bug where changing the language displayed a false "Connecting" status for the WebSocket. The connection now automatically refreshes upon language change.
v1.0.0
06.05.2026
NEW Multi-language System (i18n). The app now fully supports English, Polish, German, French, and Turkish. Language preferences are saved locally.
NEW Chat messages from the bot are now translated instantly based on the selected language without restarting.
NEW Dynamic tutorial instructions! The final step now recognizes if you are opening the file locally (file://) or through the Streamer.bot server (http://localhost) and adapts the message accordingly.
NEW Added an important reminder for users to keep port settings in sync.
v0.9.0
06.05.2026
NEW First official release. Project renamed to YTM Song Request.
NEW Added real-time search for base tracks with quick add buttons.
NEW Built-in Changelog modal.
CHANGE Split Streamer.bot !play action into separate, safer commands.
FIX Command !skip now sends the exact track info.
FIX UI optimization.