started Kick support
This commit is contained in:
@@ -11,9 +11,10 @@ The status of StreamGoose is currently **alpha**. Use at your own risk.
|
||||
|
||||
Nevertheless, the following features are already implemented:
|
||||
|
||||
- Twitch, YouTube and Owncast chat aggregation (see "Backend implementation status" section)
|
||||
- Twitch, YouTube, Owncast and Kick chat aggregation (see "Backend implementation status" section)
|
||||
- Handling Twitch emotes
|
||||
- Handling YouTube non-Unicode emotes (see "Backend implementation status" section)
|
||||
- Handling Kick emotes
|
||||
- Message styling based on Twitch and YouTube roles
|
||||
- Twitch username styling based on color preference
|
||||
- Message highlighting based on regular expressions
|
||||
@@ -132,6 +133,7 @@ The following fields in the `config.json` are backend-agnostic:
|
||||
- `server_port`: a local port to run the HTTP REST server on. Default value: `60053` (for "GOOSE").
|
||||
- `server_listen_ip`: a local IP address to bind the server to. Default value: `127.0.0.1`. Recommended to leave at this value, only change it if you plan on connecting external backends from other machines in your LAN.
|
||||
- `debug`: print out various debug information about incoming messages and events. Can be `true` or `false`.
|
||||
- `useragent`: the value of the `User-Agent` HTTP header used by the backends with unofficial APIs, like Kick.
|
||||
|
||||
The following fields in the `config.json` are specific to the Twitch internal backend:
|
||||
|
||||
@@ -153,6 +155,12 @@ The following fields in the `config.json` are specific to the Owncast internal b
|
||||
- `oc_server`: your Owncast server root URL.
|
||||
- `oc_api_poll_timeout`: the interval (in seconds) to poll the Owncast chat with. Recommended to set to at least 2 seconds.
|
||||
|
||||
The following fields in the `config.json` are specific to the Kick internal backend:
|
||||
|
||||
- `kk_backend_enabled`: whether or not the Owncast internal backend is turned on.
|
||||
- `kk_channel`: your Kick channel name.
|
||||
- `kk_api_poll_timeout`: the interval (in seconds) to poll the Kick chat with. Recommended to set to at least 2 seconds.
|
||||
|
||||
Example `config.json` file:
|
||||
|
||||
```json
|
||||
@@ -160,6 +168,7 @@ Example `config.json` file:
|
||||
"server_port": 60053,
|
||||
"server_listen_ip": "127.0.0.1",
|
||||
"debug": true,
|
||||
"useragent": "Mozilla/5.0 (X11; Linux x86_64; rv:130.0) Gecko/20100101 Firefox/130.0",
|
||||
"tw_backend_enabled": true,
|
||||
"tw_nickname": "Suborg",
|
||||
"tw_channel": "#foxyshadow",
|
||||
@@ -169,7 +178,10 @@ Example `config.json` file:
|
||||
"yt_channel": "@foxyshadow",
|
||||
"oc_backend_enabled": true,
|
||||
"oc_server": "https://streams.luxferre.top",
|
||||
"oc_api_poll_timeout": 2
|
||||
"oc_api_poll_timeout": 2,
|
||||
"kk_backend_enabled": true,
|
||||
"kk_channel": "foxyshadow",
|
||||
"kk_api_poll_timeout": 2
|
||||
}
|
||||
```
|
||||
|
||||
@@ -197,6 +209,9 @@ The following procedure needs to be only done once:
|
||||
4. Save the file. The Owncast connection should now work and fetch messages whenever you start a livestream.
|
||||
5. If the connection doesn't work, make sure that the `oc_backend_enabled` field is set to `true` in `config.json` and you didn't revoke the token in the admin panel.
|
||||
|
||||
### Connecting Kick internal backend
|
||||
|
||||
As of now, nothing needs to be done except setting the `kk_backend_enabled` field to `true` in `config.json`, but this section might be subject to change once Kick deploys and enforces any official APIs.
|
||||
|
||||
## Customization
|
||||
|
||||
@@ -213,6 +228,7 @@ The `webroot/style.css` is the main point of customization. Here is a short (and
|
||||
- `.timestamp`: message timestamp (hidden by default)
|
||||
- `.tw`: a Twitch message (applies to the whole message block, as well as **all the subsequent classes** listed here)
|
||||
- `.yt`: a YouTube message
|
||||
- `.kk`: a Kick message
|
||||
- `.oc`: an Owncast message
|
||||
- `.me`: third-party action
|
||||
- `.broadcaster`: a message that comes from the Twitch/YouTube channel owner
|
||||
@@ -265,7 +281,11 @@ Additionally, YouTube does not have its own chat emote API as of now, so the emo
|
||||
|
||||
### Owncast (internal)
|
||||
|
||||
Work in progress. Need additional testing. Basic messages work as expected.
|
||||
Work in progress. Needs additional testing. Basic messages work as expected.
|
||||
|
||||
### Kick (internal)
|
||||
|
||||
Work in progress. Relies on an API that hasn't been officially released yet. Needs additional testing. Basic messages work as expected.
|
||||
|
||||
## FAQ
|
||||
|
||||
@@ -291,11 +311,11 @@ Everyone is free to send their suggestions and patches. Once you get a Codeberg
|
||||
|
||||
Yes, due to the way Go links its networking client and server code and everything else statically (where possible). On Linux, you may try using GCC Go instead to achieve fully dynamic linking. Keep in mind that GCC Go is not fully supported yet, and if you come to our issue tracker with an issue that's only reproducible with GCC Go, it's less likely to be resolved.
|
||||
|
||||
### Beyond Twitch, YouTube and Owncast, are there any other livestreaming platforms that you plan to support internally?
|
||||
### Beyond Twitch, YouTube, Owncast and Kick, are there any other livestreaming platforms that you plan to support internally?
|
||||
|
||||
Sure, anything can happen. The problem with adding a new platform support, as always, is finding enough time to study the API and enough people that would find this support valuable. For example, with enough demand, Kick and Trovo support are also likely to be added.
|
||||
Sure, anything can happen. The problem with adding a new platform support, as always, is finding enough time to study the API and enough people that would find this support valuable. For example, with enough demand, Trovo support is also likely to be added, however, it would require significantly more time and effort that could be leveraged for improving e.g. YouTube backend that would have significantly larger impact.
|
||||
|
||||
Besides Twitch, YouTube and Owncast, however, your best bet would be to create an **external** backend for the platform you're interested in, and then incorporate it into this repo in the `/external` directory. When the backend is mature enough, we can always sit and think about how to convert it into an internal one to be distributed inside the StreamGoose binary.
|
||||
Besides the main four, anyway, your best bet would be to create an **external** backend for the platform you're interested in (again, you could use any programming language you want), and then incorporate it into this repo in the `/external` directory. When the backend is mature enough, we can always sit and think about how to convert it into an internal one to be distributed inside the StreamGoose binary.
|
||||
|
||||
|
||||
## Credits
|
||||
|
||||
Reference in New Issue
Block a user