MyNoteBookLm is an open-source, AI-powered notebook & podcast application inspired by Google’s NotebookLM. This project provides a fully customizable and privacy-focused tool for note-taking, knowledge management, and professional podcast generation.
- Open Source & Privacy-Focused: Run locally or on your own server. Your data, your rules.
- Smart Knowledge Management:
- Multi-Source Input: Upload PDF, Word (Docx), Text, and PowerPoint (PPTX) files.
- URL & YouTube Integration: Extract content from web articles or YouTube transcripts.
- Direct Text Input: Paste and process content directly in the UI.
- Advanced Podcast Generation:
- Conversational Scripts: Automatically transforms notes into engaging dialogues between two hosts.
- Customizable Hosts: Configure host names (e.g., "Jack" and "Corr") to personalize the experience.
- Episode Length Control: Choose from Auto, 5min, 15min, or 30min target durations.
- Script Editor: Preview, edit, and download transcripts (TXT/Markdown) before audio generation.
- Parallel TTS Synthesis: High-speed audio generation with configurable concurrency and retry logic.
- Custom Intro/Outro: Upload your own MP3/WAV files for professional branding.
- Session History: Save and reload previous sessions, including scripts, audio, and settings.
- Flexible AI Integrations:
- LLM Support: Microsoft Azure OpenAI (default), OpenAI, DeepSeek, and local LLMs via Ollama.
- TTS Support: Azure Text-to-Speech, OpenAI TTS, ElevenLabs, Edge TTS, and Spark TTS.
- SEO Optimized: Built-in meta tags, Open Graph support, and structured data for web deployments.
- Robust Architecture: Multi-stage Docker builds, health checks, and comprehensive error handling.
Listen to an example podcast created entirely with the MyNoteBookLm app.
Podcast Cover:
Podcast Link: Click here to listen
Try the live version without any setup:
- Project URL: https://mynotebooklm.jackhui.com.au
- Python 3.9+
- Docker (optional, for containerized deployment)
- API Keys for your chosen LLM and TTS providers.
git clone https://github.com/jack-jackhui/MyNoteBookLm.git
cd MyNoteBookLmpip install -r requirements.txtThe project uses a unified configuration system via settings.py.
A. Create a .env file:
# LLM
AZURE_OPENAI_API_KEY=your_key
AZURE_OPENAI_ENDPOINT=https://your-endpoint.openai.azure.com/
AZURE_OPENAI_MODEL_NAME=gpt-4o
# TTS
AZURE_TTS_API_KEY=your_key
AZURE_TTS_REGION=eastus
# Podcast Defaults
HOST_1_NAME=Jack
HOST_2_NAME=CorrB. (Optional) Customize config.yaml:
Edit config.yaml to adjust paths, output directories, and advanced extraction settings.
Web Interface (Recommended):
streamlit run webui.pyCLI Version:
python main.py --generate-podcastThe repository includes a production-ready Dockerfile.
docker build -t mynotebooklm .
docker run -p 8501:8501 --env-file .env mynotebooklmContributions are welcome! Please feel free to submit a Pull Request.
- Inspired by Google’s NotebookLM.
- References code from Podcastfy.
This project is licensed under the MIT License - see the LICENSE file for details.