Vue normale

Il y a de nouveaux articles disponibles, cliquez pour rafraîchir la page.
À partir d’avant-hierFlux principal

notebooklm-py - L'API Python que Google refuse de sortir

Par : Korben
16 mars 2026 à 09:46

Google n'a jamais sorti d'API publique pour NotebookLM , son outil qui transforme vos documents en podcasts, quiz et autres résumés grâce à l'IA. Pas de SDK, pas de CLI, y'a rien du tout alors on est tous triiiiiste. A peine juste une interface web avec ses boutons moches et ses menus déroulants, mais impossible à scripter ou à intégrer dans le moindre pipeline bash.

Mais un dev bien inspiré a reverse-engineeré les endpoints REST internes et a pondu notebooklm-py, une lib Python de 168 Ko qui fait tout ce que le web UI refuse de faire. Franchement, c'était pas trop tôt ! Vous en avez rêvé, lui l'a fait !

Un pip install notebooklm-py et voilà, vous avez accès à toute la machinerie Notebook LM à savoir : créer des notebooks, injecter des sources (URLs, PDF, vidéos YouTube, fichiers Google Drive, documents Word, images PNG), poser des questions à vos docs, et surtout générer du contenu... podcasts audio en MP3, vidéos explicatives en MP4, quiz, flashcards, slides en PPTX, infographies en PNG, mind maps en JSON.

Carrément dingue ! Et tout ça pilotable depuis votre terminal zsh ou en script Python async.

En fait, le vrai bonus c'est que la lib déverrouille des fonctionnalités que l'interface web ne propose même pas comme télécharger tous vos podcasts d'un coup en batch au lieu de cliquer un par un sur chaque fichier MP3, exporter vos 50 flashcards en JSON structuré au lieu de juste les afficher à l'écran ou encore récupérer vos slides en PPTX éditable plutôt que le PDF figé.

Ce genre de features, on avait fini par accepter que Google s'en fiche mais pourtant, extraire l'arbre complet d'une mind map en JSON pour la balancer dans D3.js ou Mermaid... clairement c'est un truc que Google aurait dû proposer depuis le début !

Côté CLI, c'est propre. Vous vous authentifiez une fois via notebooklm login (ça ouvre Chromium via Playwright pour choper les cookies de session Google), puis vous enchaînez les commandes.

notebooklm create "Ma Recherche" pour créer un notebook vide,

notebooklm source add ./mon-rapport.pdf pour balancer vos fichiers,

notebooklm generate audio "rends ça punchy" --wait pour lancer la génération de podcast,

et notebooklm download audio ./podcast.mp3 pour récupérer le MP3 sur votre disque.

On peut même éditer ses slides individuellement avec des prompts en langage naturel, du genre "ajoute un graphique sur cette slide-là" !

Pour ceux qui veulent brancher ça dans leurs pipelines, y'a comme je le disais l'API Python async complète. Vous pouvez donc monter un petit cron qui ingère vos derniers bookmarks le vendredi soir, et génèrer un résumé audio de 5 minutes, puis balancer le MP3 directement sur votre NAS Synology.

D'ailleurs, si vous avez déjà joué avec des outils pour booster votre productivité avec l'IA , c'est un peu dans la même veine... sauf qu'ici on tape directement dans les tripes des serveurs Google, sans intermédiaire. Ça tourne avec du Python, et y'a même un mode "agent" (un skill en fait) pour brancher ça dans Claude Code ou Codex. Pas mal, hein ?

Le fait que ça gère aussi la recherche web et Drive avec import automatique des résultats dans vos notebooks, c'est top, un peu comme Oboe qui génère des cours complets via IA , mais en version terminal. Et surtout, pas d'abonnement mensuel à payer, c'est votre propre compte Google qui fait tourner la machine.

Bien sûr, ça reste du reverse-engineering d'APIs non-documentées de Google, ce qui fait que les endpoints REST peuvent changer du jour au lendemain et tout péter. Le projet le dit clairement, c'est plutôt taillé pour du prototypage, de la recherche ou des projets perso et SURTOUT PAS pour de la prod sur un serveur Nginx en front avec 10 000 utilisateurs prêts à ruer dans les brancards en cas de panne.

Et puis faut quand même s'authentifier via un vrai compte Google avec Playwright et Chromium, donc pas question de faire tourner ça sur un serveur headless sans un minimum de config.

Bref, tant que Google ne coupe pas ses endpoints, c'est open bar.

Profitez-en !

iFetch - L'outil pour quitter iCloud sans rien perdre

Par : Korben
9 mars 2026 à 10:34

iCloud, c'est sympa pour stocker vos photos et vos documents... jusqu'au jour où comme moi, vous décidez de vous barrer. Parce que récupérer vos 200 Go de fichiers en masse depuis le cloud d'Apple (plusieurs To pour moi), c'est pas vraiment ce qu'il y a de plus simple (genre, y'a pas de bouton "tout télécharger"). J'ai bien essayé de demander un export de mes datas à Apple et pour la partie iCloud Drive, j'ai juste eu des espèces de CSV bizarres mais pas mes documents.

Heureusement, pour s'extraire des griffes de l'entreprise de Cupertino, y'a un outil Python parfait pour ça.

iFetch , c'est un utilitaire en ligne de commande qui va se connecter à votre compte iCloud Drive et tout rapatrier en local. Le truc gère la 2FA (parce que bon, en 2026, si vous n'avez pas de 2FA activée quand c'est possible, vous méritez d'être envahi de puces de lit), les téléchargements parallèles avec 4 workers par défaut, et surtout les updates différentiels.

En gros, seuls les morceaux de fichiers qui ont changé sont re-téléchargés, du coup, sur un dossier de 50 Go déjà synchro, ça passe en quelques secondes au lieu de tout re-pomper. Et si ça plante au milieu, pas de panique, l'outil reprend là où il s'est arrêté grâce à un système de checkpointing.

Y'a aussi un truc malin, c'est le système de profils. Vous créez un fichier JSON avec des règles d'inclusion et d'exclusion, genre "tous les PDF du dossier Documents sauf ceux du dossier Private" et hop, en une commande et c'est plié.

Le support des dossiers partagés est aussi de la partie (le fameux --list-shared), y'a un système de plugins pour ceux qui veulent étendre le bazar, et même un historique de versions avec rollback automatique. Pas mal pour un outil libre !

Pour l'installer, après c'est du classique. Virtualenv Python, pip install pyicloud tqdm requests keyring, et vous stockez vos identifiants via icloud [email protected] qui balance tout ça dans le trousseau système (Keychain sur macOS, libsecret sur Linux). D'ailleurs, si vous êtes du genre à sauvegarder vos dotfiles dans iCloud , c'est l'outil parfait pour faire le chemin inverse.

Côté utilisation, c'est super sobre :

python ifetch/cli.py Documents/Photos ~/Downloads/icloud-photos

...et ça mouline !! Vous pouvez même monter jusqu'à 8 workers pour aller plus vite (--max-workers=8), configurer les retries (--max-retries=5) ou juste lister le contenu sans rien télécharger avec --list. Attention, si vous avez des noms de fichiers avec des caractères spéciaux (genre des accents ou des espaces... merci macOS, groumpf), vérifiez bien que tout est passé après le transfert.

Alors oui, c'est CLI only, donc oubliez l'interface graphique. La doc mériterait un petit coup de polish et surtout, si votre session 2FA expire en plein transfert... faut relancer l'auth. Ça casse pas le téléchargement en cours, mais bon, c'est un peu "chiant".

Bon au final, pour un projet open source sous licence MIT, c'est plutôt du solide. Et si vous voulez chiffrer vos sauvegardes une fois récupérées en local, y'a des solutions pour ça aussi.

Bref, c'est simple, ça fait le job et c'est gratuit. Que demande le peuple à part du matos Apple moins cher, lool ?

Merci à Lorenper pour le lien !

pyinfra - Du Python au lieu du YAML pour gérer vos serveurs

Par : Korben
6 mars 2026 à 10:35

Ansible, c'est bien. Mais du YAML à perte de vue pour configurer trois serveurs c'est pas non plus l'idéal. Hé bien ça tombe bien car y'a maintenant pyinfra , qui fait tout pareil sauf qu'on écrit du Python. En gros, votre script de déploiement c'est juste du code Python normal avec des imports, des boucles, des conditions... tout ça, tout ça...

Ce projet existe depuis 2014, il est sous licence MIT et côté perfs, c'est de ce que j'ai lu, jusqu'à 10 fois plus rapide qu'Ansible sur des déploiements massifs (genre plusieurs milliers de machines). Bon, sur le papier c'est bien, mais en fait ça dépend surtout de votre infra SSH et de la latence réseau.

Alors ça marche comment ?

Hé bien vous installez le bazar avec uv tool install pyinfra et hop, vous pouvez déjà lancer des commandes sur vos serveurs comme ceci :

pyinfra mon-serveur.net exec -- echo "hello world"

Ça fonctionne en SSH sur le port 22, sur des conteneurs Docker, ou même en local. Le truc est complètement agentless, du coup pas besoin d'installer quoi que ce soit sur les machines cibles. Suffit d'un accès shell POSIX tout ce qu'il y a de plus classique et c'est réglé.

Bon, ça c'est pour l'ad-hoc mais en fait le vrai kiff, ce sont les opérations déclaratives. Je vous montre... Vous créez un fichier deploy.py et dedans, vous mettez ça :

from pyinfra.operations import apt, systemd

apt.packages(
 name="Install nginx",
 packages=["nginx"],
)

systemd.service(
 name="Ensure nginx is running",
 service="nginx.service",
 running=True,
 enabled=True,
)

C'est du bon vieux Python sans DSL bizarre (Domain-Specific Language), pas d'indentation YAML qui vous pète entre les doigts à 3h du mat parce qu'il manque un espace. Et si vous voulez une boucle ? bah for. Une condition ? bah if. Ou encore importer boto3 pour causer avec AWS depuis votre Debian 12 ? No problemo !

Et pour cibler vos machines, suffit de créer un fichier inventory.py comme ceci :

targets = ["@docker/ubuntu", "mon-serveur.net", "autre-serveur.net"]

Puis ensuite un petit : pyinfra inventory.py deploy.py et c'est parti mon kiki. L'outil gère le parallélisme sur 50 serveurs, les diffs (pour voir ce qui va changer AVANT d'appliquer), et le mode dry-run pour les plus prudents.

Côté intégrations, ça cause avec Terraform, Docker, Vagrant... et comme c'est du Python, vous avez accès à tout l'écosystème. Genre, vous voulez checker l'état d'une API avant de déployer ? Un import requests et c'est plié. La doc sur docs.pyinfra.com est plutôt complète, et y'a même la gestion des secrets intégrée avec variables d'environnement, fichiers chiffrés, HashiCorp Vault ou AWS Secrets Manager.

Ça tourne depuis Linux et macOS (et Windows via WSL), mais les cibles doivent être des systèmes POSIX donc pas de déploiement natif sur Windows. Et si votre inventaire contient 3 000 machines avec des configs SSH différentes... bon courage pour le debug en cas de souci (le mode -vvv aide, mais bon...).

Bref, si vous en avez marre du YAML et que Python c'est votre truc, allez jeter un oeil.

Merci à Letsar pour la découverte !

❌
❌