Introduction
Welcome to the KissKH Video Player documentation — a self-hosted Node.js embed server that streams KissKH dramas on any website via a single iframe.
Welcome to KissKH Video Player
KissKH Video Player is a self-hosted Node.js application that acts as an embed server for KissKH drama episodes. Deploy it on your own server, drop a single <iframe> into your website, and your visitors get a fully-featured video player — complete with auto-decrypted multi-language subtitles and real-time playback events.
KissKH Video Player welcome screen
How It Works
The server sits between your website and KissKH:
- Your page embeds the player via
<iframe src="https://your-server.com/kisskh/{episode-id}">. - The server calls the KissKH API to fetch the video URL and subtitle list for that episode.
- Video segments and subtitles are fetched through your server's own proxy — the browser never contacts KissKH or its CDN directly.
- Subtitles that are AES-encrypted by KissKH (
.txt/.txt1files) are decrypted server-side and delivered as plain SRT to the player, so captions always work.
This script is entirely dependent on the KissKH website and its API. If KissKH goes offline, changes its API, or rotates its encryption keys, the player will stop working until the vendor scripts are updated. We will push updates when KissKH makes breaking changes, but this is outside our control.
Key Features
Proxy-Based Streaming
- All video and subtitle traffic is routed through your own server — no direct CDN calls from the browser
- HLS playlists (
.m3u8) are rewritten on-the-fly so every segment URL points back to your proxy - MP4 files are also proxied end-to-end
Automatic Subtitle Decryption
- KissKH ships some subtitles as AES-encrypted
.txt/.txt1files - The server decrypts them using KissKH's own cipher logic (vendor scripts bundled in
src/vendor/) and serves plain SRT - Multi-language subtitle tracks are wired into the player automatically
Iframe Embed API
- One endpoint:
GET /kisskh/{episode-id} - Returns a complete HTML page — drop it into any
<iframe>and it works - Custom accent color and autoplay via query parameters
postMessageevents for progress tracking, auto-next, and watch history
Admin Panel
- Web-based admin at
/adminto manage which sites can embed the player - Per-domain policies: Allowed (no ads), Allowed + Ads, or Blocked
- Inject ad code and analytics scripts through the UI
Built-in Caching
- In-memory LRU cache for episode data and subtitle responses
- Optional Redis cache for multi-instance / high-traffic deployments
License & Usage
KissKH Video Player is a one-time purchase with no domain restrictions and no license key activation. Once you buy it, you can deploy it on as many servers or websites as you want — no limits, no recurring fees, no activation required.
This script is provided as a technical tool. You are responsible for ensuring your use of it complies with KissKH's terms of service and the applicable laws in your jurisdiction. OtakuThemes is not affiliated with KissKH. Use at your own discretion.
What You'll Learn
This documentation covers:
- Requirements — What you need before deploying
- Installation — Setting up the Node.js app on your server
- Environment Variables — Every
.envoption explained - Embedding the Player — The iframe API and query parameters
- Player Events —
postMessageintegration for your frontend - Admin Panel — Managing embed permissions and ad code
Getting Help
- Documentation — Browse this guide for step-by-step setup
- Support — Submit a ticket through the member area
Head to Requirements to check what your server needs before deploying.