This project is a Node.js backend designed to supercharge your streams. It connects with Streamer.bot, Spotify, and Kick to capture real-time events and display them on a set of customizable web overlays, ready to be added to OBS or any broadcasting software.
- Streamer.bot Integration: Capture and process Kick events in real-time.
- Customizable Alerts: Visual notifications for follows, raids, subscriptions, gifted subs, and Kicks.
- Chat Overlay: Display the Kick chat directly on your stream with a modern design.
- Spotify Integration:
- Display the currently playing song with album art, artist, and a progress bar.
- Song Request system redeemable via channel rewards.
- Polls & Predictions Overlays: Visualize real-time polls and predictions from Streamer.bot.
- Thermal Printer Integration: Generate and print personalized tickets upon receiving new followers or other events.
- Robust Backend: Built with TypeScript, modern, and featuring automatic reconnection to services.
- Easy to Configure: Everything is managed through a simple environment file.
Follow these steps to get the project up and running.
- Node.js: v18 or higher.
- Streamer.bot: With the Kick extension configured.
- Spotify Developer Account: You'll need to create an application on the Spotify Developer Dashboard to get your credentials.
- Thermal Printer (Optional): A Bluetooth ESC/POS printer (like the YHK-02BD or similar) if you want to use the printing feature.
- Clone the repository.
- Open a terminal in the project folder.
- Install the dependencies:
npm install
This project requires a set of actions to function. You will find them in the Actions.txt file.
- Import Actions: In Streamer.bot, go to the
Actionstab. In the left panel, right-click and selectImport. Find and select theActions.txtfile from this project. - Copy the IDs: Once imported, several actions will be created. Right-click on each of them, select
Copy Action ID, and paste the ID into the.envfile you will create in the next step.
-
Create a file named
.envin the root of the project. -
Copy and paste the following content, filling in the values with your credentials and the IDs of the actions you just imported.
# LOCAL SERVER PORT PORT=4000 # -- STREAMER.BOT -- SB_HOST=127.0.0.1 SB_PORT=8080 SB_PASSWORD= # -- SPOTIFY -- SPOTIFY_CLIENT_ID=YOUR_SPOTIFY_CLIENT_ID SPOTIFY_CLIENT_SECRET=YOUR_SPOTIFY_CLIENT_SECRET SPOTIFY_REDIRECT_URI=http://localhost:4000/callback # Channel reward ID for the Song Request REDEMPTION_ID=YOUR_STREAMERBOT_REWARD_ID # IDs of the imported Streamer.bot Actions ACTION_GET_REDEEMS=ID_OF_THE_GET_REDEMPTIONS_ACTION ACTION_SEND_MESSAGE=ID_OF_THE_SEND_CHAT_MESSAGE_ACTION ACTION_REJECT_REDEMPTION=ID_OF_THE_REJECT_REDEMPTION_ACTION ACTION_ACEPT_REDEMPTION=ID_OF_THE_ACCEPT_REDEMPTION_ACTION # -- THERMAL PRINTER (Optional) -- PRINTER_ENABLED=false # true to enable printing PRINTER_PORT=COM4 # Serial or COM Port (e.g., COM4 or /dev/rfcomm0) PRINTER_FONT_REGULAR=C:/path/to/regular_font.ttf PRINTER_FONT_BOLD=C:/path/to/bold_font.ttf PRINTER_BT_MAC=AA:BB:CC:DD:EE:FF # Bluetooth MAC of the printer (required on Windows/Linux) PRINTER_BT_CHANNEL=2 # RFCOMM Channel (usually 1, 2, or 11, required for binding on Linux)
- Open your browser and go to
http://localhost:4000/auth. - Log in and authorize the application.
This integration automatically prints a personalized ticket (with the Kick avatar, if available) every time a new user follows the channel.
The printing function is automatically activated upon receiving the kickFollow event from Streamer.bot. No additional Streamer.bot action needs to be configured for this event.
- Enable the Feature: Set
PRINTER_ENABLED=truein your.envfile. - Port Configuration:
- Windows: Ensure the Bluetooth printer is paired and the system has assigned a COM port (e.g.,
COM4). The application will usePRINTER_PORTandPRINTER_BT_MACto attempt to establish the correct serial connection. - Linux: You must configure the Bluetooth connection for the RFCOMM serial port. The
PRINTER_PORTvalue should match the created device (e.g.,/dev/rfcomm0).
- Windows: Ensure the Bluetooth printer is paired and the system has assigned a COM port (e.g.,
- Fonts: The
PRINTER_FONT_REGULARandPRINTER_FONT_BOLDvariables must point to accessible TrueType font (.ttf) files for vector text generation.
-
Development Mode:
npm run dev
-
Production Mode:
npm run build npm start
Create a new Browser Source for each of the following URLs:
- Alerts:
http://localhost:4000/overlay/alerts.html - Chat:
http://localhost:4000/overlay/chat.html - Now Playing (Spotify):
http://localhost:4000/overlay/nowplaying.html - Polls / Predictions:
http://localhost:4000/overlay/polls.html
This project is licensed under the Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International license.
