====== 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.