An open API service indexing awesome lists of open source software.

https://github.com/jakubn11/kick-emotes

Safari userscript that adds BetterTTV, 7TV, and FrankerFaceZ emotes to Kick.com chat
https://github.com/jakubn11/kick-emotes

7tv animated-emotes autocomplete betterttv bttv chat emotes ffz frankerfacez kick kick-emotes safari tampermonkey userscript violentmonkey

Last synced: 23 days ago
JSON representation

Safari userscript that adds BetterTTV, 7TV, and FrankerFaceZ emotes to Kick.com chat

Awesome Lists containing this project

README

          

Kick Third-Party Emotes

Kick Third-Party Emotes


BetterTTV, 7TV, and FrankerFaceZ emotes directly in Kick.com chat.

Animated GIFs · Zero-width overlays · Autocomplete · Native emote picker tab.


Userscript
 
License GPLv3
 
Tested on Safari
 
Providers
 
Animated emotes
 
Autocomplete

## Features

- Emotes from three providers rendered inline in chat messages
- Per-channel emote sets loaded automatically on navigation
- Animated emote support (GIF)
- Zero-width 7TV emote overlays
- Hover tooltips showing emote name and provider
- Autocomplete popup when typing (prefix match, keyboard navigation)
- Third-party emote tab inside Kick's native emote picker with search, animated emotes, and per-provider **Load more**
- Stale-while-revalidate local cache per provider to show repeat-visit emotes immediately while refreshing in the background
- Works with Kick's SPA routing — no page reload needed when switching channels

## Requirements

The script works with any userscript manager (Tampermonkey, Violentmonkey, Greasemonkey, ScriptCat or other) but is developed and tested on **Safari + Userscripts** only. Other browsers and managers may work but are untested.

**Recommended setup:**
- macOS with Safari
- [Userscripts](https://apps.apple.com/app/userscripts/id1463298887) extension (free, by Justin Wasack)

## Installation

See [INSTALL.md](INSTALL.md) for step-by-step instructions.

**Quick install:** open the script on **[Greasy Fork](https://greasyfork.org/cs/scripts/578174-kick-third-party-emotes)** and use the install button if your userscript manager supports web installs.

**Safari (recommended):**
1. Install the **[Userscripts](https://apps.apple.com/app/userscripts/id1463298887)** extension from the Mac App Store
2. Configure a scripts folder in the extension settings
3. Copy `kick-emotes.user.js` into that folder

**Other browsers (untested):**
1. Install [Tampermonkey](https://www.tampermonkey.net), [Violentmonkey](https://violentmonkey.github.io), [Greasemonkey](https://www.greasespot.net), [ScriptCat](https://scriptcat.org) or other
2. Open `kick-emotes.user.js` and paste it into a new script, or drag the file into the extension dashboard

See [INSTALL.md](INSTALL.md) for full per-manager steps.

## Providers

| Provider | Global emotes | Channel emotes |
|----------|--------------|----------------|
| BetterTTV | ~2 000 | Kick + Twitch fallback |
| 7TV | ~1 000 | Kick + Twitch fallback |
| FrankerFaceZ | ~500 | Kick channel |

Provider failures are isolated — if one fails, the others still load.

## Usage

Open any Kick channel. Emotes load automatically and replace matching words in chat.

**Autocomplete:** start typing an emote name in the chat input to open the suggestion popup.

| Key | Action |
|-----|--------|
| ↑ / ↓ | Navigate suggestions |
| Tab | Insert selected emote (auto-inserts if only one match) |
| Esc | Close autocomplete |

**Emote picker:** open Kick's native emote picker and choose the **7TV+** tab to browse animated third-party emotes. The picker starts with 80 matches per provider for performance, then offers **Load more** per provider. Search narrows across all loaded emotes. Clicking an emote inserts its code into the chat input. Animated 7TV emotes show their frozen first frame in the picker and start animating when you hover them — this keeps the page responsive when browsing large emote sets.

## Troubleshooting

| Symptom | Fix |
|---------|-----|
| No emotes appear | Open your browser's DevTools → Console and look for `[KickEmotes]` log lines. If absent, check that your userscript extension is enabled for kick.com. |
| Only global emotes load | The streamer may not have BTTV/7TV/FFZ configured for their channel. |
| Emotes stop working after a Kick update | Kick may have changed their chat DOM selectors. Open an issue with the relevant class names from the browser inspector. |
| Stale emotes after a script update | Clear the cache: `Object.keys(localStorage).filter(k => k.startsWith('kte_')).forEach(k => localStorage.removeItem(k))` |

## License

Licensed under the GNU General Public License v3.0. See [LICENSE](LICENSE).