Skip to main content

Simple downloaded for https://kisskh.co/

Project description

:tv: kisskh-dl


Simple downloader for https://kisskh.nl/

👋 Welcome to the kisskh-downloader README! This package is a simple command-line tool for downloading shows from https://kisskh.nl/. Here's everything you need to know to get started:

💻 Installation

To install kisskh-downloader, simply run the following command:

pip install -U kisskh-downloader

Playwright (optional)

The site now requires an authentication token (kkey) for stream and subtitle APIs. You have two options:

Option A: Set KISSKH_STREAM_KEY and KISSKH_SUB_KEY environment variables (see Authentication section).

Option B: Install Playwright to generate keys automatically:

playwright install chromium

📚 Usage

kisskh dl — Download episodes

kisskh dl --help
Usage: kisskh dl [OPTIONS] DRAMA_URL_OR_NAME

Options:
  -f, --first INTEGER             Starting episode number.
  -l, --last INTEGER              Ending episode number.
  -q, --quality [360p|480p|540p|720p|1080p]
                                  Quality of the video to be downloaded.
  -s, --sub-langs TEXT            Languages of the subtitles to download.
  -o, --output-dir TEXT           Output directory where downloaded files will
                                  be store.
  -ds, --decrypt-subtitle         Decrypt the downloaded subtitle
  -k, --key TEXT                  Subtitle decryption key (or set KISSKH_KEY
                                  env var).
  -iv, --initialization-vector TEXT
                                  Initialization vector for subtitle
                                  decryption (or set
                                  KISSKH_INITIALIZATION_VECTOR env var).
  --stream-key TEXT               Pre-generated kkey for stream endpoint (or
                                  set KISSKH_STREAM_KEY env var). Skips
                                  browser-based kkey generation.
  --sub-key TEXT                  Pre-generated kkey for subtitle endpoint (or
                                  set KISSKH_SUB_KEY env var). Skips browser-
                                  based kkey generation.
  --help                          Show this message and exit.

Download entire series

kisskh dl "https://kisskh.nl/Drama/Island-Season-2?id=7000" -o .

Search and download

kisskh dl "Stranger Things" -o .

Download specific episodes with specific quality

:exclamation: Note that if the selected quality is not available, it will try to get something lower than that quality. If that also is not available, it will try to get the best quality available.

Downloads episode 4 to 8 of Alchemy of Souls in 720p:

kisskh dl "https://kisskh.nl/Drama/Alchemy-of-Souls?id=5043" -f 4 -l 8 -q 720p -o .

Downloads a single episode in 720p:

kisskh dl "https://kisskh.nl/Drama/A-Business-Proposal?id=4608" -f 3 -l 3 -q 720p -o .

You can also download a single episode by providing the episode URL:

kisskh dl "https://kisskh.nl/Drama/A-Business-Proposal/Episode-3?id=4608&ep=86439&page=0&pageSize=100" -o .

For more options, use the --help flag.


kisskh get-key — Generate authentication tokens

The site now requires a kkey authentication token. Use get-key to generate one from an episode URL:

kisskh get-key "https://kisskh.nl/Drama/A-Business-Proposal/Episode-1?id=4608&ep=86192&page=0&pageSize=100"

This opens a headless browser to extract the keys, then prints them:

── kkey tokens generated successfully! ──

  Stream key:  <long_hex_string>
  Sub key:     <long_hex_string>

  To use these without a browser next time, set these env vars:

    set KISSKH_STREAM_KEY=<long_hex_string>
    set KISSKH_SUB_KEY=<long_hex_string>

  Then run your download command as usual:
    kisskh dl "https://kisskh.nl/Drama/.../Episode-1?id=1234&ep=5678&page=0&pageSize=100" -o .

📖 Decrypting Subtitles

If you want to decrypt the downloaded subtitles, you need to pass the --decrypt-subtitle or -ds flag along with a decryption key and initialization vector. Check #14.

Here is an example of how to pass these parameters from the command line:

kisskh dl "<drama_url>" --decrypt-subtitle --key "your_key_here" --initialization-vector "your_iv_here"

You can also set these parameters as environment variables. If you set the KISSKH_KEY and KISSKH_INITIALIZATION_VECTOR environment variables, they will be used by default.

Here is an example of how to set these environment variables:

  • On Linux/Mac:
export KISSKH_KEY="your_key_here"
export KISSKH_INITIALIZATION_VECTOR="your_iv_here"
  • On Windows:
set KISSKH_KEY="your_key_here"
set KISSKH_INITIALIZATION_VECTOR="your_iv_here"

After setting these environment variables, you can use the --decrypt-subtitle flag without passing the key and initialization vector explicitly:

kisskh dl "Drama Name" --decrypt-subtitle

🔐 Authentication

The site now requires a kkey authentication token for stream and subtitle API calls. You have several options:

Method How it works
Playwright (automatic) Installs Chromium and generates keys on-the-fly per episode. Requires: playwright install chromium
Environment variables Set KISSKH_STREAM_KEY and KISSKH_SUB_KEY to skip browser entirely. Generate them once with kisskh get-key.

All supported environment variables

Variable Description Default
KISSKH_BASE_URL Site base URL https://kisskh.nl
KISSKH_STREAM_KEY Pre-generated kkey for stream endpoint
KISSKH_SUB_KEY Pre-generated kkey for subtitle endpoint
KISSKH_KEY Subtitle decryption key
KISSKH_INITIALIZATION_VECTOR Subtitle decryption IV

🐞 DEBUG

To enable debugging, use the -vv flag while running kisskh dl.

kisskh -vv dl "https://kisskh.nl/Drama/A-Business-Proposal?id=4608" -f 3 -l 3 -q 720p

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

kisskh_downloader-0.2.1.tar.gz (11.4 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

kisskh_downloader-0.2.1-py3-none-any.whl (16.8 kB view details)

Uploaded Python 3

File details

Details for the file kisskh_downloader-0.2.1.tar.gz.

File metadata

  • Download URL: kisskh_downloader-0.2.1.tar.gz
  • Upload date:
  • Size: 11.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.11.14 {"installer":{"name":"uv","version":"0.11.14","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for kisskh_downloader-0.2.1.tar.gz
Algorithm Hash digest
SHA256 b2518fd18e63eef5d80c7fb96f80315b22fe777c2fbd6a9ccd462f77a52789fc
MD5 17c6b56c14f1472d2b829b6e0cdbc6aa
BLAKE2b-256 61d2bcdc22e66e828fe3eee4dbb7ab7db1fabe3d2465fb141d56f3e94b643056

See more details on using hashes here.

File details

Details for the file kisskh_downloader-0.2.1-py3-none-any.whl.

File metadata

  • Download URL: kisskh_downloader-0.2.1-py3-none-any.whl
  • Upload date:
  • Size: 16.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.11.14 {"installer":{"name":"uv","version":"0.11.14","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for kisskh_downloader-0.2.1-py3-none-any.whl
Algorithm Hash digest
SHA256 fcb9729fe568bc05c74be5701f4e3cf8bc48239e549e5bc1a4b9d0cdb5fe7066
MD5 e0e07a03454f6f2bd32776f80ba93dbf
BLAKE2b-256 59f672cb4877a670c1cca299ae5b919a455a84b154339a38ded10151a4ffd400

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page