Vue normale

Webhooks Proxy Tunnel – Vos webhooks en local sans payer Ngrok

Par : Korben
29 janvier 2026 à 09:28

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

LangExtract - La nouvelle pépite de Google pour extraire des données structurées avec l'IA

Par : Korben
16 janvier 2026 à 15:05

Il y a des combats comme cela auxquels pas grand monde ne pense et qui pourtant sont très importants. Je parle évidemment de la lutte contre le chaos du texte non structuré. Si vous avez déjà essayé d'extraire des données propres d'un tas de PDF (après OCR), de rapports ou de notes griffonnées, vous voyez de quoi je parle : c'est l'enfer ! (oui j'aime me faire du mal en tentant des regex impossibles).

Heureusement, Google a lâché début janvier 2026 une petite pépite en open source (même si c'est pas un produit "officiel") qui s'appelle LangExtract . C'est une bibliothèque Python qui utilise la puissance des LLM pour transformer vos documents textuels en données JSON bien rangées.

Exemple d'extraction sur le texte de Roméo et Juliette ( Source )

Ce qui fait que LangExtract sort du lot par rapport à d'autres outils comme Sparrow , c'est surtout son système de Source Grounding. En gros, chaque info extraite est directement liée à sa position exacte dans le texte source. Ça facilite énormément la vérification et la traçabilité puisque vous pouvez voir visuellement d'où vient la donnée grâce à un système de surlignage automatique.

Sous le capot, l'outil est optimisé pour les documents à rallonge (le fameux problème de l'aiguille dans une botte de foin). Il utilise des stratégies de découpage de texte et de passes multiples pour améliorer le rappel et s'assurer que le maximum d'infos soit capturé.

La visualisation interactive permet de valider les données en un clin d'œil ( Source )

Et cerise sur le gâteau, il permet de générer un fichier HTML interactif pour visualiser les milliers d'entités extraites dans leur contexte original. À la cool !

Côté installation, c'est hyper fastoche :

pip install langextract

Pour faire le job, vous avez le choix des armes : les modèles cloud de Google (Gemini 2.5 Flash/Pro), ceux d'OpenAI (via pip install langextract[openai]), ou carrément du local avec Ollama . Pas besoin de passer des heures à fine-tuner un modèle, il suffit de fournir quelques exemples structurés via le paramètre examples et hop, c'est parti mon kiki.

Voici à quoi ça ressemble sous le capot pour lancer une machine à extraire :

import langextract as lx

# 1. On définit les règles du jeu
prompt = "Extraire les noms de personnages et leurs émotions."

# 2. On donne un exemple (few-shot) pour guider le modèle
examples = [
 lx.data.ExampleData(
 text="ROMEO. But soft! What light...",
 extractions=[lx.data.Extraction(extraction_class="character", extraction_text="ROMEO", attributes={"emotion": "wonder"})]
 )
]

# 3. On lance l'extraction (nécessite une clé API ou Ollama)
results = lx.extract(
 text_or_documents="votre_texte_brut_ici",
 prompt_description=prompt,
 examples=examples,
 model_id="gemini-2.5-flash"
)

# 4. On sauvegarde et on génère la visualisation HTML
lx.io.save_annotated_documents(results, output_name="results.jsonl")
html_content = lx.visualize("results.jsonl")
with open("view.html", "w") as f:
 f.write(html_content)

Honnêtement, je ne sais pas si ça va remplacer les solutions industrielles de RPA , mais pour un dev qui veut structurer du texte sans se prendre la tête, c'est vraiment impressionnant. Que vous fassiez du Grist ou de l'analyse de données pure, cet outil mérite clairement que vous y jetiez un œil !

Source

Bose libère l'API de ses enceintes SoundTouch avant leur fin de vie

Par : Korben
8 janvier 2026 à 12:58

Si comme moi vous avez une enceinte Bose SoundTouch qui traîne chez vous, vous avez peut-être appris que la bestiole allait bientôt perdre son cerveau "cloud". Bose a en effet annoncé la fin du support pour le 6 mai 2026, et de ce que j'ai compris, ça veut dire que votre enceinte va se transformer en brique connectée qui ne se connecte plus à grand chose.

Sauf que non !

Bose a fait un truc plutôt cool puisqu'ils ont publié la documentation complète de l'API locale de leurs enceintes . Du coup, même quand les serveurs Bose fermeront boutique, vous pourrez continuer à bidouiller votre enceinte en local.

Perso, j'ai une petite SoundTouch 10 qui fait bien le boulot depuis des années, donc cette nouvelle me fait plutôt plaisir ! L'API tourne sur deux ports : le 8090 pour les commandes REST classiques (volume, presets, now_playing...) et le 8080 en WebSocket pour les notifications en temps réel. Le protocole s'appelle "gabbo", et avec ça, y'a de quoi faire le ménage dans vos automatisations.

Un petit curl http://votre-enceinte:8090/volume et vous récupérez le niveau sonore. Un autre sur /presets et vous avez vos stations favorites. Et comme la découverte se fait en SSDP ou MDNS, ça s'intègrera nickel avec n'importe quel système domotique.

Et visiblement la communauté n'a pas attendu pour s'y mettre puisqu'il y a déjà plus d'une centaine de projets sur GitHub qui exploitent cette API. Le plus abouti c'est probablement SoundTouchPlus pour Home Assistant, qui permet de contrôler toute la famille d'enceintes depuis votre dashboard.

Après ce qui va disparaître avec le cloud, c'est surtout les presets synchronisés et le streaming direct depuis l'app Bose. Mais le Bluetooth, l'AirPlay, Spotify Connect et le multiroom resteront fonctionnels et avec l'API locale, vous pouvez recréer vos presets en dur. Ouf !

C'est un peu le même délire que ce qui s'est passé avec les thermostats Nest ... quand le fabricant lâche l'affaire, c'est la communauté qui prend le relais sauf qu'ici, Bose joue le jeu en documentant proprement leur API avant de couper les serveurs. Et ça, c'est suffisamment rare pour être souligné !

Voilà... Si vous avez des SoundTouch, allez jeter un œil à l'API avant mai, histoire de préparer votre migration vers du 100% local.

Source

❌