Skip to content

Commit 586cb0a

Browse files
committed
docs(troubleshooting): add Playwright Linux workaround
1 parent 167f4f4 commit 586cb0a

File tree

2 files changed

+27
-1
lines changed

2 files changed

+27
-1
lines changed

README.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -95,6 +95,8 @@ pip install "notebooklm-py[browser]"
9595
playwright install chromium
9696
```
9797

98+
If `playwright install chromium` fails with `TypeError: onExit is not a function`, see the Linux workaround in [Troubleshooting](docs/troubleshooting.md#linux).
99+
98100
### Development Installation
99101

100102
For contributors or testing unreleased features:

docs/troubleshooting.md

Lines changed: 25 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
# Troubleshooting
22

33
**Status:** Active
4-
**Last Updated:** 2026-01-20
4+
**Last Updated:** 2026-03-13
55

66
Common issues, known limitations, and workarounds for `notebooklm-py`.
77

@@ -307,6 +307,30 @@ audio = next(a for a in artifacts if a.kind == "audio")
307307
playwright install-deps chromium
308308
```
309309

310+
**`playwright install chromium` fails with `TypeError: onExit is not a function`:**
311+
312+
This is an environment-specific Playwright install failure that has been observed with some newer Playwright builds on Linux. `notebooklm-py` only needs a working browser install for `notebooklm login`; the workaround is to install a known-good Playwright version in a clean virtual environment.
313+
314+
**Workaround:**
315+
```bash
316+
python -m venv .venv
317+
source .venv/bin/activate
318+
pip install -U pip
319+
pip install "playwright==1.57.0"
320+
python -m playwright install chromium
321+
pip install -e ".[all]"
322+
```
323+
324+
**Why this order matters:**
325+
- `python -m playwright ...` ensures you use the Playwright module from the active virtual environment
326+
- installing the browser before `pip install -e ".[all]"` avoids picking up an older broken global `playwright` executable
327+
- if you already have another `playwright` on your system, verify with `which playwright` after activation
328+
329+
If you need a non-editable install from Git instead of a local checkout, replace the last step with:
330+
```bash
331+
pip install "git+https://github.com/<your-user>/notebooklm-py@<branch>"
332+
```
333+
310334
**No display available (headless server):**
311335
- Browser login requires a display
312336
- Authenticate on a machine with GUI, then copy `storage_state.json`

0 commit comments

Comments
 (0)