A feature rich chatbot for Owncast
|
|
1 zi în urmă | |
|---|---|---|
| ownchatbot | 3 săptămâni în urmă | |
| screenshots | 4 săptămâni în urmă | |
| .gitignore | 1 lună în urmă | |
| LICENSE | 6 luni în urmă | |
| README.md | 1 zi în urmă | |
| TODO.md | 3 săptămâni în urmă | |
| install.sh | 4 săptămâni în urmă | |
| ownchatbotwide.xcf | 6 luni în urmă | |
| pyproject.toml | 3 săptămâni în urmă | |
| setup.py | 3 săptămâni în urmă | |
| smallrobo.xcf | 6 luni în urmă | |
| upgrade.sh | 3 săptămâni în urmă |
A feature rich chatbot for Owncast.
You can simply download the zip/tar file from the git repo, and decompress it, but I recommend cloning the repo instead. It will make upgrading to future versions much easier.
git clone https://git.deadtom.me/deadtom/OwnchatBot.git
At the command line, descend into the "OwnchatBot" folder.
To start the install, run:
bash install.sh
The install script provides the URL for your OwnchatBot management panel. Bookmark it.
Make a backup of your OwnchatBot/instance folder.
Descend into the OwnchatBot directory. Run:
git pull
If you installed by downloading from the repo, rather than doing a git clone, simply download the new version and extract the file over your existing installation.
This will make any necessary upgrades to your existing database and config files. Run:
bash upgrade.sh
Port 8081 used here as an example. Change it to whatever port you'd like your bot to listen on.
Run OwnchatBot:
env/bin/python -m gunicorn -b 0.0.0.0:8081 -w 1 'ownchatbot:create_app()'
The above command directs all output to the console, but I prefer to have it all dump into a log file. You can do this with a small modification to this command:
env/bin/python -m gunicorn --error-logfile ownchatbot.log -b 0.0.0.0:8081 -w 1 'ownchatbot:create_app()'
A caveat here: Some features are managed by a module called apscheduler. I chose this for its simplicity, however, it doesn't play well when trying to run the app with more than one worker. The "-w 1" option in the gunicorn command specifies just one worker. If you run it with more, it will multiply the jobs that apscheduler manages. For example, "-w 4" will start four workers, and every job apscheduler performs will get run four times. OCB will continue to function fine, but you'll see fun things like announcements getting repeated four times, and viewers getting awarded four times your configured points awards. OCB isn't yet so huge that it really needs more than one worker, but at some point I might try to move away from apscheduler.
Once OwnchatBot is running, you can start setting up your rewards and other options at /mgmt.
Authentication is handled using your Owncast server as an IndieAuth server, so your login credentials are the same credentials you use to log into your Owncast Admin page.
The first thing you'll want to visit is the settings page. Each option is explained in detail. Then you'll need to get it talking to your Owncast instance, and Kofi if you'll be using it, both covered below.
OwnchatBot accesses Owncast chat room information via a webhook. You'll need to point Owncast at that webhook for things to function.
http://<your.ocb.address>/ocbHookYou need to create a button on your Owncast page, so your viewers can access the Rewards Panel to view their points, the rewards queue, and other helpful information. This will only work with an SSL enabled server. If you're running Owncast behind a reverse proxy (which you really should be) then you need to set up another reverse proxy for OwnchatBot. Sorry, you're on your own for how to do that. It's way outside the scope of this document.
Set the second field to your external OwnchatBot server address, and the port you set up in the "Running OwnchatBot" section, with /userpanel appended.
Example:
https://<your_external.ownchatbot.url>/userpanel
Set the third field (action title) to "Stream Rewards". Example:
Action Title: Stream Rewards
Configure the remaining fields/options as desired.
Only Owncast authenticated users can get donation benefits. So the first thing viewers need to do is authenticate their username with Owncast.
OwnchatBot associates viewer accounts with Ko-fi and GiveButter accounts using the viewer's email address. So in order for viewers to get donation benefits in-stream, they must enter their email address in OwnchatBot viewer panel -> OwnchatBot Info -> Donations.
If a viewer donates/subscribes before entering their email address, OwnchatBot creates a temporary entry with their email and points award, and then applies it once the viewer enters their email address into the viewer panel. If there is any sort of mix-up here, the streamer can manually connect the viewer's email and account via the management panel by entering the email into the viewers account. OwnchatBot will do the merge automatically. There are more details about this in the Manage Accounts panel
Email addresses are ONLY used for donation integration. They are not sent to any other individual or company, will not be used to create or send mailing lists of any kind, or for any other purposes. Ever.
Ko-fi has support for anonymous donations built right in, but GiveButter doesn't yet. So as a work-around, I've put instructions for setting up GiveButter custom fields at the bottom of the Donations management panel. Keep in mind this only makes them anonymous for OwnchatBot. All details are still visible in the GiveButter dashboard. Ownchatbot will still send a chat alert for anonymous donations, but no identifying information is included. OwnchatBot also does not log any identifying information related anonymous donations.
Integration is accomplished via a webhook triggered by Ko-fi every time a donation or subscription is made. Again, this webhook is your external OwnchatBot server address with /kofiHook appended.
A Ko-fi alert overlay is not built in to OwnchatBot, since Ko-fi already provides a fairly customizable alert webhook for just this purpose.
Paste the webhook address into Ko-fi -> More -> API -> Webhooks -> Webhook URL.
https://<your_external.ownchatbot.url>/kofiHook
Click "Update", but stay on this page.
You need the verification token from Ko-fi. Ko-fi sends this token when it triggers the webhook. Below "Webhook URL", click on "Advanced". A pre-generated token will already be there. Copy that token, and paste it into the OCB Management Panel -> Donations -> Kofi -> Verification Token. Then click "Save".
Integration is accomplished via a webhook triggered by Kofi every time a donation or subscription is made. This webhook is also your external OwnchatBot server address with /gbHook appended.
Enter this in the GiveButter dashboard -> Settings -> Developers -> Webhooks -> +New Webhook.
https://<your_external.ownchatbot.url>/gbHook
You need a signing secret from GiveButter. This is sent when it triggers the webhook. To get this, go to the Webhooks page in the GiveButter dashboard, and click on the eye icon (View) next to the webhook you set up for OwnchatBot. Copy the signing secret, and paste it into the OCB Management Panel -> Donations -> GiveButter -> Signing Secret. Then click "Save".
To display vote and goal progress on-screen, in your stream, create two browser sources in your streaming software.
If you'd like to use custom fonts in any of these overlays, put the font file in your instance/assets folder and reference the following location in your CSS: /assets/yourfont.ttf
Votes: http://<your.ocb.address>/votes
Goals: http://<your.ocb.address>/goals
td {
font-size: 20px;
}
You can set up a to-do list to display over your stream. Add, cross off or remove tasks using the "To-Do list" menu in the management panel. To display the list on-screen, create a browser source in your streaming software using the following information.
To-do list: http://<your.ocb.address>/todo
h4 {
font-size: 32px;
text-decoration: underline;
text-align: center;
margin-bottom: 0;
padding-bottom: 0;
}
ul {
margin-top: 0;
padding-top: 0;
}
li {
font-size: 30px;
}
You can upload custom images and videos to display on your stream when a viewer follows you, or when a goal or milestone is reached. To display these on-screen, create browser sources in your streaming software using the following information.
Follower alert: http://<your.ocb.address>/alert/follower
Milestone alert: http://<your.ocb.address>/alert/milestone
Goal alert: http://<your.ocb.address>/alert/goal
#nameBox {
top: 50%; /* Vertical position */
left: 50%; /* Horizontal position */
font-size: 20px; /* Adjust as needed */
font-weight: bold; /* Adjust as needed */
}
All command and rewards are preceeded with a prefix configured in the management panel. "!" by default.
In this order
Not necessarily in this order
For support (a bug, feature request/tweak, question or comment), you can contact DeadTOm via the following methods:
If you are thrilled to death with OwnchatBot, and want to throw a bit of monetary love DeadTOm's way, you can do so via Kofi. If you'd like to contribute code, contact DeadTOm about setting up an account on his Gogs instance.
OwnchatBot © 2025 by DeadTOm is licensed under Creative Commons Attribution-ShareAlike 4.0 International.
The SmallRobo image was created by Mike Carey, mikecarey134@gmail.com. I've modified the image, but you can find the original image at Open Game Art. At the time of this writing, it is released under a Creative Commons CC-BY 3 license.
The basic layout of the user and management panels was copied from the tab bar tutorial on w3schools.com.
Screen reader readability tested by The esoteric programmer.
Various testing for installation and GiveButter integration was done with the help of Ozoned.
The overlays screenshot was provided by Wonderwmn, from one of her co-working streams.
The food that keeps me alive during all-weekend coding sessions is also provided by Wonderwmn.