Qu'est-ce qu'Open Notebook ?
Google NotebookLM est un assistant de recherche IA lancé par Google. Il permet de télécharger des PDF, des documents et des pages web, puis d'avoir des conversations avec ces matériaux, de générer des résumés et même des podcasts. Mais il a un défaut majeur : toutes vos données sont stockées dans le cloud de Google, et vous ne pouvez utiliser que le modèle Gemini de Google.
Open Notebook est une alternative entièrement open source et auto-hébergeable à NotebookLM, développée principalement par le développeur lfnovo. Sa philosophie centrale est simple : la gestion des connaissances ne devrait pas être monopolisée par les géants technologiques, ni se faire au détriment de la vie privée.
En juin 2026, Open Notebook a déjà obtenu plus de 26 000 étoiles sur GitHub, avec plusieurs centaines de nouvelles étoiles chaque jour. C'est l'un des outils IA open source les plus populaires du moment.
Comparaison clé : Open Notebook vs Google NotebookLM
| Fonctionnalité | Open Notebook | Google NotebookLM |
|---|---|---|
| Mode de déploiement | Auto-hébergement via Docker / exécution locale | Cloud Google (non auto-hébergeable) |
| Confidentialité des données | Données entièrement sous votre contrôle | Données stockées sur les serveurs de Google |
| Choix des modèles IA | Plus de 18 fournisseurs (OpenAI, Anthropic, Ollama, DeepSeek, etc.) | Uniquement Google Gemini |
| Génération de podcasts | 1 à 4 rôles personnalisables, script contrôlable | Format fixe « Deep Dive » à 2 personnes |
| Accès API | API REST complète (localhost:5055/docs) | Aucune API publique |
| Transformation de contenu | Actions personnalisables + nombreuses options intégrées | Options limitées |
| Coût | Seulement les frais d'appel IA (Ollama local gratuit en option) | Niveau gratuit + abonnement mensuel |
| Évolutivité | Code open source, modifiable et intégrable à volonté | Système fermé, non personnalisable |
| Licence | Apache 2.0 | Logiciel propriétaire |
Comme le montre ce tableau, les principaux atouts d'Open Notebook sont la souveraineté des données et la flexibilité. Pour les chercheurs soucieux de leur vie privée, les développeurs d'entreprise ou les utilisateurs ayant besoin de flux de travail personnalisés, c'est un choix bien plus adapté que NotebookLM.
Pourquoi choisir Open Notebook ?
1. Vie privée avant tout : vos données, votre contrôle
Lorsque vous utilisez NotebookLM, tous les PDF, notes et historiques de conversation que vous téléchargez sont stockés sur les serveurs de Google. Pour les contenus impliquant des secrets commerciaux, des recherches académiques ou des informations personnelles sensibles, cela peut représenter un risque de sécurité.
Open Notebook adopte une architecture auto-hébergée. Toutes les données sont stockées sur votre propre machine ou serveur. Avec SurrealDB comme base de données backend, vous avez un contrôle total sur l'emplacement de stockage et les droits d'accès.
2. Support de plus de 18 fournisseurs de modèles IA
Open Notebook s'appuie sur la bibliothèque Esperanto pour offrir une connexion unifiée aux principaux fournisseurs d'IA :
| Fournisseur | LLM | Embedding | STT | TTS |
|---|---|---|---|---|
| OpenAI | ✅ | ✅ | ✅ | ✅ |
| Anthropic (Claude) | ✅ | ❌ | ❌ | ❌ |
| Google (Gemini) | ✅ | ✅ | ✅ | ✅ |
| Ollama (local) | ✅ | ✅ | ❌ | ❌ |
| DeepSeek | ✅ | ❌ | ❌ | ❌ |
| Groq | ✅ | ❌ | ✅ | ❌ |
| Mistral | ✅ | ✅ | ✅ | ✅ |
| Azure OpenAI | ✅ | ✅ | ✅ | ✅ |
| OpenRouter | ✅ | ✅ | ❌ | ❌ |
| xAI | ✅ | ❌ | ❌ | ✅ |
| LM Studio (point de terminaison compatible) | ✅ | ✅ | ✅ | ✅ |
Cela signifie que vous pouvez : - Exécuter localement avec Ollama des modèles comme Llama 3 ou Qwen, pour une utilisation totalement hors ligne sans coût API - Utiliser Groq pour un raisonnement ultra-rapide (idéal pour les questions-réponses rapides) - Bénéficier de DeepSeek pour une compréhension du chinois à rapport qualité-prix élevé - Changer de fournisseur à tout moment, évitant ainsi le verrouillage vendor
3. Génération de podcasts de niveau professionnel
La fonction de génération de podcasts d'Open Notebook est bien plus flexible que celle de NotebookLM :
- 1 à 4 intervenants : personnalisez la voix, le ton et l'expertise de chaque rôle
- Profils d'épisode : définissez le thème, le style et le public cible pour chaque épisode
- Aperçu et édition du script : révisez et modifiez le script avant de générer l'audio
- Support multilingue : anglais, chinois, japonais, portugais, etc.
En comparaison, la fonction Podcast de NotebookLM est figée dans un dialogue à deux personnes (un homme, une femme), avec un style unique et aucune personnalisation possible.
4. API REST complète
Open Notebook propose une API REST complète (par défaut sur http://localhost:5055/docs), permettant de :
- Créer et gérer des Notebooks
- Télécharger et traiter divers types de fichiers sources (PDF, vidéo, pages web, etc.)
- Exécuter la génération de notes assistée par IA et les transformations de contenu
- Interroger l'historique des chats et le contexte
Cela permet d'intégrer facilement Open Notebook dans vos flux de travail existants, par exemple : - Archiver automatiquement les discussions Slack/Discord dans un Notebook - Scraper régulièrement certains sites web et générer des résumés - Intégrer avec les pipelines CI/CD pour générer automatiquement des synthèses de documentation technique
Démarrage rapide : déployez Open Notebook en 5 minutes
La méthode de déploiement recommandée par Open Notebook est Docker Compose. Le processus ne prend que deux commandes.
Prérequis
- Docker Desktop installé et en cours d'exécution
- Au moins 4 Go d'espace disque disponible (pour les données SurrealDB et le cache local)
- Une clé API d'un fournisseur IA (ou aucun si vous utilisez des modèles locaux Ollama)
Étape 1 : Téléchargez docker-compose.yml
curl -o docker-compose.yml https://raw.githubusercontent.com/lfnovo/open-notebook/main/docker-compose.yml
Ou créez manuellement le fichier docker-compose.yml :
services:
surrealdb:
image: surrealdb/surrealdb:v2
command: start --log info --user root --pass root rocksdb:/mydata/mydatabase.db
user: root
ports:
- "8000:8000"
volumes:
- ./surreal_data:/mydata
restart: always
open_notebook:
image: lfnovo/open_notebook:v1-latest
ports:
- "8502:8502" # Interface Web UI
- "5055:5055" # API REST
environment:
- OPEN_NOTEBOOK_ENCRYPTION_KEY=change-me-to-a-secret-string
- SURREAL_URL=ws://surrealdb:8000/rpc
- SURREAL_USER=root
- SURREAL_PASSWORD=root
- SURREAL_NAMESPACE=open_notebook
- SURREAL_DATABASE=open_notebook
volumes:
- ./notebook_data:/app/data
depends_on:
- surrealdb
restart: always
Important : Remplacez OPEN_NOTEBOOK_ENCRYPTION_KEY par une chaîne secrète de votre choix, par exemple my-super-secret-key-2026. Cette clé sert à chiffrer les informations sensibles (comme les clés API) stockées dans la base de données.
Étape 2 : Démarrez les services
docker compose up -d
Attendez 15 à 20 secondes que SurrealDB s'initialise, puis ouvrez votre navigateur et accédez à :
http://localhost:8502
Vous devriez voir l'écran de connexion/inscription d'Open Notebook.
Étape 3 : Configurez la clé API
- Lors de votre première visite, le système vous demandera de créer un compte administrateur
- Après la connexion, allez dans Settings → API Keys
- Cliquez sur Add Credential
- Choisissez votre fournisseur IA (par exemple OpenAI, Anthropic, Google, etc.)
- Collez la clé API et cliquez sur Save
- Cliquez sur Test Connection pour vérifier que la connexion fonctionne
- Cliquez sur Discover Models pour récupérer automatiquement la liste des modèles disponibles
- Cliquez sur Register Models pour terminer l'enregistrement
Si vous n'avez pas de clé API, vous pouvez en obtenir sur ces plateformes : - OpenAI - Anthropic - Google AI Studio - Groq (offre un niveau gratuit)
Utilisez Ollama pour une exécution locale gratuite
Si vous souhaitez une utilisation totalement gratuite et hors ligne, combinez avec Ollama :
# Installez Ollama (macOS/Linux)
curl -fsSL https://ollama.ai/install.sh | sh
# Téléchargez un modèle léger
ollama pull llama3.2:3b
# Démarrez le service Ollama
ollama serve
Puis, dans les paramètres API Keys d'Open Notebook :
1. Ajoutez une credential, choisissez Ollama comme fournisseur
2. Pour l'URL, indiquez http://host.docker.internal:11434 (accès depuis Docker à l'hôte)
3. Testez la connexion et enregistrez les modèles
Ainsi, vous pouvez utiliser toutes les fonctionnalités d'Open Notebook sans payer de frais API (sauf pour la génération de podcasts TTS qui nécessite un service externe).
Fonctionnalités principales en pratique
Créez votre premier Notebook
Après vous être connecté à Open Notebook, cliquez sur le bouton + New Notebook en haut à gauche :
- Nom du Notebook : par exemple « Recherche sur les tendances IA 2026 »
- Description (optionnelle) : expliquez brièvement l'utilité de ce Notebook
- Choisissez le modèle par défaut : sélectionnez un modèle enregistré comme modèle de chat par défaut
- Cliquez sur Create
Chaque Notebook est une base de connaissances indépendante. Vous pouvez créer différents Notebooks pour différents projets, par exemple : - « Notes d'apprentissage Python » - « Analyse concurrentielle » - « Bibliothèque de documents de spécifications produit »
Ajoutez des sources de contenu
Open Notebook prend en charge plusieurs types de sources de contenu. C'est l'une de ses fonctionnalités les plus puissantes.
Types de sources pris en charge
| Type | Format | Description |
|---|---|---|
| Documents PDF | .pdf |
Articles académiques, livres électroniques, rapports |
| Fichiers texte | .txt, .md |
Notes, extraits de code, journaux |
| Documents Office | .docx, .pptx |
Documents Word, présentations PowerPoint |
| Liens web | URL | Extraction automatique du contenu principal |
| Vidéos YouTube | URL YouTube | Transcription automatique des sous-titres (nécessite configuration STT) |
| Fichiers audio | .mp3, .wav |
Enregistrements de réunions, podcasts (nécessite configuration STT) |
Exemple : ajouter un PDF
- Dans la page du Notebook, cliquez sur Add Source
- Choisissez Upload File
- Glissez-déposez ou sélectionnez un fichier PDF (par exemple un article arXiv)
- Attendez la fin du traitement (le système extrait automatiquement le texte et génère des embeddings vectoriels)
- Vous pouvez voir l'état de traitement et le nombre de mots dans la liste des Sources
Exemple : ajouter un lien web
- Cliquez sur Add Source → Web Page
- Collez l'URL, par exemple
https://arxiv.org/abs/2401.12345 - Open Notebook va automatiquement scraper la page et extraire le corps du texte
- Si la page a un paywall ou des protections anti-scraping, il faudra peut-être copier-coller manuellement le contenu
Discutez avec votre base de connaissances (Chat)
Une fois les fichiers sources ajoutés, vous pouvez commencer à discuter avec l'IA.
Dans la page du Notebook, le panneau Chat se trouve à droite :
-
Sélectionnez la portée du contexte : - « All Sources » : répondre sur la base de toutes les sources - « Selected Sources » : répondre uniquement sur la base de quelques fichiers sélectionnés - « Notes Only » : répondre uniquement sur la base des notes écrites manuellement
-
Posez une question, par exemple :
Quels sont les apports principaux de cet article ? Résumez trois points clés en français. -
Consultez les citations : la réponse de l'IA inclut des références aux sources. Cliquez sur une citation pour accéder à l'emplacement correspondant dans le texte original
-
Enregistrez en tant que note : si la réponse de l'IA est précieuse, cliquez sur Save as Note pour l'enregistrer comme note permanente
Générez des notes assistées par IA
En plus du chat en temps réel, Open Notebook permet de générer des notes en lot :
- Dans la page du Notebook, cliquez sur Generate Notes
- Sélectionnez les fichiers sources à traiter (sélection multiple possible)
- Choisissez un modèle de note : - Summary : génère un résumé complet - Key Points : extrait les points essentiels - Q&A : génère des questions fréquentes et leurs réponses - Custom : prompt personnalisé
- Cliquez sur Generate et attendez que l'IA termine le traitement
- Les notes générées apparaissent dans le panneau Notes à gauche, où vous pouvez les éditer
Transformations de contenu
Les Content Transformations sont une fonctionnalité avancée d'Open Notebook. Elles permettent d'exécuter des traitements IA personnalisés sur les fichiers sources.
Par exemple, vous pouvez créer une Transformation pour : - Traduire tous les documents techniques en français - Extraire les actions (Action Items) des comptes rendus de réunion - Compresser un long article de blog en un résumé de 500 mots
Configuration :
1. Allez dans Settings → Transformations
2. Cliquez sur New Transformation
3. Définissez un nom et un template de prompt, par exemple :
Veuillez traduire le document technique suivant en français, en conservant la précision des termes professionnels :
{{content}}
4. Après sauvegarde, faites un clic droit sur n'importe quel fichier source et sélectionnez cette Transformation pour l'exécuter
Génération de podcasts : transformez vos notes en émission audio
La génération de podcasts est l'une des fonctionnalités les plus remarquables d'Open Notebook. Vous pouvez transformer le contenu de n'importe quel Notebook en podcast professionnel multi-intervenants.
Configurez les rôles du podcast
- Allez dans Settings → Podcast Profiles
- Cliquez sur New Profile
- Définissez les rôles : - Animateur : guide la discussion, pose des questions - Expert A : explique en profondeur les détails techniques - Expert B : apporte un point de vue différent ou contredit - (Optionnel) Narrateur : présente l'émission et conclut
Chaque rôle peut être configuré avec : - Type de voix : masculine/féminine/neutre - Vitesse : lente/normale/rapide - Style de ton : formel/détendu/humoristique/sérieux - Fournisseur TTS : OpenAI, ElevenLabs, Google, etc.
Générez le podcast
- Dans la page du Notebook, cliquez sur Generate Podcast
- Sélectionnez les fichiers sources et les notes à inclure (le système extrait automatiquement le contenu clé)
- Choisissez le profil de podcast
- Définissez la durée cible (par exemple 10 minutes, 20 minutes)
- Cliquez sur Generate Script pour prévisualiser le script
- Revoyez et éditez le script (optionnel)
- Cliquez sur Generate Audio pour commencer la synthèse audio
- Une fois terminé, vous pouvez télécharger le fichier MP3 ou l'écouter en ligne
Scénarios d'utilisation concrets
- Révision d'apprentissage : transformez vos notes de la semaine en podcast à écouter pendant les trajets
- Partage de connaissances : créez des supports de formation audio pour votre équipe
- Réutilisation de contenu : convertissez des articles de blog en podcasts publiés sur Spotify/Apple Podcasts
- Apprentissage des langues : générez des podcasts dans la langue cible pour pratiquer la compréhension orale
API REST en pratique : automatisez vos flux de travail
Open Notebook fournit une API REST complète, fonctionnant par défaut sur http://localhost:5055. La documentation de l'API est accessible via Swagger UI : http://localhost:5055/docs
Authentification
Toutes les requêtes API doivent inclure un jeton API dans l'en-tête :
curl -H "Authorization: Bearer YOUR_API_TOKEN" \
http://localhost:5055/api/notebooks
Vous pouvez générer un jeton API dans Settings → API Keys.
Exemples d'API courantes
1. Liste tous les Notebooks
curl -H "Authorization: Bearer $TOKEN" \
http://localhost:5055/api/notebooks
Réponse :
{
"notebooks": [
{
"id": "nb_abc123",
"title": "Recherche sur les tendances IA 2026",
"created_at": "2026-06-07T10:00:00Z",
"source_count": 5,
"note_count": 12
}
]
}
2. Crée un nouveau Notebook
curl -X POST -H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d '{"title": "Étude de nouveau produit", "description": "Base de données d analyse concurrentielle"}' \
http://localhost:5055/api/notebooks
3. Télécharge un fichier source
curl -X POST -H "Authorization: Bearer $TOKEN" \
-F "file=@research-paper.pdf" \
-F "notebook_id=nb_abc123" \
http://localhost:5055/api/sources/upload
4. Envoie une requête de chat
curl -X POST -H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d '{
"notebook_id": "nb_abc123",
"message": "Résumez les points centraux de cet article",
"model": "gpt-4o",
"temperature": 0.7
}' \
http://localhost:5055/api/chat
Exemple de client Python
import requests
BASE_URL = "http://localhost:5055/api"
TOKEN = "your_api_token_here"
headers = {"Authorization": f"Bearer {TOKEN}"}
# Récupère tous les Notebooks
response = requests.get(f"{BASE_URL}/notebooks", headers=headers)
notebooks = response.json()["notebooks"]
for nb in notebooks:
print(f"Notebook: {nb['title']} ({nb['source_count']} sources)")
# Crée un nouveau Notebook
new_nb = requests.post(
f"{BASE_URL}/notebooks",
headers=headers,
json={"title": "Notebook de test", "description": "Test API"}
)
print(f"Créé : {new_nb.json()['id']}")
Grâce à l'API REST, vous pouvez intégrer Open Notebook dans vos flux de travail automatisés existants, par exemple : - Scraper régulièrement les derniers articles depuis un flux RSS et générer des résumés - Archiver automatiquement les discussions d'un canal Slack dans un Notebook - Intégrer avec un pipeline CI/CD pour générer automatiquement une analyse d'impact technique des changements de code
Configuration avancée
Protection par mot de passe pour un déploiement public
Si vous déployez Open Notebook sur un serveur accessible publiquement, il est recommandé d'activer la protection par mot de passe :
Ajoutez la variable d'environnement suivante dans docker-compose.yml :
open_notebook:
environment:
- OPEN_NOTEBOOK_PASSWORD=my-secure-password
Après redémarrage du service, l'accès à l'interface Web nécessitera un mot de passe.
Domaine personnalisé et HTTPS
Utilisez Nginx comme reverse proxy pour configurer un domaine personnalisé et HTTPS :
server {
listen 443 ssl;
server_name notebook.example.com;
ssl_certificate /etc/letsencrypt/live/notebook.example.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/notebook.example.com/privkey.pem;
location / {
proxy_pass http://localhost:8502;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
}
location /api/ {
proxy_pass http://localhost:5055/api/;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
}
}
Sauvegarde des données
Les données d'Open Notebook sont stockées dans deux répertoires :
- ./surreal_data/ : fichiers de base de données SurrealDB
- ./notebook_data/ : fichiers sources téléchargés et cache
Sauvegardez régulièrement ces deux répertoires :
# Crée une sauvegarde
tar czf open-notebook-backup-$(date +%Y%m%d).tar.gz \
surreal_data/ notebook_data/
# Restaure une sauvegarde
tar xzf open-notebook-backup-20260607.tar.gz
Dépannage des problèmes courants
1. Impossible d'accéder à l'interface Web après le démarrage des conteneurs Docker
Symptôme : docker compose up -d réussit, mais http://localhost:8502 est inaccessible
Solution :
# Vérifie l'état des conteneurs
docker compose ps
# Consulte les logs
docker compose logs open_notebook
docker compose logs surrealdb
# Si SurrealDB n'est pas prêt, attendez 30 secondes et réessayez
docker compose restart
2. Échec du test de connexion de la clé API
Symptôme : Le test de connexion OpenAI/Anthropic dans les Settings affiche une erreur
Solution : - Vérifiez que la clé API est correcte et n'a pas expiré - Vérifiez la connectivité réseau (un proxy peut être nécessaire dans certaines régions) - Consultez les logs Docker pour détecter d'éventuelles erreurs SSL ou de timeout - Essayez d'appeler directement l'API depuis l'hôte pour valider la clé
3. Les modèles Ollama ne sont pas détectés
Symptôme : Après avoir ajouté les credentials Ollama, Discover Models renvoie une liste vide
Solution :
# Confirme qu'Ollama est en cours d'exécution
ollama list
# Teste la connexion depuis Docker
docker exec -it <open_notebook_container_id> curl http://host.docker.internal:11434/api/tags
# Si la connexion échoue, vérifiez la configuration réseau Docker
# macOS/Docker Desktop prend en charge host.docker.internal par défaut
# Linux peut nécessiter une configuration supplémentaire
4. Échec du traitement PDF ou contenu vide
Symptôme : Après le téléchargement du PDF, la Source indique « traité » mais le nombre de mots est 0
Solution : - Confirmez que le PDF n'est pas un scan (les scans nécessitent l'OCR, non pris en charge par Open Notebook pour l'instant) - Essayez d'ouvrir le PDF avec un autre lecteur pour vérifier que le texte est copiable - Vérifiez les logs Docker pour détecter d'éventuelles erreurs de mémoire insuffisante - Les gros fichiers (>50 Mo) peuvent nécessiter d'augmenter la limite de mémoire Docker
5. Qualité audio médiocre lors de la génération de podcast
Symptôme : La voix du podcast généré semble mécanique ou peu naturelle
Solution : - Passez à un fournisseur TTS de meilleure qualité (comme ElevenLabs) - Ajustez les paramètres de vitesse et de ton dans le profil de rôle - Assurez-vous que le modèle TTS choisi prend en charge la langue cible - Vérifiez que le quota API est suffisant
Conclusion
Open Notebook est actuellement l'alternative open source la plus mature à NotebookLM. Elle surpasse le produit natif de Google sur plusieurs aspects :
- Souveraineté des données : l'architecture auto-hébergée garantit que vos données de recherche restent totalement privées
- Liberté de modèle : support de plus de 18 fournisseurs IA, évitant le verrouillage vendor
- Fonctionnalités riches : génération de podcasts professionnelle, API REST, actions de transformation personnalisables
- Coût maîtrisable : option Ollama local pour un coût API nul
- Transparence open source : licence Apache 2.0, développement piloté par la communauté
Pour les chercheurs soucieux de leur vie privée, les développeurs ayant besoin de flux de travail personnalisés, ou simplement les professionnels du savoir souhaitant échapper au monopole des géants technologiques, Open Notebook est un outil qui mérite d'être appris.
Prochaines étapes : - Visitez le dépôt GitHub pour suivre les dernières avancées - Rejoignez la communauté Discord pour échanger avec d'autres utilisateurs - Consultez la documentation officielle pour des tutoriels plus détaillés - Déployez localement et créez votre premier Notebook
Cet article est basé sur la version v1 d'Open Notebook. Le projet évolue continuellement ; veuillez vous référer à la dernière version pour les fonctionnalités exactes.