Vue lecture

Il y a de nouveaux articles disponibles, cliquez pour rafraîchir la page.

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

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 !

Barista - Pilotez votre machine à café De'Longhi en HTTP

Vous avez une machine à café De'Longhi avec du Bluetooth et vous vous êtes déjà forcément dit "Mais pourquoi je dois me lever si tôt pour appuyer sur un putain de bouton comme un homme des cavernes" ?!

Hé bien bonne nouvelle mes petits accro aux café puisqu'un dev a passé ses soirées à sniffer les paquets BLE de sa Dinamica Plus, à reverse-engineerer le protocole de communication, et il en a fait un projet open source qui transforme votre cafetière en serveur HTTP. Du coup maintenant, un petit curl http://pi:8080/api/brew/espresso depuis le lit et hop, le café coule. En live depuis votre oreiller, vos petits yeux à moitié fermés en moins de 3 secondes.

Aaaaah, le bonheur !

Le projet s'appelle Barista et c'est en fait un bridge BLE-to-HTTP écrit en Python. Vous collez ça sur un Raspberry Pi Zero à 15 euros (ou n'importe quel ordi avec une puce Bluetooth) à côté de votre machine à café, ça se connecte en Bluetooth Low Energy, et ça expose une API REST complète. Ça permet ainsi de contrôler la préparation (espresso, cappuccino, latte, americano...), d'ajuster la force de l'arôme sur 5 niveaux, la température, la quantité en ml, et même d'activer la buse vapeur ou l'eau chaude à distance. Attention par contre, faut pas oublier de mettre une tasse sous le bec avant de lancer la commande depuis votre lit...

Côté technique, c'est du Python async avec la bibliothèque bleak pour la partie radio BLE et aiohttp pour le serveur HTTP local. En fait, le truc intéressant c'est que tout le protocole ECAM est documenté dans le repo... structure des paquets, calcul du CRC-16/CCITT, encodage des ingrédients, lecture et écriture des recettes. Donc si vous avez un autre modèle De'Longhi (Primadonna, Magnifica Evo, Eletta Explore), c'est théoriquement compatible vu que De'Longhi utilise le même protocole BLE sur sa gamme ECAM... mais seule la Dinamica Plus est testée et confirmée pour l'instant.

Le problème, vous l'aurez compris, c'est que De'Longhi ne documente pas son protocole BLE (va savoir pourquoi), donc y'a pas forcément de garantie que ça marchera du premier coup sur votre modèle.

Côté prérequis, il vous faut Python 3.11+ et BlueZ sur votre Raspberry Pi 4 ou 5 (le Bluetooth quoi). Après, l'installation tient en trois commandes : pip install barista-coffee, puis barista scan pour trouver votre machine, et enfin barista start --address AA:BB:CC:DD pour lancer le serveur.

Et là vous aurez une interface web sur le port 8080, avec une grille de boutons, un bouton par boisson... mais surtout une API REST qui permet d'intégrer ça avec à peu près n'importe quoi : Home Assistant , Node-RED, un cron job matinal, un raccourci Siri, un script Python... Perso, l'idée du réveil qui déclenche automatiquement un espresso, c'est quand même pas mal !

Évidemment, tout tourne en local ! Comme ça plutôt que de dépendre de l'app officielle De'Longhi (qui marche uniquement à 2 mètres de la machine ^^ donc autant appuyer sur le bouton à ce stade), là c'est du vrai contrôle réseau.

D'ailleurs si le sujet vous branche, on avait déjà listé une tonne de projets Raspberry Pi dont une machine à café pilotable à distance.

Voilà, si vous avez une De'Longhi avec Bluetooth qui traîne dans la cuisine et un Raspberry Pi qui prend la poussière, vous savez ce qu'il vous reste à faire.

Amusez-vous bien et moi j'vais aller me faire un café du coup !

Google lance Gemini Embedding 2, un modèle qui comprend texte, image, vidéo et audio en même temps

Google vient de lancer Gemini Embedding 2, son premier modèle d'embedding nativement multimodal. Texte, images, vidéo, audio et documents sont projetés dans un même espace vectoriel, ce qui permet de faire de la recherche sémantique croisée entre différents types de contenus.

Un seul modèle pour tout indexer

Jusqu'à présent, les modèles d'embedding se limitaient au texte. Vous vouliez indexer des images ou de la vidéo, il fallait un autre pipeline. Gemini Embedding 2 fait tout d'un coup : vous lui envoyez du texte, des images (jusqu'à 6), de la vidéo (jusqu'à 120 secondes) ou de l'audio (jusqu'à 80 secondes), et il vous renvoie un vecteur dans le même espace. Le modèle gère plus de 100 langues et prend en charge jusqu'à 8 192 tokens en entrée pour le texte.

Côté technique, le modèle utilise le Matryoshka Representation Learning, ce qui permet de choisir la taille des embeddings entre 128 et 3 072 dimensions. Google recommande 768 dimensions pour un bon compromis entre qualité et stockage, ce qui divise par quatre l'espace disque par rapport à la taille maximale.

Les tarifs et la concurrence

Le texte est facturé 0,20 dollar par million de tokens, avec un mode batch à moitié prix. Les images montent à 0,45 dollar, l'audio à 6,50 dollars et la vidéo à 12 dollars par million de tokens. Un palier gratuit est disponible pour tester.

Côté performances, Google affiche de bons scores sur les benchmarks MTEB : 69,9 en multilingue et 84,0 en code. Mais pour du texte seul, OpenAI reste bien moins cher avec son text-embedding-3-small à 0,02 dollar par million de tokens, soit dix fois moins.

Le modèle est disponible via l'API Gemini et Vertex AI, et compatible avec LangChain, LlamaIndex, Weaviate ou ChromaDB.

Le vrai argument de Google ici, c'est le multimodal. Si vous avez besoin d'indexer des catalogues produits avec photos et descriptions dans le même vecteur, ou de faire de la recherche dans des archives vidéo, il n'y a pas d'équivalent chez OpenAI pour le moment.

Mais pour du texte pur, la différence de prix est quand même importante. On attend de voir comment ça se comporte en production, et si les scores MTEB se confirment sur des cas d'usage réels.

Source : Blog Google

Cloudflare /crawl - Aspirez un site entier en un seul appel API

Crawler un site entier, ça devrait pas être aussi compliqué. Et pourtant, entre les scripts maison qui cassent tous les 2 jours et les headless browsers qui bouffent de la RAM comme pas permis, c'est assez la galère ! Du coup, Cloudflare, dans sa grande bonté (lol) vient de sortir un endpoint /crawl (en open beta) dans la section Browser Rendering qui simplifie tout ça... vous balancez une URL dessus et hop, ça ASPIRE tout le site (oui oui).

En gros, vous envoyez une requête POST avec l'URL de départ, et le service se charge de découvrir les pages (via le sitemap, les liens internes, ou les deux), de les générer dans un navigateur headless, et de vous renvoyer le contenu en HTML, Markdown ou même en JSON structuré grâce à Workers AI. Le tout de manière asynchron ! Vous, vous récupérez juste un job ID et vous revenez plus tard chercher les résultats quand c'est prêt.

Créer votre token API

Avant toute chose, il vous faut un token API Cloudflare avec la permission "Browser Rendering - Edit". Rendez-vous dans votre dashboard Cloudflare, section API Tokens, et créez-en un nouveau. Notez aussi votre Account ID (visible dans l'URL du dashboard ou dans la section Overview de n'importe quel domaine).

Lancer un crawl

Là, ensuite c'est hyper simple. Un seul appel curl suffit :

curl -X POST "https://api.cloudflare.com/client/v4/accounts/VOTRE_ACCOUNT_ID/browser-rendering/crawl" \
 -H "Authorization: Bearer VOTRE_TOKEN" \
 -H "Content-Type: application/json" \
 -d '{"url": "https://example.com"}'

Et là, vous récupérez un job ID en retour (genre c7f8s2d9-a8e7-4b6e-...). Par défaut, le crawler va explorer 10 pages max avec une profondeur quasi illimitée. Mais bon, 10 pages c'est vite limité, du coup vous pouvez ajuster tout ça comme ceci :

curl -X POST "https://api.cloudflare.com/client/v4/accounts/VOTRE_ACCOUNT_ID/browser-rendering/crawl" \
 -H "Authorization: Bearer VOTRE_TOKEN" \
 -H "Content-Type: application/json" \
 -d '{
 "url": "https://example.com/docs",
 "limit": 50,
 "depth": 3,
 "formats": ["markdown"],
 "render": false,
 "options": {
 "includePatterns": ["https://example.com/docs/**"],
 "excludePatterns": ["**/changelog/**"]
 }
 }'

Le paramètre render: false permet de récupérer le HTML brut sans lancer de navigateur headless, c'est carrément plus rapide pour les sites statiques. Sachez quand même que pendant la beta, ce mode n'est pas facturé ! Youpi !

Récupérer les résultats

Une fois le crawl lancé, vous interrogez le job avec un GET :

curl "https://api.cloudflare.com/client/v4/accounts/VOTRE_ACCOUNT_ID/browser-rendering/crawl/VOTRE_JOB_ID" \
 -H "Authorization: Bearer VOTRE_TOKEN"

Vous obtenez alors le statut (running, completed, errored...) et la liste des pages crawlées avec leur contenu dans le format demandé. Si le résultat dépasse 10 Mo, un curseur de pagination est inclus pour récupérer la suite.

Les options qui tuent

Y'a quelques paramètres bien pensés pour les cas plus avancés :

  • modifiedSince et maxAge pour du crawling incrémental (ne re-crawler que les pages modifiées récemment)
  • source: "sitemaps" pour ne suivre que le sitemap au lieu de parser tous les liens
  • jsonOptions avec un prompt Workers AI pour extraire des données structurées automatiquement (genre récupérer le nom, le prix et le stock de 500 fiches produit d'un e-commerce en une seule passe)
  • rejectResourceTypes pour bloquer images, fonts et CSS et accélérer le crawl
  • authenticate pour les sites protégés par une auth HTTP basique

Attention quand même, y'a quelques subtilités à savoir. Un job peut tourner 7 jours max et les résultats sont conservés 14 jours seulement, du coup pensez à les récupérer vite. Le crawler respecte le robots.txt (y compris le crawl-delay), et si un site vous bloque, les URLs apparaissent comme "disallowed" dans les résultats. Sauf que ça ne vous dit pas pourquoi, faudra aller checker le robots.txt vous-même.

Voilà, cette "merveille" pour les scrappeurs fous est dispo sur les plans Free et Paid de Workers , et si vous voulez aller plus loin, Cloudflare propose aussi des endpoints pour les screenshots, les PDF et le scraping ciblé .

Voilà, un petit crawler inclus dans le plan Free de Workers, qui respecte le robots.txt et qui sort du Markdown ou du JSON structuré... je vais surveiller ça de près !

n8n MCP - Quand votre IA pilote vos workflows

Le MCP, c'est devenu LE truc standard pour connecter des IA à vos outils. Sauf que voilà... brancher Claude sur n8n, en pratique, c'était encore un peu le bazar avec du JSON à copier-coller dans tous les sens. Mais heureusement, un dev a décidé de faire les choses proprement avec un vrai serveur MCP dédié.

n8n MCP , c'est un serveur MCP open source (sous licence MIT) qui donne à votre IA un accès direct à n8n avec plus de 1 000 nœuds supportés (Gmail, Slack, PostgreSQL, HTTP...), leurs propriétés, leurs opérations, bref tout le bazar. Vous décrivez ce que vous voulez, et youplaboom, l'IA construit le workflow à votre place. Comme ça plus besoin d'exporter du JSON, de l'importer, de corriger les erreurs cryptiques... c'est plié !

Et le truc chouette, c'est son système de mises à jour différentielles. Au lieu de renvoyer tout le workflow à chaque modif (et bouffer vos tokens comme un goinfre), le serveur ne transmet que ce qui a changé. Résultat, 80 à 90% de tokens en moins sur les grosses modifs. Pas mal du tout, hein ?!

Côté compatibilité, c'est large : Claude Desktop, ChatGPT, Cursor, Gemini CLI, Codex CLI... la liste est carrément longue. Via le service hébergé, c'est du OAuth zero-setup pour pas mal de clients, vous cliquez et c'est bon. Pour les IDE comme Cursor ou VS Code (avec une extension MCP), faut une clé API mais rien de bien sorcier. Après, ça ne marchera pas avec tous les clients MCP non plus, donc vérifiez la liste sur leur site avant de vous lancer.

D'ailleurs, si vous avez kiffé OneMCP qui simplifie la gestion des serveurs MCP, ici c'est totalement complémentaire. OneMCP gère la plomberie générale, n8n MCP se spécialise sur un truc précis à savoir donner à l'IA la connaissance COMPLÈTE de n8n (plus de 500 nœuds officiels et autant de nœuds communautaires) pour qu'elle puisse construire des workflows qui marchent du premier coup... enfin presque.

Y'a aussi une bibliothèque de plus de 2 700 templates de workflows prêts à l'emploi avec recherche sémantique. Genre vous dites "je veux un workflow qui surveille mes commits GitHub et m'envoie un récap Slack chaque soir" et l'IA pioche dans les templates existants pour vous pondre un truc fonctionnel.

Après pour l'installation, c'est soit le service hébergé (gratuit pour 100 appels par jour mais rien à configurer), soit en self-hosted via npx n8n-mcp (faut Node.js 18+) ou Docker (~280 Mo l'image, basée sur Alpine). Perso, le mode hébergé suffit largement pour tester, et si vous voulez aller plus loin c'est de la licence MIT donc vous faites ce que vous voulez.

Attention quand même, le projet (tout comme moi) recommande de ne JAMAIS laisser l'IA modifier vos workflows de production directement. Toujours copier, tester en dev, exporter un backup. C'est du bon sens mais ça vaut le coup de le rappeler parce que sinon, le jour où votre IA décide d'"optimiser" votre pipeline de facturation en supprimant des nœuds qu'elle juge inutiles... bah gros caca en perspective !

Et si vous voulez voir comment ça se marie avec d'autres serveurs MCP genre Chrome DevTools MCP , c'est tout à fait possible de combiner les deux pour que votre IA construise un workflow n8n ET debug le front dans Chrome en même temps. La stack IA-augmentée commence à devenir sérieusement sérieuse ! Oui je suis sérieux ^^ !

Bref, plutôt que de bidouiller avec du JSON à la main ou de lancer des OpenClaw sans sécurité en mode gros débilo de Linkedin..., bah vous demandez à Claude et lui fera le job proprement sous votre contrôle !

Clés API Google - 3000 clés publiques donnent accès à Gemini

Les clés API Google que vous collez dans votre JavaScript pour afficher une carte Maps... hé bien elles ne sont plus si inoffensives. Car depuis que Gemini est entré dans la danse, ces mêmes clés donnent maintenant accès à vos fichiers privés et surtout à votre facture IA.

Et personne ne nous a prévenu...

En gros, Google utilise un format de clé unique, les fameuses AIza..., aussi bien pour Maps et Firebase (public, collé dans le HTML, tout le monde s'en fout) que pour Gemini (privé, accès aux fichiers, facturation). Le problème c'est que quand vous activez l'API Gemini sur un projet Google Cloud, TOUTES les clés existantes de ce projet héritent automatiquement de l'accès Gemini. Sans warning, sans notification, sans rien... Ouin !

Les chercheurs de TruffleSecurity ont ainsi trouvé presque 3000 clés API Google valides dans le dataset Common Crawl de novembre 2025. Des clés qui trainent dans du code JavaScript, des pages HTML, des repos GitHub publics... et qui fonctionnent sur l'endpoint Gemini. Il suffit d'un simple curl avec une clé Maps récupérée sur un site web, et hop, vous accédez à l'API Gemini du propriétaire. Fichiers privés, contenu en cache, facturation sur son compte.

Et parmi les victimes, on trouve des institutions financières, des boîtes de cybersécurité, et... Google eux-mêmes (oui oui, vraiment).

Le 21 novembre 2025, TruffleSecurity signale donc le problème et la réponse de Google le 25 novembre c'est : "intended behavior" (comportement normal)... Sauf que le 2 décembre, Google a reclassifié ça en bug, puis le 13 janvier 2026, ça passe finalement en Tier 1. On est donc passé du "c'est normal les frérots" à "ah oui quand même, oupsi oups", en 7 semaines.

Maintenant, pour ceux qui se demandent si leurs clés API Google sont concernées, direction console.cloud.google.com , section "APIs & Services" puis "Identifiants".

Si vous voyez l'API " Generative Language " de Gemini API activée sur un projet avec des clés non restreintes... attention, c'est le moment de faire le ménage. Ajoutez des restrictions IP ou HTTP referrer, et surtout, utilisez des comptes de service plutôt que des clés API pour tout ce qui touche à Gemini (sauf si vous aimez les surprises sur votre facture ^^).

Le truc tordu, c'est que la doc Firebase dit noir sur blanc que les clés API ne sont pas des secrets. Google Maps vous dit carrément de les coller dans votre HTML. Et maintenant, ces mêmes clés donnent accès à une IA qui peut lire vos fichiers. Du CWE-1188 pur et dur ! Et c'est pas la première fois que Google se fait taper sur les doigts pour ce genre de souci avec Gemini .

Du coup, Google a annoncé des nouvelles mesures, du scoped defaults, du blocage de clés fuités, des notifications proactives...etc. Reste donc à voir si ça arrivera avant que les presque 3000 clés exposées soient exploitées par des gens moins bien intentionnés.

Bref, dix ans à dire que c'est public, et hop, aujourd'hui c'est devenu top secret. Bien joué Google !!

Source

1dex - Toutes les données d'un quartier en un clic

Quentin, fidèle lecteur de Korben, développe en solo depuis presque un an un outil qui va parler à tous ceux qui cherchent un appart ou une maison et qui en ont marre de jongler entre quinze onglets pour avoir une vision claire d'un quartier.

1dex.fr c'est une plateforme qui agrège un paquet de données géographiques et immobilières sur n'importe quelle adresse en France. Prix de vente au m², transactions DVF, permis de construire, qualité de l'eau, pollution de l'air, travaux à proximité, écoles... Le tout sur une interface cartographique plutôt bien foutue.

Concrètement, vous entrez une adresse, vous cliquez sur "Analyser cette zone" et hop, la carte se remplit de données. On peut alors visualiser les parcelles alentours, voir les dernières ventes, repérer les chantiers en cours, et même afficher les immeubles avec syndic de copropriété. Y'a même un système de calques pour switcher entre fond de carte classique, vue satellite ou mode sombre.

Perso j'aime bien ce genre d'outil qui met la data à portée de main sans avoir besoin de fouiller data.gouv.fr pendant des heures.

Son modèle est freemium mais rassurez-vous, l'essentiel est gratuit avec une limite journalière d'analyses. Si vous dépassez, soit vous revenez le lendemain, soit vous passez à la caisse pour un accès intensif. Quentin bosse aussi sur une API pour les pros et une extension navigateur qui ajoutera les données 1dex directement sur les annonces immo. Pas mal pour éviter les mauvaises surprises avant même de visiter !

Voilà si vous êtes en recherche de logement ou juste curieux de savoir ce qui se passe autour de chez vous, ça vaut le coup d'œil -> 1dex.fr

Et bravo à Quentin !

Webhooks Proxy Tunnel – Vos webhooks en local sans payer Ngrok

Ce matin, je cherchais un moyen simple de tester des webhooks en local sans passer par ce bon vieux Ngrok qui est devenu un peu relou avec ses limites en version gratuite. J'ai d'abord pensé à monter mon propre serveur VPN (coucou Tailscale), mais franchement flemme.

Et puis tout à fait par hasard (aaah les joies de la sérendipité) je suis tombé sur cet outil qui devrait vous plaire, surtout si vous développez des applis qui doivent recevoir des notifications HTTP (GitHub, Stripe, Slack...). Ben oui vous connaissez la galère... votre serveur de dev est sur "localhost", donc inaccessible depuis l'extérieur, du coup, impossible de recevoir ces fameux webhooks sans ouvrir votre routeur ou utiliser un tunnel.

C'est là qu'intervient Webhooks Proxy Tunnel !

Grâce à cet outil, au lieu de multiplier les intermédiaires, vous déployez votre propre tunnel... directement sur l'infrastructure de Cloudflare. Et le meilleur c'est que ça tourne généralement très bien sur leur offre gratuite (dans la limite des quotas Workers évidemment, donc attention si vous bourrinez comme un fifou).

L'outil utilise un Cloudflare Worker couplé à un Durable Object (une sorte de mini-serveur d'état). Le Worker reçoit alors les requêtes publiques sur une URL en HTTPS (genre "truc.workers.dev") et les transmet via une WebSocket à un petit client Node.js qui tourne sur votre machine. Et hop, le trafic arrive sur votre port local.

Perso, je trouve ça brillant car même si le trafic passe techniquement par Cloudflare (puisque c'est leur infra), vous gardez la main sur le code qui s'exécute et vous évitez d'envoyer vos données à un service tiers supplémentaire dont vous ignorez tout.

Pour l'installer, ne plus c'est hyper fastoche. Il vous faut juste un compte Cloudflare et Node.js. J'ai testé l'install en moins de 5 minutes, vous clonez le dépôt, vous installez les dépendances et vous lancez le déploiement (qui vous demandera de vous authentifier) :

git clone https://github.com/peter-leonov/webhooks-proxy-tunnel.git
cd webhooks-proxy-tunnel/worker
npm install
npm run deploy

Une fois déployé, le script vous donne une URL et il ne vous reste plus alors qu'à lancer le client local en lui disant où taper (par exemple votre port 3000) et le tour est joué !! Vous pouvez même gérer plusieurs tunnels en parallèle si vous bossez sur plusieurs projets, chaque tunnel ayant son ID unique.

Attention quand même, c'est conçu pour du développement hein, pas pour streamer de la 4K. Les requêtes doivent tenir en mémoire (limite de 100 Mo environ) donc sauf si vous transférez des fichiers énormes via vos webhooks, ça passera crème pour du JSON ou des petits payloads binaires.

Voilà, si vous cherchiez une alternative self-hosted et gratuite pour vos tests, c'est clairement un outil à garder sous le coude. Et si vous avez besoin de trucs plus costauds pour du réseau d'entreprise, jetez un œil à Tailscale ou Octelium .

Source

❌