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.

Updated May 5, 2026
OtakuThemes Team

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 screenKissKH Video Player welcome screen

How It Works

The server sits between your website and KissKH:

  1. Your page embeds the player via <iframe src="https://your-server.com/kisskh/{episode-id}">.
  2. The server calls the KissKH API to fetch the video URL and subtitle list for that episode.
  3. Video segments and subtitles are fetched through your server's own proxy — the browser never contacts KissKH or its CDN directly.
  4. Subtitles that are AES-encrypted by KissKH (.txt / .txt1 files) are decrypted server-side and delivered as plain SRT to the player, so captions always work.
Dependency on KissKH

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 / .txt1 files
  • 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
  • postMessage events for progress tracking, auto-next, and watch history

Admin Panel

  • Web-based admin at /admin to 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

Buy Once, Use Everywhere

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.

Disclaimer

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:

  1. Requirements — What you need before deploying
  2. Installation — Setting up the Node.js app on your server
  3. Environment Variables — Every .env option explained
  4. Embedding the Player — The iframe API and query parameters
  5. Player EventspostMessage integration for your frontend
  6. 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
Ready to Get Started?

Head to Requirements to check what your server needs before deploying.