Streamer dashboard

Cover Requests

Cover Request lets viewers pick from a setlist you build in advance, then you sing them in order. Unlike the song system, here the video is just backing music — you're the act — and the screen can overlay per-line karaoke lyrics.

What it solves

The fiddly part of a singing stream is "what can they request, in what order, and where do the lyrics go." Cover Request folds all three into one place: you decide which songs are singable, viewers can only pick from those, requests line up into a running order you advance one at a time, and the lyrics ride on an OBS widget — visible to viewers and doubling as your teleprompter.

Getting started

  1. Add songs you can sing on the Song List tab — a title alone is enough to start.
  2. Want karaoke lyrics? Open the lyrics editor and add a timeline (below).
  3. Add the cover widget's OBS URL to your streaming software.
  4. Turn on the cover chat commands on the Commands page (!coverrequest / !cover / !coverlist — built-in commands start disabled; enabling one for the first time also brings its default alias, !cr), then set the per-viewer limit and reward binding.
  5. Once viewers request, use the Queue tab and press "Next" to sing through them (if you want to sing something that isn't in your library, quick-add it right there).

Four capability levels

How far each song goes is up to you, from zero effort to full karaoke:

  • Title only: just a name — viewers can request it and you can sing it. No YouTube, no lyrics needed.
  • + backing / guide: attach one YouTube URL each (either may be missing); the widget plays the audio for you.
  • + static lyrics: a full lyric block on screen — it doesn't move, but it works as a teleprompter.
  • + timed lines: lyrics light up line by line in time with the backing track — full karaoke.

Where lyrics come from

The lyrics editor puts typing and timing on one screen. Fetching and importing are shortcuts, not the only way in:

  • Search online: look up a community lyrics database (LRCLIB) by title; popular songs often come back with a ready timeline.
  • Import a file: LRC, SRT or WebVTT — three common subtitle formats — as a starting point you then edit.
  • Paste a block: copy a whole lyric from somewhere else and paste it in, one line per lyric line; time it later.
  • Mark times while it plays: play the backing track and hit “Mark start” at the start of each line to stamp its time — the standard karaoke workflow.
  • Type and nudge: every line can be typed by hand and its time adjusted step by step, plus a whole-song offset to line the lyrics up with the audio.

Besides a start time, each line can also carry an end time. Without one, a line stays lit until the next line takes over; with one, it clears as soon as it is sung — much cleaner across intros and long instrumental breaks. Exported to SRT or WebVTT these become the subtitle cue times, and WebVTT keeps the ruby readings too.

Furigana (Japanese), Bopomofo/Pinyin (Chinese) and Hangul readings are all supported — select the characters and type the reading in the editor, or write it inline as |漢字《かんじ》, which renders as small text above the base characters.

Curating your list and sharing it

Every row on the song list page has a checkbox. Tick a few and a toolbar appears: you can enable, disable (viewers cannot request it, but the song stays), delete, or export the selection to a .cbcs file. Select-all while a search is active selects exactly the search results.

The export carries the title, artist, backing and guide tracks, tags and lyrics — including the line-by-line timing you spent an evening marking. Hand the file to another streamer, they hit Import on their own song list, and it is in. One file can hold many songs. It is a compressed binary file, not something to hand-edit. On import, songs you already have (same title and artist) are skipped rather than overwritten, and if your library hits its limit the rest are skipped with a count. The enabled/disabled state does not travel with the file: imported songs are requestable right away — bulk-disable them if you are not ready.

This is not the same as settings backup/restore: a backup is a snapshot of the whole channel, this is a handful of songs packed up to share.

Backing and guide tracks

Each song can hold two YouTube tracks: a backing track (instrumental only) and a guide track (with a vocal to sing along to) — or just one of them. The widget defaults to "audio only": the video is hidden, only the sound and lyrics show, which keeps the scene clean and works as a teleprompter; flip to "show video" if you want it visible. The sound comes out of the OBS widget, so it has to be in your scene and not muted.

Controls while you sing

During a stream you mostly live on the Queue tab. Besides Previous/Next, it drives the backing track the widget is playing:

  • Switch instrumental / guide: want a guide vocal for this one song? One click, no settings trip — and it picks up where you were instead of restarting.
  • Play and Pause: two separate buttons. Stop the track while you talk, drink, or read chat.
  • Volume: sets the volume of the OBS widget directly.
  • Restart: botched it? Send the track back to 0:00 — the lyrics jump to the first line too.
  • Add a song yourself: warm-up numbers, or requests you got somewhere else, go straight from the library into the queue. For a song that isn't in your library yet, quick add takes just a title (artist optional). A quick-added song does not join your requestable list by default — it shows on your screen and in the dashboard, but viewers can't request it; tick "Also add to the song list" if you want to keep it.

This page also shows a live view of the OBS widget — the same one your viewers see, but muted here (the sound only comes out of OBS), so you can see the current screen without switching to OBS.

One trade-off worth knowing: playback state is not stored on the server. The widget never starts playing on its own, and after OBS reconnects or the source is reopened it sits at "not playing" until you press play again; volume returns to its default too. In exchange, a button press always means "do this now" instead of replaying a state left on the server hours ago.

How viewers request

Cover commands are part of the same built-in command set as everything else on the site — you enable them, set aliases, permissions and cooldowns on the Commands page:

  • !coverrequest <song>: request a song from your setlist (default alias !cr, fewer keystrokes for viewers).
  • !cover: answers with what you are singing right now. Info only — adding a song name does not request it; requesting goes through the command above.
  • !coverlist: replies with the link to your public setlist page (chiwabots.com/@yourchannel/cover), where viewers can see what you are singing now, who is queued, and every song they can request — nobody has to copy titles off your screen.

You can also bind a channel points reward: whatever the viewer types when redeeming becomes the song they requested.

The OBS widget's five blocks

The widget has five sections you can toggle independently: Now Singing (large title + progress) and Current lyrics (per-line karaoke when the song has a timeline, a static block when it doesn't — you don't pick), plus three list blocks:

  • Reserve — what you're singing next, i.e. the pending queue.
  • Setlist — what you've already sung this stream, kept until you clear it.
  • Song List — your requestable library, so viewers know what they can ask for. Off by default: a library can hold hundreds of songs while OBS fits about a dozen, and "+N" for the rest tells viewers nothing. Send them to your public cover page for the full list (that's exactly what !coverlist replies with). Turn it on if you do want it on screen.

Those three headings default to the English terms the karaoke-stream scene already uses, so viewers recognise them in any language; all four headings can be changed to whatever you want, and clearing one hides that block's heading entirely. Title and lyrics are separate toggles — for a pure teleprompter, turn off "Now Singing" and keep the lyrics.

The title and lyrics at the top take a set height (the lyric height is the number of lyric lines you choose, and the line being sung scrolls to the middle); the remaining height is split evenly between whichever list blocks are on. Those blocks have two more knobs:

  • Order — drag them on the settings page to decide what sits on top (or on the left, when they're side by side).
  • Blocks per row — one column (stacked), two, or three. Two by default: an OBS source is usually wide but not tall, so side by side fits more than stacking; anything that doesn't fit wraps to the next row.

Two more switches are off by default: Show artist (adds the original artist next to the title) and Show list numbers (position in Reserve, running count in Setlist). Space on OBS is tight, so each line goes to the song title unless you say otherwise. When a list overflows it scrolls on its own, pauses at the bottom and jumps back up; speed and pause length are both adjustable (set the speed to 0 to turn it off and go back to "+N").

Font, font size, lyric lines, panel padding and colors are all adjustable, and the settings page shows a live preview as you go. The widget fills the whole OBS source, so if you want breathing room, raise the panel padding.

Common misconceptions

  • This isn't the song system, and you can run both at once. The song system plays YouTube videos for viewers and drops them once played; Cover Request has viewers pick from your setlist, you sing, and the video is only backing. Their data and widgets are entirely separate.
  • Sung songs don't disappear on their own. "Next" just marks the current song as sung and moves it to the widget's Setlist block, where it stays until you press "Clear" — so viewers can see what you've sung this stream. You can clear only the sung ones or the whole thing.
  • Fetched lyrics are editable, and obscure songs can be typed from scratch. Search and import save time but aren't required; you can fix typos, line breaks and censored words on fetched lyrics, and originals or arrangements can be written line by line yourself.
  • Readings usually have to be added by hand. Community databases and LRC/SRT carry plain characters only, so furigana/readings are added manually; only a format like WebVTT can carry them natively.
  • Your library is private. The setlist you build is yours alone to see and use — there's no shared cross-channel public library.
  • The widget plays the backing track, not your voice. It plays the backing/guide audio and overlays lyrics; your singing goes through your own microphone into the stream — separate tracks in OBS.

Settings

Your own cover library — viewers can only request songs from here.

The text below is taken from the in-app help, so it stays in sync with the actual interface.

SettingWhat it does
No songs yetAdd a few songs so viewers have something to request. A title on its own is enough.
ArtistOptional; the original artist, used for display and search.
TagsComma-separated, up to 10. Used only to search this list.
Enable cover requestsLet viewers request songs from your song list. Runs alongside the Song Requests module — both can be on at once.
Custom reward nameBind a channel points reward by its exact title (leave empty to disable).
Queue limitMax songs waiting to be sung.
Per-viewer limitMax pending requests per viewer.
Default trackWhich track loads first for each song.
PresentationAudio only shows lyrics over the sound (doubles as a teleprompter); video also shows the clip.
FontLeave empty for the widget default.
Font sizeBase size for lyrics and the lists.
"Now singing" font sizeSize of the title and artist.
Lyric lines shownHow many timed lines are visible at once; the line being sung scrolls to the middle.
Panel marginPadding inside the background.
List section layoutWhether the list blocks stack vertically or sit side by side. This arranges the blocks themselves, not the columns inside each list.
List auto-scrollPixels per second the lists scroll when they overflow; 0 turns it off. While on, the full list scrolls by instead of being cut with "+N".
Hold at end (seconds)How long to pause on the last line before jumping back to the top; the same pause applies after jumping back.

Chat commands

These are the default command names; they can be renamed or given aliases in the dashboard.

  • !coverrequest — Request a song from the streamer's cover setlist (default alias !cr).
  • !cover — Show which song is being covered right now (info only — never requests).
  • !coverlist — List the cover songs viewers can request right now.

Other notes

  • Viewers request from your own cover song list, with backing-track playback and a karaoke lyrics widget
  • Both tracks are optional. Look up fetches the video details for you to confirm and replaces the field with the video ID.
  • Roles exempt from the request limits above.
  • Which of the five blocks to show.
  • Drag to reorder the list blocks; the toggle shows or hides each one.
  • Headings for the blocks on the widget. Leave one empty and that block gets no heading.

Other settings

These settings have no additional help text in the dashboard; only their names are listed here.

  • Select all
  • Enable
  • Disable
  • Export
  • Delete
  • Clear selection
  • Import
  • Import failed
  • This is not a cover song list file, or its contents were altered.
  • This file comes from a newer version of ChiwaBots.
  • Add song
  • The library is full ({max} songs). Delete some to add more.
  • Title
  • Artist
  • Tracks
  • Content
  • Tags
  • Requestable
  • Title
  • Look up
  • Lyrics
  • Live lyrics
  • Request rules
  • Custom channel point reward
  • Playback
  • Widget appearance
  • Viewers exempt from limits
  • Accompaniment
  • Guide vocal
  • Audio only
  • Show video
  • Widget zones
  • Drag to reorder
  • Now Singing
  • Current lyrics
  • Reserve (up next)
  • Setlist (sung this stream)
  • Song List (your library)
  • Show artist
  • Show list numbers
  • Video width
  • Video position
  • "Now Singing" heading
  • "Reserve" heading
  • "Setlist" heading
  • "Song List" heading
  • (no heading)
  • Text color
  • Highlight color
  • Dimmed color
  • Background color
  • One column (stacked)
  • Two columns (side by side)
  • Three columns (side by side)
  • Left
  • Center
  • Right
  • Now Singing
  • Reserve
  • Setlist
  • Song List