1. 소개
AI에게 원고나 참고자료를 넣으면, 그 내용을 바탕으로 강의용 슬라이드 덱을 자동으로 만들고 싶었습니다.
제가 원했던 최종 흐름은 단순했습니다.
처음에는 NotebookLM 개인 계정에는 공식 API가 없어서 “브라우저를 자동으로 조작하는 방식”으로 해결하려고 했습니다. 하지만 로그인, 버튼 선택, 업로드 버튼 탐색, 생성 완료 감지 같은 부분에서 계속 막혔습니다.
그러다 notebooklm-mcp-cli라는 도구를 찾았고, 이를 기반으로 NotebookLM의 내부 기능을 CLI로 호출하는 방식으로 자동화 흐름을 만들었습니다.
2. 진행 방법
사용한 도구
Codex: 자동화 스크립트 작성과 오류 해결
NotebookLM: 원고 기반 슬라이드 덱 생성
notebooklm-mcp-cli: NotebookLM을 CLI/MCP 방식으로 제어
PowerShell: 실행 환경
Python: 자동화 래퍼 스크립트 작성
Microsoft PowerPoint: PPTX 입력 파일을 PDF로 변환하는 fallback에 사용
처음에는 Playwright로 브라우저를 직접 조작하려 했습니다.
하지만 Google 로그인에서 “브라우저 또는 앱이 안전하지 않을 수 있습니다” 오류가 나왔고, 이후에도 NotebookLM 화면의 버튼 selector가 맞지 않아 계속 실패했습니다.
그래서 방향을 바꿨습니다.
브라우저 매크로 방식
→ notebooklm-mcp-cli 기반 CLI 자동화 방식
결과와 배운 점
결과
최종적으로 NotebookLM에서 생성된 슬라이드 덱을 PPTX로 다운로드하는 데 성공했습니다.
저장 위치는 아래와 같은 형태입니다.
C:\Users\coolf\Downloads\decks
그리고 생성된 파일은 PowerPoint에서 열 수 있는 .pptx 형식으로 저장됩니다.
과정 중 겪은 시행착오
가장 많이 막혔던 부분은 4가지였습니다.
Playwright 브라우저 로그인 차단
Google이 자동화 브라우저를 안전하지 않은 브라우저로 인식했습니다.NotebookLM UI selector 문제
“소스 추가”, “다운로드”, “슬라이드 생성” 같은 버튼을 브라우저 자동화로 정확히 찾기가 어려웠습니다.PPTX 파일 업로드 실패
notebooklm-mcp-cli의 로컬 업로드는 PPTX를 직접 지원하지 않았습니다. 그래서 PPTX를 PDF로 변환하거나, PPTX 내부 텍스트를 추출해서 텍스트 소스로 넣는 fallback을 만들었습니다.슬라이드 생성 완료 전 다운로드 시도
NotebookLM에서 슬라이드 artifact가 생겼다고 바로 다운로드 가능한 것은 아니었습니다. in_progress 상태에서는 다운로드가 실패했고, ready 상태가 될 때까지 기다려야 했습니다.
배운 점
이번 작업에서 가장 크게 배운 점은 “자동화”에도 단계가 있다는 점입니다.
처음 생각한 자동화는 단순히 브라우저를 대신 클릭하게 만드는 것이었습니다. 하지만 실제로는 로그인, 인증 만료, 파일 형식, 생성 상태, 다운로드 가능 여부 같은 예외가 훨씬 중요했습니다.
특히 이런 작업은 단순 매크로보다 CLI나 MCP 기반 도구를 활용하는 편이 훨씬 안정적이었습니다.
나만의 꿀팁
공식 API가 없다고 바로 브라우저 매크로부터 만들지 말고, 먼저 CLI/MCP wrapper가 있는지 찾아보는 것이 좋습니다.
AI에게 “자동화해줘”라고만 말하면 부족합니다. 원하는 최종 흐름을 단계별로 적어야 합니다.
에러 메시지를 그대로 AI에게 보여주는 것이 가장 빠릅니다.
“생성 버튼 클릭”보다 “생성 완료 상태를 어떻게 감지할 것인가”가 더 중요합니다.
NotebookLM 결과 언어는 프롬프트뿐 아니라 --language ko 같은 옵션으로도 고정하는 것이 좋습니다.
앞으로의 계획
앞으로는 매번 긴 명령을 입력하지 않고, 아래처럼 더 간단하게 실행할 수 있도록 만들면 좋겠습니다.
도움 받은 글
참고한 외부 도구는 GitHub의 notebooklm-mcp-cli입니다.
이 도구는 NotebookLM을 CLI와 MCP 서버 형태로 사용할 수 있게 해줍니다. 공식 Google API는 아니고 NotebookLM 내부 API와 인증 쿠키를 활용하는 방식이라, NotebookLM 쪽 변경이 있으면 동작이 바뀔 수 있다는 점은 주의해야 합니다.