cloudscraper is not installed in the running Python. Run `python -m pip install cloudscraper`. Note the PyPI name and the import name are both `cloudscraper`, so there is no name-mismatch trap here, just a missing install.

## The error

```text
ModuleNotFoundError: No module named 'cloudscraper'
```

## Fix it

1. **Install cloudscraper**

```
python -m pip install cloudscraper
```
Expected: `Successfully installed cloudscraper-...`.

2. **Confirm**

```
python -c "import cloudscraper; print('ok')"
```
Expected: prints `ok`. If this now raises the `appengine` ImportError instead, see the urllib3 pin skill, you have the next problem in the chain.

## When this applies

- any cloudscraper import fails naming `cloudscraper`
- a fresh env or a plugin host (Kodi-style) where dependencies were not installed

## When it does NOT apply

- `cannot import name 'appengine' from 'urllib3.contrib'` means it IS installed but urllib3 2 broke it
- Cloudflare challenge failures at runtime (403s, captchas) are not import problems

## Compatibility

cloudscraper 1.2.x. Works on Python 3.6+. Pair with urllib3 1.26.x, not 2.x.

## Why it happens

The package was never installed into the active interpreter. Media-scraper plugins are often zipped up and moved between hosts without their Python dependencies, so the import is the first thing that notices.

## Edge cases

- If you install cloudscraper and immediately get the `appengine` ImportError, your env has urllib3 2.x. Pin `urllib3==1.26.15`.
- cloudscraper is in maintenance mode. For new projects, curl-cffi with a Chrome impersonation target solves the same Cloudflare problem with a maintained library.
