PYTHON TUTORIAL
notebooklm-py
ממשק Python לא-רשמי ל-Google NotebookLM. גישה פרוגרמטית מלאה — כולל יכולות שאין בממשק הרגיל — דרך Python, CLI ו-AI agents.
⭐ 7.2k GitHub Stars
MIT License
Python 3.10 – 3.14
API לא-רשמי
01
מה זה notebooklm-py?
Google NotebookLM הוא כלי AI מבית Google שמאפשר להעלות מקורות (מאמרים, PDF, YouTube)
ולשאול שאלות, ליצור פודקאסטים, חידונים ועוד. ספריית notebooklm-py
פותחת את הממשק הפרוגרמטי ומאפשרת אוטומציה מלאה.
ספרייה לא-רשמית — משתמשת ב-API פנימי של Google שעלול להשתנות ללא הודעה.
לא מומלצת לסביבת ייצור. מתאימה למחקר, אוטומציה אישית ולמידה.
יצירת תוכן
פודקאסט, וידאו, שקופיות, חידונים, כרטיסיות
הורדות
MP3, MP4, PDF, PNG, CSV, JSON, PPTX
אוטומציה
ייבוא מקורות בכמות, פייפליין מחקר
צ'אט
שאלות ותשובות, שמירת שיחות, פרסונות
02
דרישות מקדימות
לפני שמתחילים — וודאו שיש לכם את הדברים הבאים:
1
Python 3.10 ומעלה
בדיקה: פתחו Terminal ורשמו
python --version
bash
# בדיקת גרסת Python python --version # Python 3.10.x ← צפוי
2
pip — מנהל חבילות Python
מגיע כברירת מחדל עם Python. בדיקה:
pip --version3
חשבון Google עם גישה ל-NotebookLM
נדרש אימות דרך הדפדפן בהתקנה הראשונה. NotebookLM זמין בחינם.
4
כ-200MB פנויים בדיסק
הספרייה תוריד דפדפן Chromium לאימות (~100MB) בנוסף לחבילות.
03
התקנה
שלושה פקודות — וסיימנו:
bash
# שלב 1: התקנה בסיסית pip install notebooklm-py # שלב 2: הוספת תמיכה בהתחברות דרך דפדפן (חובה) pip install "notebooklm-py[browser]" # שלב 3: הורדת Chromium לאימות playwright install chromium
אם אתם עובדים עם virtual environment (venv), הפעילו אותו לפני ההתקנה.
גרסת פיתוח — הכי עדכנית, פחות יציבה:
bash
pip install git+https://github.com/teng-lin/notebooklm-py@main
גרסת ה-main עלולה להכיל שינויים לא יציבים. לקורס — עדיפו pip.
04
אימות — כניסה לחשבון Google
לאחר ההתקנה, יש להתחבר פעם אחת עם חשבון Google:
bash
# פותח חלון דפדפן לאימות Google notebooklm login # אם הארגון שלכם דורש Microsoft Edge: notebooklm login --browser msedge
לאחר הכניסה — בדיקה שהכל תקין:
bash
notebooklm auth check --test # ✓ Authentication OK ← צפוי
האימות נשמר אוטומטית. לא צריך להתחבר בכל פעם — רק פעם ראשונה.
05
CLI — שימוש משורת הפקודה
הדרך הפשוטה ביותר. כל הפקודות מתחילות ב-notebooklm:
bash — זרימת עבודה בסיסית
# 1. יצירת מחברת חדשה notebooklm create "המחברת שלי" # 2. בחירת מחברת לעבודה (העתיקו את ה-ID שקיבלתם) notebooklm use <notebook_id> # 3. הוספת מקורות notebooklm source add "https://example.com/article" notebooklm source add ./document.pdf # 4. שאלה על המקורות notebooklm ask "מה הנושאים המרכזיים?" # 5. יצירת פודקאסט אודיו notebooklm generate audio "הפוך לסיכום מרתק" --wait # 6. הורדת האודיו notebooklm download audio ./podcast.mp3 # 7. יצירת חידון notebooklm generate quiz --difficulty hard notebooklm download quiz --format markdown ./quiz.md # 8. יצירת כרטיסיות לימוד notebooklm generate flashcards --quantity more notebooklm download flashcards --format json ./cards.json
| פקודה | תיאור |
|---|---|
notebooklm list | רשימת כל המחברות שלך |
notebooklm create "שם" | יצירת מחברת חדשה |
notebooklm use <id> | בחירת מחברת פעילה |
notebooklm source add <url|file> | הוספת מקור (URL / קובץ) |
notebooklm ask "שאלה" | שאלה על המקורות |
notebooklm generate audio | יצירת פודקאסט MP3 |
notebooklm generate quiz | יצירת חידון |
notebooklm generate slide-deck | יצירת מצגת (PDF/PPTX) |
notebooklm generate mind-map | יצירת מפת מחשבה (JSON) |
notebooklm download <type> <file> | הורדת תוצר לקובץ |
notebooklm metadata --json | ייצוא מטא-דאטה של המחברת |
06
Python API
לאינטגרציה עמוקה יותר — ישירות מקוד Python. הספרייה async-first:
python — דוגמה בסיסית
import asyncio from notebooklm import NotebookLMClient async def main(): # התחברות (משתמש בפרטים השמורים מ-login) async with await NotebookLMClient.from_storage() as client: # יצירת מחברת חדשה nb = await client.notebooks.create("המחברת שלי") print(f"נוצרה מחברת: {nb.id}") # הוספת מקור — wait=True מחכה עד שהמקור נסרק await client.sources.add_url( nb.id, "https://example.com/article", wait=True ) # שאלה על המחברת result = await client.chat.ask(nb.id, "סכם את התוכן") print(result.answer) # יצירת פודקאסט status = await client.artifacts.generate_audio( nb.id, instructions="הפוך לסיכום מרתק" ) await client.artifacts.wait_for_completion(nb.id, status.task_id) await client.artifacts.download_audio(nb.id, "podcast.mp3") # יצירת חידון ושמירה כ-JSON 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())
ה-API הוא async (asyncio). אם אתם עובדים ב-Jupyter Notebook, השתמשו ב-
await main() ישירות.
07
יכולות מלאות
מה אפשר לייצר ולהוריד:
| סוג תוכן | אפשרויות | פורמט הורדה |
|---|---|---|
| Audio Overview | 4 פורמטים, 3 אורכים, 50+ שפות | MP3 / MP4 |
| Video Overview | 3 פורמטים, 9 סגנונות ויזואליים | MP4 |
| Slide Deck | מפורט / מצגת, אורך מתכוונן | PDF / PPTX |
| Infographic | 3 כיוונים, 3 רמות פירוט | PNG |
| Quiz | כמות ורמת קושי מוגדרות | JSON / Markdown / HTML |
| Flashcards | כמות ורמת קושי מוגדרות | JSON / Markdown / HTML |
| Report | Briefing / Study Guide / Blog / Custom | Markdown |
| Data Table | מבנה חופשי בשפה טבעית | CSV |
| Mind Map | היררכיה אינטראקטיבית | JSON |
יכולות שאין בממשק הרגיל של NotebookLM:
Batch downloads
הורדת כל הקבצים מסוג מסוים בפעולה אחת
ייצוא חידונים וכרטיסיות
JSON מובנה, Markdown, HTML — הממשק הרגיל רק מציג תצוגה אינטראקטיבית
מפת מחשבה כ-JSON
ייצוא נתוני ה-mind map לכלי ויזואליזציה חיצוניים
PPTX ניתן לעריכה
הממשק מציע רק PDF, הספרייה מאפשרת הורדת PowerPoint
ניהול שיתוף פרוגרמטי
הגדרת הרשאות משתמשים (viewer/editor) ללא ממשק
08
פתרון בעיות נפוצות
!
שגיאה:
TypeError: onExit is not a functionשגיאה ידועה ב-Linux בעת התקנת Playwright. פתרון:
bash
python -m playwright install chromium
!
שגיאת Authentication לאחר כמה ימים
ה-cookies פגו. יש להתחבר מחדש:
bash
notebooklm login notebooklm auth check --test
!
הפקודה
notebooklm לא מזוההייתכן ש-pip התקין לנתיב שאינו ב-PATH. נסו:
bash
python -m notebooklm --version
# או
pip install --user notebooklm-py