====== NotebookLM CLI v Dockeru ======
Repozitář: [[https://github.com/teng-lin/notebooklm-py/tree/main|https://github.com/teng-lin/notebooklm-py/tree/main]]
Video, které mě inspirovalo k návodu:
{{youtube>QKIY_BthvgU?}}
===== Úvodní Kontext =====
Potřeboval jsem rozběhnout ''%%notebooklm-py%%'' v Dockeru, ale první přihlášení jsem nechtěl dělat uvnitř kontejneru. V Dockeru sice zvládnu CLI provoz, ale nemohu tam pohodlně spustit GUI prohlížeč pro autentizaci, takže login dělám na hostitelském počítači a do Dockeru pak přenesu hotový ''%%storage_state.json%%''.
===== Jak to mám rozdělené =====
==== Docker ====
V Dockeru instaluji jen CLI nástroj:
pipx install notebooklm-py
Pak v kontejneru používám připravený adresář pro NotebookLM data:
/home/ubuntu/.notebooklm
==== Hostitelský počítač ====
Na hostu dělám jen jednorázový login přes Playwright a prohlížeč.
===== Login na hostitelském počítači =====
Na hostu jsem si pro login připravil vlastní virtuální prostředí, abych nemíchal browser závislosti se systémovým Pythonem.
mkdir -p ~/notebooklm
cd ~/notebooklm
python3 -m venv .venv
source .venv/bin/activate
pip install "notebooklm-py[browser]"
playwright install chromium
Po úspěšném přihlášení mi vznikl soubor:
$HOME/notebooklm/.notebooklm/storage_state.json
===== Přenos přihlášení do Dockeru =====
Jakmile jsem dokončil přihlášení na hostu, zkopíroval jsem ''%%storage_state.json%%'' do kontejneru. Cílově ho chci mít tady:
/home/ubuntu/.notebooklm/storage_state.json
===== Praktické použití v Dockeru =====
V běžném provozu už v Dockeru nepotřebuji browser login. Stačí mi mít nainstalovaný nástroj přes ''%%pipx%%'' a přítomný ''%%storage_state.json%%''.
Pak už používám ''%%notebooklm%%'' CLI normálně v kontejneru podle potřeby. Browser autentizaci znovu řeším jen ve chvíli, kdy přihlášení vyprší nebo potřebuji vytvořit nový stav cookies.
===== Jak jsem naučil AI pracovat s NotebookLM =====
Protože v Dockeru používám AI, nestačí mi jen samotné CLI. Potřeboval jsem ještě nainstalovat skill, aby AI uměla s NotebookLM pracovat přímo.
Spustil jsem:
notebooklm skill install
Tím se připravil skill pro Claude a instalátor mi vypsal, kam ho uložil. Potom jsem si tento skill přesunul podle své potřeby na místo, odkud ho moje AI v Dockeru používá.
===== Důležitá nastavení =====
* Browser autentizaci dělám na hostu, protože v Dockeru nemohu pohodlně projít GUI login.
* Na hostu instaluji ''%%notebooklm-py[browser]%%'' a spouštím ''%%playwright install chromium%%''.
* V Dockeru mi pro provoz stačí ''%%pipx install notebooklm-py%%''.
* Přihlášení přenáším přes ''%%storage_state.json%%''.
* V Dockeru používám ''%%/home/ubuntu/.notebooklm%%''.
* ''%%storage_state.json%%'' obsahuje přihlašovací cookies, takže ho nedávám do Gitu.
* Pro ovládání z AI ještě instaluji skill přes ''%%notebooklm skill install%%''.
===== Závěr =====
Nejpraktičtější je udělat ''%%notebooklm login%%'' jednou na hostitelském počítači a do Dockeru přenést jen ''%%storage_state.json%%''. Tím oddělím browser krok od běžného CLI použití a v kontejneru už nemusím řešit Playwright GUI.