A custom webOS app for watching Kick.com live streams and VODs on your LG TV. Built specifically for the LG 43LJ594V (webOS 3.9.0) and compatible with other webOS TVs.
This is a personal project built for my own use on my LG TV. The app was vibecoded with GitHub Copilot and I will not be maintaining it anymore.
If you want to improve it, fork it and build a better version! Or if you want to use the Kick.com API endpoints I discovered, feel free to use them in your own projects just don't spam anything.
- Live Stream Playback: Watch Kick.com streams in HLS format with HLS.js
- VOD Support: Browse and play the latest VODs
- Audio-Only Mode: Listen to streams with a black overlay (useful for radio/background listening)
- Stream Status Display: Shows live duration when streaming, or last live time when offline
- Automatic Stream Refresh: Periodically checks for new stream status
- Responsive Controls: Full remote control support with colored buttons
- Stable Playback: Multiple unmute mechanisms to ensure audio works
- No Flickering: Optimized for smooth, lag-free viewing on older TV hardware
- v1 (Original): Had compatibility issues with webOS 3.9.0, didn't work properly on my TV and had a other ui.
- v2 (Current): Complete rewrite with proper HLS.js integration, better performance
- OK Button: Start watching live stream and pause/play live/vods
- Red Button: Toggle audio-only mode (black overlay, video keeps playing)
- Green Button: Refresh stream status
- Square Button: Return to main menu
- Arrow Keys: Navigate buttons on main screen and skips 10 seconds in vods
- OK Button: Play selected VOD and pause/play vod/live
- Red Button: Toggle audio-only mode
- Yellow Button: Previous VOD (if is the most recent one will go to live)
- Blue Button: Next VOD
- Left Arrow: Skip back 10 seconds
- Right Arrow: Skip forward 10 seconds
- Square Button: Return to main menu
This app uses dynamic element ID extraction and class manipulation. Minification will break functionality. Always deploy the unminified version.
- HLS.js v1.4.10: For HLS stream playback with webOS 3.9.0 compatibility
- Kick.com API v2: For fetching stream data and VODs
- HTML5 Video: Native video player with custom controls
- Vanilla JavaScript: ES5 compatible (no frameworks or build tools)
The code heavily relies on:
- Element ID extraction:
document.getElementById('element-id') - CSS class manipulation:
.classList.add('hidden') - Dynamic screen switching via class names
- Event listener management on multiple elements
Minification would break these features by mangling variable names and class references.
The app uses the following Kick.com API endpoints:
- Get Channel Status:
/api/v2/channels/{username} - Get VODs:
/api/v2/channels/{username}/videos - Get Stream Info:
/api/v2/channels/{username}
These endpoints are not officially documented but work reliably for fetching stream data.
- Target: LG webOS TVs (tested on 43LJ594V with webOS 3.9.0)
- JavaScript Engine: ES5 compatible (no modern JavaScript features)
- Video Codec: HLS streams (m3u8 playlists)
- Networking: XMLHttpRequest for API calls
- Requires internet connection for API calls
- Limited to Kick.com streams only
This is a personal project. Feel free to fork, modify, and improve it!
This project is not actively maintained, but you're welcome to:
- Fork it and create your own version
- Use the API endpoints in your own projects
- Build better UI/UX improvements
Built with the help of GitHub Copilot for rapid development and debugging on webOS 3.9.0 compatibility issues.
Enjoy your streams on your TV! 📺🎮