← 블로그로 돌아가기

14.6k Star! Python으로 Google NotebookLM 제어, Claude Code 직접 연결 — Web UI가 못 하는 일을 하는 오픈소스

  • notebooklm ai
  • notebooklm tutorial
  • notebooklm
  • notebooklm 공식

Google NotebookLM 웹 앱은 가벼운 사용에는 충분하지만, 연구 파이프라인, 셸 스크립트, AI 에이전트 워크플로가 필요해지면 벽에 부딪힙니다. 대부분의 작업은 UI 클릭이 전제이고 배치 작업은 번거롭습니다.

GitHub의 notebooklm-py(2026년 5월 기준 14.6k+ Star)가 이 공백을 메웁니다 — NotebookLM 위의 Python 레이어로 Claude Code 등 에이전트에도 연결됩니다.

Python으로 NotebookLM 제어

NotebookLM Web UI의 한계

NotebookLM은 PDF, URL, YouTube 링크를 업로드한 뒤 채팅하고 팟캐스트, 슬라이드, 퀴즈 등을 생성할 수 있습니다. notebooklm tutorial을 검색하면 입문 가이드가 많지만, 공식 UI에는 분명한 제약이 있습니다:

  • 배치 가져오기/다운로드는 항목마다 클릭
  • 퀴즈와 플래시카드는 브라우저 내 상호작용만 — JSON/Markdown 내보내기 없음
  • 마인드맵과 데이터 표는 브라우저에서 구조화된 데이터를 제공하지 않음
  • Claude Code, Codex 등 코딩 에이전트와의 네이티브 연동 없음

가끔 메모할 때는 웹으로 충분합니다. 파이프라인, CI 작업, «논문 20편 읽고 퀴즈 생성»에는 프로그래밍 API가 필요합니다.

notebooklm-py란?

notebooklm-py는 커뮤니티가 유지하는 비공식 Python SDK + CLI(MIT 라이선스)입니다. Google 내부 RPC를 리버스 엔지니어링해 NotebookLM의 거의 모든 기능과 웹에 없던 추가 기능을 노출합니다.

주의: Google 비공식. 미공개 API에 의존하며 업데이트로 깨질 수 있습니다. 개인 연구·프로토타입에 적합.

세 가지 사용 방식

방식적합한 용도
Python API앱 통합, 비동기 파이프라인, 커스텀 스크립트
CLI셸 스크립트, 빠른 작업, CI/CD
에이전트 연동Claude Code, Codex, OpenClaw, 자연어 자동화

Web UI에 없는 기능

기능제공 내용
배치 다운로드한 유형의 산출물 일괄 수집(MP3, MP4, PDF, PNG 등)
Quiz / 플래시카드 내보내기JSON, Markdown, HTML — 인터랙티브 뷰만이 아님
마인드맵 JSOND3, ECharts 등용 계층 데이터
데이터 표 CSV스프레드시트용 내보내기
슬라이드 PPTXPDF만이 아닌 편집 가능한 PowerPoint
단일 슬라이드 수정자연어 프롬프트로 한 장 변경
채팅을 노트로 저장Q&A 또는 전체 대화를 notebook에 영구 저장
소스 전문인덱싱된 원문의 프로그래밍 접근
다중 계정 프로필재로그인 없이 Google 계정 전환
브라우저 쿠키 가져오기기존 로그인 세션 재사용

생성 범위도 넓습니다: 오디오 개요(4형식, 50+언어), 영상(cinematic 포함), 인포그래픽, 보고서, 퀴즈, 플래시카드, 마인드맵, 데이터 표 — 웹보다 세밀한 제어가 가능한 경우가 많습니다.

빠른 설치

CLI 사용자(에이전트 포함):

pip install "notebooklm-py[browser]"
playwright install chromium
notebooklm login
notebooklm auth check --test --json

라이브러리만(사전 확보한 storage_state.json, Chromium 불필요):

pip install notebooklm-py

자세한 내용은 프로젝트 installation.md 참고.

CLI 워크스루: 노트북 생성부터 팟캐스트 다운로드까지

notebooklm create "AI Research"
notebooklm use <notebook_id>
notebooklm source add "https://en.wikipedia.org/wiki/Artificial_intelligence"
notebooklm source add "./paper.pdf"
notebooklm ask "What are the key themes?"
notebooklm generate audio "make it engaging" --wait
notebooklm download audio ./podcast.mp3
notebooklm generate quiz --difficulty hard
notebooklm download quiz --format markdown ./quiz.md

셸 길이 제한을 넘는 긴 프롬프트는 --prompt-file 사용.

Python API 예제

import asyncio
from notebooklm import NotebookLMClient

async def main():
    async with await NotebookLMClient.from_storage() as client:
        nb = await client.notebooks.create("Research")
        await client.sources.add_url(nb.id, "https://example.com", wait=True)
        result = await client.chat.ask(nb.id, "Summarize this")
        print(result.answer)
        status = await client.artifacts.generate_quiz(nb.id)
        await client.artifacts.wait_for_completion(nb.id, status.task_id)
        await client.artifacts.download_quiz(nb.id, "quiz.json", output_format="json")

asyncio.run(main())

비동기 설계는 더 큰 asyncio 워크플로에 잘 맞습니다.

Claude Code 연동

저장소에 Agent Skill 포함. 두 가지 설치 방법:

# 방법 1: CLI로 Claude Code / .agents 디렉터리에 설치
notebooklm skill install

# 방법 2: skills 생태계
npx skills add teng-lin/notebooklm-py

설정 후 Claude Code에 «이 PDF를 NotebookLM에 추가하고, hard 난이도 quiz를 생성해 Markdown으로 export해»라고 지시할 수 있습니다 — 에이전트가 notebooklm CLI를 실행하며 브라우저 클릭은 필요 없습니다.

notebooklm ai 워크플로를 구축하면서 notebooklm 공식 생성 기능을 모두 원하는 개발자에게 현재 가장 매끄러운 경로입니다.

로컬 환경 구성을 원하지 않으신가요?

Playwright, 쿠키, API 변경 관리는 모두에게 맞지 않습니다. 설치 없이 «업로드 → 질문 → 생성»에 집중하려면 온라인 NotebookLM을 이용하세요:

NotebookLM 시작하기


요약

notebooklm-py는 NotebookLM을 «클릭만 가능한 웹 도구»에서 «스크립트 가능·에이전트 대응 지식 엔진»으로 바꿉니다. 14.6k Star는 실제 수요를 보여줍니다 — 연구자의 배치 quiz export, 크리에이터의 파이프라인 내 팟캐스트 생성, 개발자의 Claude Code 한 문장 import/다운로드.

가벼운 일상 사용은 Web UI; 브라우저가 주지 못한 자동화와 export가 필요할 때 Python + CLI + 에이전트가 완성형입니다.

프로젝트: github.com/teng-lin/notebooklm-py