You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
6 months ago | |
---|---|---|
liveq | 6 months ago | |
static | 6 months ago | |
.gitignore | 6 months ago | |
Makefile | 6 months ago | |
README.md | 6 months ago | |
requirements.txt | 6 months ago |
README.md
LiveQ
A single music queue for multi-game rhythm game livestreamers.
Benefits
- Design all live interactions around a single interface.
- Gives your viewers a number they can see it's too easy or too hard.
Compatibility
Only the PC edition of these games:
Current
- osu!
- Ragnaröck VR only custom songs
Soon
- Beat Saber VR only custom songs
- Project OutFox mode dance 4k
- Project OutFox mode kbx 4k
Maybe later
- Synth Riders VR only custom songs
- Audica VR only custom songs
- Audio Trip VR only custom songs
Given up
- Ragnaröck VR bult-in songs: it's all packed inside encrypted Unreal asset bundles.
- Beat Saber VR bult-in songs: it's all packed inside Unity asset bundles.
Won't even try
- DJMAX RESPECT V: Unity asset bundles (see
Compatibility
>Given up
>Beat Saber VR
). - MUSYNX: Unity asset bundles (see
Compatibility
>Given up
>Beat Saber VR
). - Magyarock VR: not yet released and looks no much different than Ragnaröck VR
- AudioShield: boring & a "request from YouTube" queue would be better
- Beat Hazard 2 VR: a "request from YouTube" queue would be better
- DEEMO -Reborn-: no custom songs
- Dance Collider: no custom songs
- Drums Rock: not my kind of game
- Hatsune Miku VR: boring
- OnShape: inexpressive amount of custom songs
- Pistol Whip: not my kind of game (boring, IMHO)
- PowerBeatsVR: boring
- Thumper: no custom songs
- Unplugged: can't play (Quest 2 user)
Intended architecture
Some games have a built-in queues, but they are not cross-game. That requires an external piece of software to do so:
Streamer side
+----------+ +--------------------+
| Twitch | | Streamer's Website |
+----------+ +--------------------+
^ ^
| ......... | ..........
| : +------------+
/ : | NGINX Rev. |
/ : | Proxy |
/ : +------------+
| Internet:Server ^
. | .........:............ | ......
| Streamer's |
| PC |
| |
+-------+ +------------+
| OBS | | SSH Tunnel |
+-------+ +------------+
^ ^ |
| | |
| +-----------+ |
| | |
+------+ +------------+ | +-----------+
| Game | | Song Queue |<-+->| Browser |
+------+ | Web View | | | Admin Tab |
| +------------+ | +-----------+
v |
+-------+ +--------------+
| Game |<-----------| LiveQ Server |
| Files | | Process |
+-------+ +--------------+
In order to close the queue, just close the SSH Tunnel.
Active Viewer Side
+----------------+ +-------------------+
| Stream App/Tab | | Queue Request Tab |
+----------------+ +-------------------+
| |
v v
+----------+ +--------------------+
| Twitch | | Streamer's Website |
+----------+ +--------------------+
Alt+Tab or equivalent.
Your view count isn't expected to decrease on mobile due to Picture in Picture.
Passive Viewer
+----------------+
| Stream App/Tab |
+----------------+
|
v
+----------+
| Twitch |
+----------+
Files not included
-
config.ini
[app] root=https://live.yourdomain.com lang=en-us title=Joe`s Playlist description=Music queue for many rhythm games streamer=twitch:yourlogin maxqueue=8 # n songs as total in the queue maxbyviewer=2 # m unplayed songs per viewer at a time obschangekeepms=5000 # negative for an always-displaying overlay [modules] osuddr4k=1 # 1 means enabled and visible for selection osumania4k=0 # 0 means disabled, but visible for selection (not validated by the backend) osumania7k=h # h means hidden from the UI selection (not validated by the backend) osutaiko=h osucatch=h osustd=h ragnarock=h [difficulties] osuddr4k=0-1.4 osumania4k=1.2-2.4 osumania7k=0-1.5 osutaiko=0-1.5 osucatch=0-1.5 osustd=3.25-4.2 ragnarock=4-8.5 [localization] # Translate your UI search=Buscar login_with_twitch=Entrar com Twitch logout_username=Sair de title=Título artist=Artista mapper=Mapeador queue_add=Adicionar à fila queue_remove=Remover da fila queue_played=Marcar como jogado queue_unplayed=Marcar para rejogar playqueue=Fila de jogo queue=Fila done=Feito done_delete=Removido not_authenticated=Você não entrou done_add=Adicionado token_expired=Seu login expirou could_not_validate_credentials=Credenciais de login inválidas not_found=Não encontrado already_in_queue=Já está na fila queue_full=Fila cheia cannot_remove_others=Não é possível remover item de outro usuário cannot_remove_played=Não é possível remover itens já jogados only_streamer_can_mark_played=Apenas o streamer poded marcar como jogado done_mark_unplayed=Marcado para rejogar done_mark_played=Marcado como jogado shuffle=Embaralhar download=Baixar preview=Ouvir prévia stop_preview=Parar prévia all_variants=Todas as variantes osumania1k=osu!mania 1k single osumania2k=osu!mania 2k single osumania3k=osu!mania 3k single osumania4k=osu!mania 4k single osumania5k=osu!mania 5k single osumania6k=osu!mania 6k single osumania7k=osu!mania 7k single osumania8k=osu!mania 8k single osumania9k=osu!mania 9k single osumania10k=osu!mania 5k double osumania12k=osu!mania 6k double osumania14k=osu!mania 7k double osumania16k=osu!mania 8k double osumania18k=osu!mania 9k double osustd=osu! osutaiko=osu!taiko osucatch=osu!catch osuddr4k=Dance Mat (osu!mania 4k) ragnarock=Ragnaröck VR beatsaber=Beat Saber VR outfoxdance=dance @ Project OutFox outfoxpump=pump @ Project OutFox outfoxsmx=smx @ Project OutFox outfoxtechno=techno @ Project OutFox outfoxbemu=bemu @ Project OutFox outfoxpomu=pomu @ Project OutFox outfoxgddm=gddm @ Project OutFox outfoxgdgf=gdgf @ Project OutFox outfoxgh=gh @ Project OutFox outfoxtaiko=taiko @ Project OutFox outfoxbongo=bongo @ Project OutFox outfoxpara=para @ Project OutFox outfoxkbx=kbx @ Project OutFox outfoxez2=ez2 @ Project OutFox outfoxds3ddx=ds3ddx @ Project OutFox outfoxmaniax=maniax @ Project OutFox outfoxstepstage=stepstage @ Project OutFox outfoxkickbox=kickbox @ Project OutFox
-
config.nt.ini
[paths] osu=D:\path\to\osu ragnarock=D:\path\to\ragnarock\CustomSongs
-
config.posix.ini
[paths] osu=/path/to/osu ragnarock=/path/to/ragnarock/CustomSongs
-
tokens.ini
[jwt] seed=00000000-0000-4000-0000-000000000000 [twitch] client_id=123456789012345678901234567890
replace the client_id placeholder with the ones copied from the Developer Console
generate your own seed using UUID4 or similar