# Installation ## Download Click the button below to download the latest stable version of Speaker.bot. You should end up with a regular `.zip` file. ::card --- icon: i-mdi-download target: _blank title: Speaker.bot to: https://streamer.bot/api/releases/twitchspeaker/latest/download --- Download the latest stable version of Speaker.bot :: ## Extract Extract the `.zip` archive to your desired location. ::note Speaker.bot is a **portable** application, no further installation is needed! :: ## Run Open the directory where you chose to extract the archive and execute `Speaker.bot.exe`! ::success Speaker.bot should now be running! :: # Account Setup ::navigate Navigate to **Settings > Accounts** in Speaker.bot :: Here you will find account configuration settings for supported integrations. ## Integrations ### Twitch The [Twitch](https://twitch.tv){rel=""nofollow""} integration is **required** to perform TTS on any live stream events. ::success Sign in to your Twitch account via OAuth :: | Supported Features | | ------------------------------------------------- | | Chat | | Events (follows, subscriptions, gift bombs, etc.) | | Channel Point Rewards | ### Streamer.bot The [Streamer.bot](https://streamer.bot){rel=""nofollow""} integration allows you to authenticate with the Streamer.bot website for access to `beta` and `alpha` updates. ::success Sign in to your Streamer.bot account via OAuth :: | Supported Features | | ------------------------------------- | | Automatic Speaker.bot `beta` updates | | Automatic Speaker.bot `alpha` updates | ### Streamlabs The [Streamlabs](https://stremalabs.com){rel=""nofollow""} integration allows you to connect with Streamlabs for donation events. ::warning The Streamlabs integration requires an API token for authentication rather than OAuth. :: 1. Navigate to the [API Settings](https://streamlabs.com/dashboard#/settings/api-settings){rel=""nofollow""} page in Streamlabs dashboard 2. Continue to the `API Tokens` tab 3. Copy your `API Access Token` 4. Paste your token into the `Token` field in Speaker.bot Streamlabs account settings. | Supported Features | | ------------------ | | Donation Events | ### StreamElements The [StreamElements](https://streamelements.com){rel=""nofollow""} integration allows you to connect with StreamElements for tip and merch events. ::success Sign in to your StreamElements account via OAuth :: | Supported Features | | ------------------ | | Tip Events | | Merch Events | # Speech Engine Setup ::navigate Navigate to **Settings > Speech Engines** in Speaker.bot - Here you will be able to configure any of the supported TTS engines in Speaker.bot and view a list of available voices for all engines that have been set up. :: ::tip **To enable an engine**, click the `Add` button and pick the desired engine type from the dropdown :: | Speech Engine | Type | Description | | --------------------------------------------------------------------------------------------------------------------------- | ---- | ----------------------------------------- | | SAPI5 | | Microsoft Speech API - Native Windows TTS | | [Google Cloud](https://cloud.google.com/text-to-speech/){rel=""nofollow""} | | Cloud-based TTS with WaveNet voices | | [Azure](https://azure.microsoft.com/en-us/products/cognitive-services/text-to-speech/#overview){rel=""nofollow""} | | Microsoft's cloud TTS platform | | [Amazon Polly](https://aws.amazon.com/polly/){rel=""nofollow""} | | AWS cloud TTS service | | [Watson](https://www.ibm.com/cloud/watson-text-to-speech){rel=""nofollow""} | | IBM's cloud TTS platform | | [UberDuck](https://uberduck.ai){rel=""nofollow""} | | AI voiceover and TTS platform | | [TTS Monster](https://tts.monster){rel=""nofollow""} | | AI-based TTS for streamers | | [Acapela](https://www.acapela-cloud.com){rel=""nofollow""} | | Cloud TTS by Acapela Group | | [CereProc](https://www.cereproc.com/en/products/cloud){rel=""nofollow""} | | CereVoice Cloud TTS platform | ## SAPI5 ::list{type="success"} - No account required :: Microsoft Speech API (SAPI) is the native API for Windows. ## Google Cloud ::list{type="warning"} - Paid API :: ::list{type="primary"} - Free Trial :: [Google Cloud TTS](https://cloud.google.com/text-to-speech/){rel=""nofollow""} is a paid cloud text to speech platform by Google. 1. Enable the `Cloud Text-to-Speech API` in your [Google Cloud Console](https://console.cloud.google.com/apis/library/texttospeech.googleapis.com){rel=""nofollow""} 2. Navigate to your [API Credentials](https://console.cloud.google.com/apis/credentials){rel=""nofollow""} page. 3. Click the `Create Credentials` button, then select `Service Account`. 4. Enter any name you want, such as `speakerbot-tts`, then click `Create & Continue` - When prompted to grant additional roles, skip this step by clicking `Continue` again. - When prompted to grant additional users access, skip this step by clicking `Done` 5. You should now be on the [Service Accounts](https://console.cloud.google.com/iam-admin/serviceaccounts){rel=""nofollow""}page within Google Cloud Console. - Click the `Actions` dropdown for the service account you just created - Select `Manage Keys` 6. Click `Add Key` and select `Create New Key` 7. In the modal dialog, select `JSON` and click `Create` - The JSON file should be automatically downloaded by your web browser - Save this file in a safe location, for Speaker.bot to access 8. In Speaker.bot Google Cloud settings, browse and select the JSON file you just saved. ::callout --- type: warning --- #summary `Google Cloud Services` is a paid service, so **stay aware** of your usage. #content - **Google Cloud Text To Speech Free Limits** - Standard (non-WaveNet) voices up to 4 million characters per month, and WaveNet voices are up to 1 million characters per month. - Character counts include SSML tags, which the application **does use**, so, you can't go by just the normal text alone. - WaveNet and non-WaveNet voices are indicated in the voice selections. :: ## Azure ::list{type="warning"} - Paid API :: ::list{type="success"} - [Free Tier](https://azure.microsoft.com/en-us/pricing/details/cognitive-services/speech-services/){rel=""nofollow""} :: [Azure TTS](https://azure.microsoft.com/en-us/products/cognitive-services/text-to-speech/#overview){rel=""nofollow""} is a paid cloud text to speech platform by Microsoft. ## Amazon Polly ::list{type="warning"} - Paid API :: ::list{type="success"} - [Free Tier](https://aws.amazon.com/polly/pricing/){rel=""nofollow""} :: [Amazon Polly](https://aws.amazon.com/polly/){rel=""nofollow""} is a paid cloud text to speech platform by Amazon Web Services. ## Watson ::list{type="warning"} - Paid API :: ::list{type="success"} - [Free Tier](https://www.ibm.com/cloud/watson-text-to-speech/pricing){rel=""nofollow""} :: [Watson TTS](https://www.ibm.com/cloud/watson-text-to-speech){rel=""nofollow""} is a paid cloud text to speech platform by IBM. ## UberDuck ::list{type="warning"} - Paid API :: [UberDuck](https://uberduck.ai){rel=""nofollow""} is a paid cloud text to speech platform with AI voiceover support. ## TTS Monster ::list{type="warning"} - Paid API :: ::list{type="success"} - Free Tier :: [TTS Monster](https://tts.monster){rel=""nofollow""} is a paid, AI based, text to speech platform for streamers. When adding TTS Monster, copy your overlay url into the configuration window, the necessary information will be parsed from this. ## Acapela ::list{type="warning"} - Paid API :: [Acapela Cloud](https://www.acapela-cloud.com){rel=""nofollow""} is a paid cloud text to speech platform by Acapela Group. ## CereProc ::list{type="warning"} - Paid API :: [CereVoice Cloud](https://www.cereproc.com/en/products/cloud){rel=""nofollow""} is a paid cloud text to speech platform by CereProc. ## ElevenLabs.io ::list{type="warning"} - Paid API :: [ElevenLabs.io](https://elevenlabs.io/){rel=""nofollow""} is mainly a paid cloud based AI text to speech platform. 1. Create an account at [ElevenLabs.io](https://elevenlabs.io/){rel=""nofollow""} 2. Click your profile icon, top right 3. Click Profile 4. Copy your API Key to use in Speaker.bot A free account allows for upto 10,000 characters per month. # Quick Start Make sure you've completed installation of Speaker.bot, initial account setup, and speech engine configuration before proceeding with this guide. :read-more{to="https://speaker.bot/get-started/installation"} :read-more{to="https://speaker.bot/get-started/accounts"} :read-more{to="https://speaker.bot/get-started/speech-engines"} ::steps{level="2"} ## Create a Voice Alias :::navigate Navigate to **Settings > Voice Aliases** in Speaker.bot ::: Enter a `Name` for your alias and select your desired output device. For the purposes of this guide, I recommend leaving the output device set to `Application Default`, which will use your current default audio output device. :::success `Test Speak` at the bottom of the view should now successfully speak the test message. ::: ## Enable Global TTS :::navigate Navigate to **Settings > General** in Speaker.bot ::: 1. Ensure the `Enabled`checkbox is checked. - This toggles the TTS engine on or off globally. 2. Select a `Default Voice Alias` - Choose the voice alias you created in the previous steps ## Test TTS from Twitch **Your Speaker.bot instance should now be ready to speak commands from Twitch chat!** 1. Open Twitch Chat for the account you authenticated with Speaker.bot 2. Enter the command `!say test` :copy-button{content="!say test"} :::success If everything is working, Speaker.bot should have spoken "Test"! ::: :: # Chat Commands ## Default Commands ::tip The following commands are made available by Speaker.bot out of the box! :: | Name | Description | | :----------------------------------------- | :------------------------------------------------------------------------------------------------------------------------------------ | | `!tts status` | Get the current Speaker.bot application status. | | `!tts voices` | How many voices (and by type) are available. | | `!tts pause/resume` | Pause or resume the TTS event queue. | | `!tts clear` | Clear all pending events in the TTS event queue. | | `!tts stop` | If TTS is currently speaking, stop *only* the current speech. | | `!tts mode [all|command]` | Toggle between needing a command to speak and saying everything. | | `!tts commands` | List all available custom commands. | | `!tts [off|disable]` | Disable the TTS engine. | | `!tts [on|enable]` | Enable the TTS engine (if it has been disabled). | | `!tts ignore [add|del] [username]` | Sets the ignore status of the specified user. | | `!tts ignored` | List currently ignored users. | | `!tts reg [add|del] [username]` | Add or remove user from being a regular. | | `!tts events [on|off]` | Toggle speaking of all events (subs, cheer, etc). | | `!tts random reset [username]` | Resets a user back to there default voice, typically used if sticky random is enabled. | | `!tts set nickname [username] [nickname]` | Assigns a nickname to be said when enabled in the bot | | `!tts set sticky [on|off]` | Sets the sticky mode, if users are set to random, there first spoken voice will stick for the duration, unless reset using the above. | | `!tts assign last [username]` | Will assign the last used voice to the user specified. | | `!tts [about|aboot]` | Sends to chat the information about your TwitchSpeaker instance. | ## Custom Commands ::tip Custom commands allow you to create your own TTS commands with specific voices and permission settings. - For example, a `!shoutout` command that uses a loud, energetic voice and is only available to moderators. :: ### Configuration ::navigate Navigate to the **Custom Commands** tab in Speaker.bot :: You can create a custom command by filling out the fields detailed below, then clicking the `Add` button. ::field-group :::field{name="Command" type="Text"} The text you want to use to trigger this command. :br Example: `!say` ::: :::field{name="Voice Alias" type="Select"} Select the voice to use with this command. ::: :::field{name="Permissions" type="Checkbox Group"} Restrict this command to specific Twitch user roles. ::: :: --- ::note To modify or delete an existing command, select it from the list, make your changes, then click `Update` or `Delete`. :: # Events ::navigate Navigate to the **Events** tab in Speaker.bot :: ## Global Event Settings ::field-group :::field{name="Voice Alias"} By default, the Speaker.bot voice alias found in `Settings -> General` will be used for all TTS messages. :br This setting allows you to override that alias for all event messages. ::: :::field{name="Enabled"} Toggle to enable or disable all event messages globally. ::: :: ## Per-Event Settings ::tip All incoming events can be configured with **multiple** TTS messages. :: Each event supports the following configuration options: ::field-group :::field{name="Message" type="Text"} The TTS message to be spoken when the event is triggered. ::::tip [Variables](https://speaker.bot/#variables) are supported in event messages. :::: ::: :::field{name="Weight" type="Number"} When an event contains multiple potential message responses, Speaker.bot will choose an event at random. :br By modifying the `Weight` attribute, you can increase the probability of specific messages being selected. ::: :::field{name="Enabled" type="Toggle"} Enable or disable this specific event message. ::: :::field{name="Event States" type="Checkbox Group"} `Event States` allow you to quickly enable or disable specific events from being spoken. :br You can also configure minimum requirements for `Raid Viewers`, `Cheers`, and `Donations` to be spoken. ::: :: ## Variables ::tip To use a variable in a TTS response, surround the variable name with `%`, e.g. `%name%`{.shiki,shiki-themes,vesper lang="cs"} - Full Example: `Thank you, %name% for donating %bits% bits!`{.shiki,shiki-themes,vesper lang="cs"} :: The following variables are available in the `Message` field: | Name | Description | | -----------: | :------------------------------------------------------------------------ | | `name` | Say the name of the user who triggered the event | | `level` | Say the current level of a Hype Train | | `gift` | Say the amount of gift subs given to the community | | `subtier` | Say the tier of the subscription | | `title` | Say the title of the channel point reward redeemed | | `cost` | Say the cost of the channel point redemption that has been triggered | | `bits` | Say the number of bits cheered | | `amount` | Say the amount bits / money / channel points used or donated | | `percent` | Say the percentage of completion of a hype train or a community goal etc. | | `currency` | Say the currency used in the donation message | | `tier` | Say the tier of the Subscription gifted | | `recipient` | Say who received a gift sub | | `cumulative` | Say how long a user has been subscribed to the channel | | `message` | Say the text that is pass through with a sub, resub or donation | | `input` | Say the text that is pass along a channel point reward | # General Settings ::navigate Navigate to **Settings > General** in Speaker.bot :: ## Instance Information ### Identifier Unique ID for this instance. ::warning Only reset this field if you know what you are doing. :: ### Name - Type: `Text` - Default: `Speaker.bot` or `TwitchSpeaker` Enter any name you want for your instance. ## Enabled Global toggle for the TTS engine. ## Allow Moderator Whispers Enable this option to allow your moderators to whipster `!tts` commands to your Twitch account and have them spoken by TTS. ## Log Level This will determine the level of logs that are output to the `logs` directory. ::note When requesting support, it is best to set this to `Verbose` to get highest level of detail in your logs :: ## Audio Output Device Select the default audio device for TTS to be output to. ::note This will be represented as the `Application Default` option within voice profiles, where you can also override output on a per-profile basis. :: ## Application Volume Set the default volume level for all TTS output. ## Save TTS Select a folder to save all output TTS to `.wav` files. ## Default Aliases ### Default Voice Alias Select the default voice alias for all spoken TTS messages. ### Highlight Voice Override Toggle usage of the [Highlight Voice Alias](https://speaker.bot/#highlight-voice-alias) ### Highlight Voice Alias Select a specific voice alias to use for highlights / mentions. # Ignore Profiles ::navigate Navigate to **Settings > Ignored Voices / Locales** in Speaker.bot :: Create saved profiles which allow you to exclude specific voices and/or locales from random voice selection. ::list{type="warning"} - To begin editing, you must first enter a `Name` for your new profile, and then click `New` :: To toggle voices and/or locales between available and ignored status, simply double click them within their respective list panes. ::list{type="success"} By configuring multiple profiles, you can easily switch between different sets of random voice selections. :: # Speaking Options ::navigate Navigate to **Settings > Speaking Options** in Speaker.bot :: ## Speaking Options - `Say Everything` - Enable this option to send all chat messages through TTS - You can exclude specific users by marking them as `ignored` in [User Settings](https://speaker.bot/guide/config/users) - When disabled, TTS can still be invoked by using [Chat Commands](https://speaker.bot/guide/usage/commands) such as `!say` - `Say Username` - Enable this option to also speak the username of the user who sent the message - `User Said Prefix` - Change the prefix included with messages when username is included in TTS - Default: `said` - Example: `SomeUser123 said some message` - `Sticky Random Voice` - Enable this option to stick a user to the first randomly assigned voice they receive. - `Allowed Forced` - Allow forced TTS messages - `Only say username if previous was different` - Enable this option to prevent username from being spoken on subsequent messages from the same user. - `Replace %name% with nickname if available` - Enable this option to utiize custom nicknames configured in [User Settings](https://speaker.bot/guide/config/users) ## Stop/Skip Stop any currently speaking TTS, and skip any queued TTS for a user when any of the selected events occur: - `Message Deleted` - `User Timed Out` - `User Banned` ## Command Options - `Silence Command Output` - Enable this option to silence TTS for configured [TTS Speaking Commands](https://speaker.bot/#tts-speaking-commands) such as `!say` ## Permissions Global permissions settings for TTS access. - Moderators - Allow all Twitch moderators to use TTS - Subscribers - Allow all Twitch subscribers to use TTS - VIP's - Allow all Twitch VIP's to use TTS - Regulars - Allow regulars to use TTS, can be configured in [User Settings](https://speaker.bot/guide/config/users) - Everyone - Allow everyone to use TTS ## Emotes Ignore emotes from spoken TTS for all of the selected emote sources: - Ignore Twitch Emotes - Ignore BTTV Emotes - Ignore FFZ Emotes - Ignore 7TV Emotes - Ignore Cheermotes Emotes Override the previous ignore settings and allow **one** instance of each emote to be spoken: - Allow first emote ## TTS Speaking Commands All commands configured here will function the same as the default `!say` and `!"` commands. ## Ignored Prefixes Enable this toggle to ignore messages beginning with any configured prefixes. - Ignore text prefixed with # Replacement Settings ::navigate Navigate to **Settings > Replacement** in Speaker.bot :: ## Bad Word Filter The bad word filter allows you to automatically filter any configured words or phrases from being spoken by TTS. ## Regex Replacement Utilize regular expressions to modify messages before they are spoken. ::list{type="warning"} - **Do not abuse this functionality.** - With TTS, you are giving your viewers a voice, and this functionality gives you the power to put words in people's mouths. :: # User Settings ::navigate Navigate to **Settings > Users** in Speaker.bot :: Here you can modify TTS settings on a per-user basis. To begin configuration, select any viewer from the left pane. ::warning Uncheck `Hide Not Present` to see any users ever detected by Speaker.bot, including offline users. :: ## Voice Alias Set a specific voice alias for the selected user. This will override the default global voice. ## Nickname Set a custom nickname for the selected user. This will override the user's username with the entered name whenever spoken by TTS. ## Toggles ### Ignored Ignore this user globally from TTS. ### Forced Force all chat messages by this user to be spoken by TTS. ### Regular Set the user as a regular. Useful if you are utilizing Speaker.bot's permissions for `Regulars` in other parts of the application. ### Subscribed ::danger Read only checkbox :: Will be checked if the user is a Twitch Subscriber. # WebSocket API ## Configuration ::list{type="info"} - Navigate to `Settings -> WebSocket Server` in Speaker.bot :: #### `Auto Start` - Type: `Boolean`{.shiki,shiki-themes,vesper lang="ts"} - Default: `false`{.shiki,shiki-themes,vesper lang="ts"} Enable this flag to automatically start the `WebSocket Server` when Speaker.bot is launched. If this is not enabled, you must manually click the `Start Server` button any time you want to enable WebSocket connectivity. #### `Address` - Type: `String`{.shiki,shiki-themes,vesper lang="ts"} - Default: `127.0.0.1`{.shiki,shiki-themes,vesper lang="ts"} Change the `WebSocket Server` host address. This can be useful if you want to expose the WebSocket server to additional machines on your local network, or even over the internet. #### `Port` - Type: `Number`{.shiki,shiki-themes,vesper lang="ts"} - Default: `7680`{.shiki,shiki-themes,vesper lang="ts"} Change the `WebSocket Server` port. It is not recommended to change this unless you have another service using this port or know what you are doing. #### `Endpoint` - Type: `String`{.shiki,shiki-themes,vesper lang="ts"} - Default: `/`{.shiki,shiki-themes,vesper lang="ts"} Change the `WebSocket Server` endpoint. This will change the URL endpoint used to connect to the server, e.g. `http://127.0.0.1/myendpoint` ## Request Format All `WebSocket Server` requests follow a similar format, which is also used by [Streamer.bot](https://streamer.bot){rel=""nofollow""}. ```json [Request Format] { "id": "", "request": "" } ``` #### `id` - Type: `String`{.shiki,shiki-themes,vesper lang="ts"} Any identifier or nonce you wish to use to identify your request. #### `request` - Type: `String`{.shiki,shiki-themes,vesper lang="ts"} The name of the supported request. ::tip All supported requests are documented on the next page. :: # WebSocket Requests All `WebSocket Server` requests, outlined below, support the base [Request Format](https://speaker.bot/api/websocket#request-format) parameters. ## General ### `Speak` Speak the given message with the provided voice alias. ```json [Example] { "id": "", "request": "Speak", "voice": "EventVoice", "message": "This is a test message", "badWordFilter": true } ``` ### `Stop` If TTS is currently speaking, stop *only* the current speech. ```json [Example] { "id": "", "request": "Stop" } ``` ### `Enable` Enable the TTS engine (if it has been disabled) ```json [Example] { "id": "", "request": "Enable" } ``` ### `Disable` Disable the TTS engine ```json [Example] { "id": "", "request": "Disable" } ``` ### `Events` Enable or disable events being spoken. ```json [Example] { "id": "", "request": "Events", "state": "[on|off]", } ``` ### `Mode` Toggle the current speaking mode. ::warning If no commands are configured in your Speaker.bot instance, setting mode to `command` will return a failure response. :: ```json [Example] { "id": "", "request": "Mode", "mode": "[all|command]" } ``` ## Queue ### `Pause` Pause the TTS event queue ```json [Example] { "id": "", "request": "Pause" } ``` ### `Resume` Resume the TTS event queue ```json [Example] { "id": "", "request": "Resume" } ``` ### `Clear` Clear all pending events in the TTS event queue. ```json [Example] { "id": "", "request": "Clear" } ``` # UDP Interface ::tip [Streamer.bot](https://streamer.bot){rel=""nofollow""} utilizes the UDP interface for Speaker.bot interop :: ::warning The UDP interface is available on port `6669` and **cannot be changed**. :: There is no configuration needed to enable the UDP interface, it is available by default. Details on all supported UDP requests are available on the next page. # UDP Requests ## General ### `Speak` Speak the given message with the provided voice alias. ```json [Example] { "command": "speak", "id": "", "voice": "", "message": "" } ``` ### `Stop` If TTS is currently speaking, stop *only* the current speech. ```json [Example] { "command": "stop" } ``` ### `Enable` Enable the TTS engine (if it has been disabled) ```json [Example] { "command": "enable" } ``` The `on` command provides the same functionality as `enable` ```json [Example] { "command": "on" } ``` ### `Disable` Disable the TTS engine ```json [Example] { "command": "disable" } ``` The `off` command provides the same functionality as `disable` ```json [Example] { "command": "off" } ``` ### `Select Profile` Switch to the requested profile. To deselect any profile, you can pass `none` as the profile name. ```json [Example] { "command": "profile", "profile": "" } ``` ## Queue ### `Pause` Pause the TTS event queue ```json [Example] { "command": "pause" } ``` ### `Resume` Resume the TTS event queue ```json [Example] { "command": "resume" } ``` ### `Clear` Clear all pending events in the TTS event queue. ```json [Example] { "command": "clear" } ``` ## Events ### `On` Enable TTS for incoming events. Equivalent to selecting the `Enable` checkbox in the Speaker.bot application for a respective event. ```json [Example] { "command": "events", "value": "", "state": "on" } ``` ### `Off` Disable TTS for incoming events. Equivalent to deselecting the `Enable` checkbox in the Speaker.bot application for a respective event. ```json [Example] { "command": "events", "value": "", "state": "off" } ``` ## Users ### `Add Regular` Add a user to the regular users group. ```json [Example] { "command": "reg", "mode": "add", "user": "%user%", "id": "%userId%" } ``` ### `Remove Regular` Remove a user from the regular users group. ```json [Example] { "command": "reg", "mode": "del", "user": "%user%", "id": "%userId%" } ``` ### `Set Nickname` Set the nickname of a user. ```json [Example] { "command": "set", "method": "nickname", "username": "%user%", "nickname": "" } ``` ### `Assign Last Voice` Set the last random voice to be a user's permanent voice. An alias is created for the user with the assigned voice and settings applied to it. ```json [Example] { "command": "assign", "method": "last", "username": "%user%" ``` ### `Toggle Sticky Voice` When sticky mode is enabled, the first voice a user receieves will be "stuck" to them until it is reset. Enable sticky mode by passing `true` ```json [Example] { "command": "set", "method": "sticky", "value": true } ``` Disable sticky mode by passing `false` ```json [Example] { "command": "set", "method": "sticky", "value": false } ``` # Privacy Policy Speaker.bot and it's team take your privacy very seriously. Because this app uses the YouTube API any information you provide in the application during the Authorization process will be only used to generate your YouTube Live credentials. Speaker.bot does not store or share your YouTube Live credentials. A refresh token and access token are stored within the app's settings file that is located along side the application. This file, and the application are stored locally on your computer, and thus never transmitted outside of the application itself. Any other information regarding your YouTube account is only ever accessed and stored locally on your computer. Please see Google Privacy Policy, which Speaker.bot relies on. ## Information Speaker.bot collects Speaker.bot consists of two entities, the Speaker.bot application hereinafter referred to as application, and the Speaker.bot website hereinafter referred to as website. With respect to YouTube's API usage, the website performs no data collection, and data collection is solely isolated to the application on the local user's computer. The data that the application collects, consists of your access token and refresh token, stored in a configuration file locally alongside the application. During operation of the application, a user's name, and their ID are retained within a user file. The application collects this data directly from YouTube's API that services their Live Streaming service. ## Why Speaker.bot collects data The application consists of multiple data/configuration files, one of which is a user file, this file is used to provide rapid access lookup, as well as associating other data with a user. This other data can consist of internal information, such as, how many times a user used a specific chat command, when they were last present, and is not limited to the application only, as actions/code can utilize a user's ID to provide a lookup for storing data associated with the user. ## Sharing your information The application does not share data to any 3rd party entities, or to the website on it's own. With the customizability of the application, a user may, under their own guise, access their data in any manner they wish, and use it in any manner they wish; such as, when a YouTube Super Chat event occurs, the user's name in question could be shown as an alert on the broadcaster's stream; this functionality is not present by default, and requires a user to set this up themselves. # Terms of Service By using the YouTube (“Service") integration created for and/by Speaker.bot ( "We", "Us", "Our" ), you are agreeing to be bound by the following terms and conditions ("Terms of Service"). If the owner makes material changes to these Terms, we will post a notice in the official Speaker.bot Discord server, on our site before the changes are effective as well as posts on various social media platforms. Any new features that augment or enhance the current Service shall be subject to the Terms of Service. Continued use of the Service after any such changes shall constitute your consent to such changes. You must be 13 years or older to use this Service. You are responsible for maintaining the security of your account and specifically your refresh token. We cannot and will not be liable for any loss or damage from your failure to comply with this security obligation. Furthermore, you understand that you may access the service by connecting from within the Speaker.bot app. Any use of the integration is bound by these Terms of Service, YouTube's Terms of service, plus the following specific terms: You expressly understand and agree that we shall not be liable for any direct, indirect, incidental, special, consequential or exemplary damages, including but not limited to, damages for loss of profits, goodwill, use, data or other intangible losses, resulting from your use of the integration. Abuse or excessively frequent requests to YouTube Live API by modifying the integration code for your own use may result in the temporary or permanent suspension of your account's access to the integration. We reserve the right at any time to modify or discontinue, temporarily or permanently, your access to the integration (or any part thereof) with or without notice. You may not duplicate, copy, or reuse any portion of the integration code or concepts without express written permission from us. Your use of the Service is at your sole risk. The service is provided on an “as is” and “as available” basis. We do not warrant that (i) the service will meet your specific requirements, (ii) the service will be uninterrupted, timely, secure, or error-free, (iii) the results that may be obtained from the use of the service will be accurate or reliable, (iv) the quality of any products, services, information, or other material purchased or obtained by you through the service will meet your expectations, and (v) any errors in the Service will be corrected. You expressly understand and agree that we shall not be liable for any direct, indirect, incidental, special, consequential or exemplary damages, including but not limited to, damages for loss of profits, goodwill, use, data or other intangible losses. The failure to exercise or enforce any right or provision of the Terms of Service shall not constitute a waiver of such right or provision. Violation of any of the above stated terms can, and most likely will, result in the termination of your account. As the user, you agree to use the Service at your own risk and free Speaker.bot, it's developer and/or team members, free of any fault. At any time you wish to revoke this app's access, please follow the steps listed under Google Settings, detailed here. Questions about the above Terms of Service or the privacy policy below should be sent to .