Skip to content

KICK.com v3.2.1

Choose a tag to compare

@github-actions github-actions released this 17 Apr 13:28
· 1 commit to main since this release

3.2.1

  • fix: chat font size setting had no effect — Kodi's libass ignores HTML .
    Switched to ASS \fs override tag which is properly honored.
  • change: font size values rescaled to 20/25/30/40/60 (ASS PlayResY-relative units).

3.2.0

  • feat: chat font size setting (Tiny/Small/Medium/Large/Huge, 8-16pt)
  • feat: font-size change applies live during playback — no stream restart needed
  • feat: already-displayed chat lines are re-rendered with the new size immediately
  • chore: new strings #30106–#30111 added to all 32 locales (en/cs/pl filled)

3.1.2

  • feat: chat settings now apply live during playback — no need to restart stream
    • changing chat position (left/center/right) rewrites overlay with new alignment
    • toggling chat overlay off stops it immediately; toggling on starts it mid-stream
  • chore: main.py always hands off live slug to service (enables mid-playback toggle)

3.1.1

  • fix: chat position setting now takes effect — each session writes a unique SRT
    filename so Kodi re-parses the {\an1|an2|an3} override tag instead of caching
    the first-loaded track's position
  • fix: skip initial empty SRT write (was causing Kodi to cache 'no override')
  • chore: log selected chat position on overlay start (aids debugging)

3.1.0

  • refactor: shared HTTP layer in resources/lib/http.py (plugin + service reuse it)
  • refactor: helpers in resources/lib/utils.py (clean_title, pagination, followed store)
  • feat: user-facing error notification on network/API failure (distinct from empty list)
  • feat: chat position setting (left/center/right), visible only when chat overlay is on
  • fix: chat SRT cue extended to 99:59:59 — survives 24/7 streams
  • fix: ICON and FOLLOWED_FILE use os.path.join (no more relative path tricks)
  • fix: live list InfoTag title/plot no longer contains viewer count (label-only)
  • chore: removed duplicate _api_get/_pub_get implementations
  • chore: new strings #30059, #30101-30103, #30105 added to all 32 locales (en/cs/pl filled)

3.0.2

  • fix: follow/unfollow context menu now available on channel page
  • fix: followed list passes channel name/pic to toggle action (keeps metadata)
  • fix: WebSocket handshake reads in chunks with explicit socket timeout
  • fix: ping frames handled iteratively (no recursion) + proactive pusher:ping keepalive every 60s
  • refactor: simplified live() language + pagination URL logic

3.0.1

  • fix: chat overlay moved to background service — fixes CPythonInvoker 5s kill on Android
  • fix: plugin script returns immediately after setResolvedUrl

3.0.0

  • feat: real-time chat overlay via Pusher WebSocket (replaces REST polling)
  • feat: stdlib-only WebSocket client (no external dependencies)
  • perf: instant message delivery instead of 1s polling interval

2.7.0

  • feat: live chat overlay (SRT subtitles, toggle in settings)
  • feat: per-IP rate limiting on worker proxy

2.6.12

  • fix: settings section/category/group structure — settings dialog now shows correctly
  • fix: lang spinner uses numeric string IDs (#30060-30100) — no crash on Kodi 21
  • fix: option values as element text content, not value= attribute
  • fix: missing blank lines in all 32 PO files — translations #30047+ now work
  • fix: "Followed channels" and other new strings now translate correctly
  • fix: lang setting read on every /live call — change takes effect immediately
  • feat: All languages option added (default), quality toggle

2.6.11

  • fix: settings now visible - proper section/category/group structure required by Kodi 19+
  • feat: language filter has "All languages" option (default), shows all streams
  • feat: stream quality changed from dropdown to toggle (off=automatic, on=ask every time)
  • strings #30054 updated, #30057 (All languages) added to all 32 language files

2.6.10

  • fix: xbmc.python dependency corrected to 3.0.0 (3.1.0 does not exist, caused install failure)

2.6.9

  • fix: settings visible (flat XML, no category/group wrappers)
  • feat: stream quality setting - Automatic or Ask every time
  • chore: Kodi 19+ (xbmc.python 3.0.0)
  • strings #30054-30056 added to all 32 language files

2.6.8

  • fix: settings items now visible in basic view (level=0)
  • fix: search results show LIVE badge, profile pic and follow/unfollow context menu
  • feat: followed channels list shows LIVE badge (one API call for all slugs)

2.6.7

  • feat: followed channels - new home menu item "Followed channels"
  • feat: long press (context menu) on live channel to follow/unfollow
  • stored in addon profile as followed.json, persists across sessions
  • strings #30048-30053 added to all 32 language files

2.6.6

  • feat: translations added for 29 languages (de, fr, es, it, pt_pt, pt_br, nl, ru, tr, ja, ko,
    zh_cn, ar, hu, ro, sk, bg, uk, sv, fi, el, id, vi, th, he, fa, hi, sr, ca)

2.6.5

  • feat: language picker moved to addon Settings (Content tab)
  • settings.xml upgraded to Kodi 19 format (version="2")
  • removed /language route and main menu language picker item
  • added string #30047 (Content) for settings category label

2.6.4

  • fix: call _end_dir() before return when channel not found (prevents Kodi loading freeze)
  • fix: localize InputStream Helper not installed message (#30046)

2.6.3

  • fix: all notification messages localized via strings.po (no hardcoded Czech strings)
  • added strings #30042-30045 for cs_cz, en_gb, pl_pl

2.6.2

  • fix: show error notification when channel slug not found
  • fix: show info notification when VODs list is empty
  • fix: show info notification when clips list is empty
  • fix: show error notification when stream is unavailable (offline / API error)

2.6.1

  • fix: VOD playback broken - proxy returns 'source' field, not 'url'

2.6.0

  • fix: live streams limit increased to 100 (API maximum, no cursor pagination)
  • fix: duplicate colon in language label ("Jazyk: : english" → "Jazyk: english")

2.5.9

  • polish: strip whitespace from search query input
  • polish: rename internal variable for clarity

2.5.8

  • fix: xbmcgui.Window instead of xbmc.Window (crash on startup)

2.5.7

  • fix: clean_title uses comprehensive regex instead of fragmented unicodedata checks
  • fix: live() cursor pagination uses parse_qs/urlencode (consistent with subcategories)
  • fix: list_vods uses path param /vods/ (consistent with list_clips)
  • fix: remove deprecated inputstream.adaptive.manifest_update_parameter
  • fix: traceback import moved to top-level imports

2.5.6

  • fix: replace deprecated setInfo() with Kodi 19+ getVideoInfoTag() API
  • fix: remove dead /categories back-compat route

2.5.5

  • fix: token cached in Kodi Window property (persists across plugin invocations)
  • fix: LIVE badge uses clean separator instead of whitespace padding
  • fix: profile picture shown as icon in live list
  • fix: _resolve_stream uses WORKER_BASE constant instead of hardcoded string

2.5.4

  • refactor: move imports to top, rename session variable
  • fix: app token auto-refresh on 401 (no more Kodi restart needed)
  • fix: askqual setting read at runtime instead of import time
  • fix: profile picture used for VODs/Clips items
  • fix: subcategories URL parsing via urllib instead of string split
  • fix: avoid double HTTP call in stream resolver

2.5.3

  • fix: routing strip trailing slash (favourites from Kodi broke with /channel/slug/)
  • fix: remove custom add_favourite, rely on Kodi built-in (no more duplicates)

2.5.2

  • fix: hide Kodi duplicate add-to-favourites (replaceItems=True)

2.5.1

  • fix: favourites use channel slug as stable title instead of live stream title

2.5.0

  • refactor: remove OAuth PKCE auth server from worker.js (login not used)
  • refactor: remove dead constants (API_BASE/V1/V2), unused functions (title_with_viewers, add_header), unused params (fanart, contextmenu)

2.4.4

  • chore: remove fanart background image
  • chore: fix log prefix KICKCOMMB -> KICK
  • chore: update addon.xml metadata, README, remove dead strings from all locales

2.4.3

  • fix: remove duplicate 'add to favourites' — rely on Kodi built-in, removed custom implementation

2.4.2

  • fix: favourites type changed from media to window so channel folders open correctly in Kodi

2.4.1

  • refactor: remove dead auth/login/follow code (~378 lines), fix VOD proxy URL, clean imports

2.4.0

  • fix: live channels and search broken by Kick WAF blocking direct HTTP requests
  • added Cloudflare Worker proxy (kodi.zales.dev) to bypass WAF
  • migrated to public API (api.kick.com/public/v1+v2) with client_credentials token

2.3.3

  • remove login from settings UI (not needed, was causing confusion)

2.3.2

  • add to Kodi favourites context menu on channels and live streams
  • login removed from main menu (not needed for browsing)
  • fixed followed channels showing own channel instead of subscriptions

2.3.1

  • fixed followed channels not loading with Kick OAuth token
  • handle both internal and developer API response formats

2.3.0

  • Google login replaced with native Kick OAuth 2.1 PKCE flow
  • no more bookmarklet or script paste — standard Kick login page
  • Kodi repository directory listing fixed (was showing blank page)

2.2.1

  • split javascript: prefix — user types it manually to bypass browser security

2.0.0

  • new Kick.com logo icon
  • Kodi 21 repository support with schema
  • HTTP Range request support for proper zip install
  • expanded language list from 16 to 41 (matches current kick.com UI)
  • fixed BBCode tag ordering in LIVE badge
  • fixed apply_auth() returning True on JSON parse failure
  • fixed _fetch_xsrf() missing timeout and error handling
  • fixed category URL encoding with quote_plus
  • fixed cloudscraper UA being overwritten
  • removed unused Host header and urlparse import

1.7

  • expanded language list from 16 to 41 (matches current kick.com UI)

  • fixed BBCode tag ordering in LIVE badge

  • fixed apply_auth() returning True on JSON parse failure

  • fixed _fetch_xsrf() missing timeout and error handling

  • fixed category/subcategory slug missing URL encoding

  • fixed cloudscraper UA being overwritten by okhttp UA

  • removed Host header from HLS manifest headers (CDN compatibility)

  • extracted stream User-Agent to UA_STREAM constant

  • removed unused urlparse import

  • bundled cloudscraper to bypass Cloudflare bot protection

1.5

  • fixed channel VODs crashing (was passing 100KB URL parameter, now re-fetches by slug)
  • removed unnecessary XSRF fetch from search

1.4

  • replaced cloudscraper with standard requests (kick.com API does not require bypass)
  • removed all bundled libraries, plugin now only depends on Kodi system modules

1.3

  • code refactoring and cleanup
  • removed bundled requests/urllib3 (now uses Kodi system requests)
  • renamed all identifiers to English
  • added Czech language translation
  • fixed several bugs (empty search directory, login XSRF handling, follow notification)
  • removed unused imports and dead code

1.2

  • select streams quality

1.1

  • select streams language

1.0

  • initial version