let's request some songs in twitch channels you do not need to own
- git clone
python -m venv venv
source venv/bin/activate
pip install -r requirements.txt
cp example_config.toml config.toml
- get twitch chat bot token via https://twitchtokengenerator.com/
- get hackmd.io api token
- put api tokens in config.toml
- build songlist csv - (rocksmith-folks: customs forge song manager will create one for you)
python requestnonsense.py
Songlists are read from CSV-files, I usually use one build with CFSM, but you
can craft one by hand. If you don't have your delimiter in the first line, set
LIST_CFSM=false
in config.toml.
Customs Forge Song Manager CSV-Format starts with a line denoting the delimiter. CFSM uses the first line in the csv file to denote the delimiter (usually ";"). Check LIST_DELIMITER and LIST_CFSM in config.toml.
We rely on Columns "Artist", "Title" and "Arrangements" in songlist, additional columns are ignored.
If your csv does not have arrangements, you can go with INSTRUMENTS=[]
in config.toml - this will simply use all songs.
Songlist might be in the wrong encoding. Try this: iconv -f UTF-16 ./songlist.csv > ./encoded_songlist.csv
- Request-Queue and Songlist with request commands should available in the web. Request-Queue will change throughout your stream, those changes should be automatically synced to browsers. HackMD will do that for us.
- HackMD uses markdown. It is easy and convenient to build markdown sources for songlist and requests.
- HackMD has a free tier including more than 1000 API-Requests per month. That should last for a while
everything happens in twitchchat. Commands may start with ! or ?. (you can set any string prefix with BOT_PREFIX in config.toml)
?request <songID>
- add your song to the queue or replace your request while keeping your position in the queue. see?rules
for link to songlist with available songs?allrequest
- retrieve a link with the full queue?position
- bot will answer with your current position in the queue?help
- bot will answer with a short explanation and the link with the songlist?rules
- bot will give a short rules text?meow
- bot will meow back to you
?next
- if no song is active, set the song at the top of the queue active. otherwise remove the top song from queue and set next one active?randomize
- same as next, but use a random song to put on top?scam <position>
- same as next, but use song at in queue to put on top?upgrade_request <user>
- promote request from in priority position. Those are at the top of queue, also sorted by insert time