Admin Panel

Managing embed permissions, ad code, and player defaults from the KissKH Video Player admin panel

Updated May 5, 2026
OtakuThemes Team

Overview

The admin panel lives at /admin on your server. It lets you manage which websites can embed your player, inject ad and analytics code, and configure default player settings — all without touching the server code.

Admin Panel is Disabled by Default

The admin panel is completely disabled until you set the ADMIN_PASSWORD environment variable. Without it, the /admin route will redirect to the login page but login will always fail. Set ADMIN_PASSWORD in your .env to enable it.

Logging In

Navigate to /admin (or /admin/login) on your server. Enter the credentials you set in .env:

  • UsernameADMIN_USERNAME (default: admin)
  • PasswordADMIN_PASSWORD

Sessions last 12 hours and are signed with URL_SECRET (or ADMIN_SECRET if set separately).


Overview Tab

The Overview tab shows a summary of your current configuration:

StatDescription
Total SitesNumber of domains in your site list
Allowed (No Ads)Domains allowed to embed with no ad injection
Allowed With AdsDomains allowed to embed with your ad code shown
BlockedDomains blocked from embedding the player
Unlisted SitesCurrent policy for domains not in the list
Ad ContentWhether ad code is currently configured

Sites Tab

The Sites tab controls which domains can embed your player.

Unlisted Sites Policy

This setting controls what happens when a domain not in your list tries to embed the player:

  • Disabled (default) — All unlisted domains can embed the player, and your ad code is shown to them
  • Enabled (Block all unlisted) — Only domains explicitly in your list can embed; all others get a 403 error

Toggle Block all unlisted sites and click Save to change this.

Adding a Domain

Enter a domain (e.g. yoursite.com) and select a policy:

PolicyWhat it means
Allowed (No Ads)Domain can embed the player; ad code is NOT injected
Allowed + AdsDomain can embed the player; your ad code IS injected
BlockedDomain receives a 403 error page — the player will not load

Click Add. The domain is saved immediately.

Removing a Domain

Click Remove next to any domain to delete it from the list. Unlisted domains then fall back to the Unlisted Sites Policy.


Code Tab

The Code tab lets you inject HTML/JavaScript into the player page. This is primarily for ad networks and analytics.

Ad Code — Interstitial

Paste your ad network's <script> tag or banner HTML here. This code is injected into the player page for domains with the Allowed + Ads policy (and all unlisted domains when the unlisted policy is Allow + Ads).

Leave blank to show no ads.

Google Analytics / Insights Code

Paste your Google Analytics <script> tag (or any other analytics or custom head code) here. This code is injected into the <head> of every player page, regardless of site policy.

Click Save to apply changes.


Settings Tab

The Settings tab controls the default player appearance and behaviour.

Accent Color

The hex color used for the player's progress bar, buttons, and UI accents. Default: #2ad4b8.

This is the global default — individual embeds can override it with the ?color= query parameter.

Autoplay by Default

When enabled, every player embed will attempt to auto-start playback without the viewer clicking play first (subject to browser autoplay policies — a prior user gesture on the parent page is usually required).

Default: off.

Playback Rates

A comma-separated list of available playback speed options in the player menu. Default: 0.5, 0.75, 1, 1.25, 1.5, 1.75, 2.

Click Save to apply.