Weboob (Web Outside Of Browsers) est une bibliothèque et un ensemble d'applications interagissant avec des sites web. Plus de quatre ans après le premier commit, nous avons le plaisir d'annoncer la sortie de la première version stable de Weboob !

En plus de présenter les nouveautés, cette dépêche profite de cette version pour faire un rapide retour sur l'historique et l'évolution du projet.

Sommaire

Le nouveau browser

Comme nous l'expliquions dans la dépêche précédente, cette annonce de première version majeure est l'aboutissement de notre projet de refactorisation de code. Afin de rendre plus aisé le support de sites web par Weboob, le projet fournit de nombreux outils, dont une bibliothèque qui simule le fonctionnement d'un navigateur. Depuis quelques versions, cette bibliothèque a été réécrite sous le nom de "Browser2" puis tout simplement "le nouveau browser" (navigateur). Celui-ci est prêt à l'utilisation, et suffisamment abouti pour que son API reste stable durant la durée de vie de la branche 1.x. Nous nous autorisons des ajouts, mais l'existant ne sera pas modifié.

Ce nouveau Browser et les outils associés sont l'une des forces du projet : le scraping (extraction de contenu) est souvent une tâche répétitive, mais Weboob fait tout pour atténuer ce problème. Nous pensons que le projet a maintenant atteint un niveau de maturité lui permettant d'honorer cette promesse. Avec tous les outils du browser (ListElement, filtres, pagination, formulaires, etc.), un module peut ne prendre que quelques lignes de code.

Retour sur l'origine du projet

En 2008, un petit script Python utilisant mechanize et html5lib a vu le jour, écrit par un utilisateur d'un site de rencontres français bien connu, et dont l'objet était de remplacer l'interface web sur fond rose par son MUA pour échanger avec ses contacts. Très vite, il renouvela l'expérience avec un autre script pour récupérer automatiquement son solde et ses relevés depuis le site de sa banque.

Lorsque, début 2010, il lança le projet dlfp2mail, il se rendit compte de la possibilité d'appliquer la méthode à bon nombre d'autres sites web, et chercha à factoriser le code au sein d'un même et unique projet. Weboob était né.

Ainsi que ceux qui jasent sur le nom l'ignorent, il était initialement prévu de l'appeler woob. Ce n'est que lorsqu'on constata qu'il existait déjà un autre logiciel portait déjà ce nom qu'il fut décidé de le renommer weboob.

Les concepts fondateurs furent rapidement posés :

  • séparation entre les modules interagissant avec les sites et les applications ;
  • système de capacités que chaque module peut implémenter ;
  • bibliothèque utilisable par des applications tierces.

Le projet s'est depuis enrichi d'un navigateur puissant (remplaçant mechanize par requests) pour le parcours et l'analyse lexicale des pages, d'un système de dépôts pour les modules, de classes helper pour résoudre les claviers virtuels, etc.

37 capacités

Les capacités sont des interfaces permettant aux applications d'interagir avec les sites Web, de façon unifiée. Par exemple, la capacité bancaire offre la possibilité de lister les comptes, obtenir l'historique des transactions, faire des virements, etc. De leur côté, les modules implémentent une ou plusieurs de ces capacités (parfois partiellement uniquement, notamment si le site n'a pas la fonctionnalité). Les applications ont donc des interfaces unifiées et stables pour interagir avec tous les sites d'une catégorie, et non pas avec un seul site bien particulier.

C'est une grande différence avec les nombreux scripts d'extraction de contenu individuels pouvant se trouver sur Internet : on accède à tous les sites permettant de télécharger des vidéos d'une manière unique, à tous les sites bancaires en une seule requête, etc. La diversité des fonctionnalités des sites Web se retrouve en partie chez Weboob : nous proposons actuellement 37 capacités différentes, à comparer avec les 172 sites dont Weboob permet l'accès.

Utilisations tierces

Le projet Weboob fournit des applications basiques pour interagir avec les sites. Ces applications permettent d'effectuer des requêtes complexes (avec notamment un système de filtres sur les résultats), et permettent déjà de nombreuses interactions. Notre objectif n'est cependant pas de remplacer les applications existantes : nous n'allons pas créer un nouveau gestionnaire financier personnel dans Weboob. De très bons logiciels libres existent déjà pour celà. De même pour les lecteurs vidéos.

Nous mettons donc l'accent sur l'export des données en formats utilisables par tous, ainsi que sur l'utilisation de Weboob en tant que bibliothèque dans les projets. Cette méthode a particulièrement bien fonctionné pour les applications bancaires, mais aussi pour des usages plus inattendus. On peut citer à la fois des entreprises (Cozycloud, Budget Insight, Winancial) que des projets communautaires : Skrooge, Kmymoney (nous essayons de faire intégrer un patch upstream), GTranslate, Gnome Shell, un plugin pour XMBC/Kodi

Nouveautés depuis la 0.j

Pour revenir sur les actualités de la 1.0, le temps de développement de cette version a été assez court. Notre objectif (réussi) étant une migration de la version 1.0 dans Debian testing avant le gel. Il n'y a donc eu que six (intensives) semaines entre la 0.j et la version 1.0.

On peut cependant noter que la capacité permettant de consulter des annonces immobilières (CapHousing) a été améliorée. Les annonces immobilières du site Leboncoin ont notamment été ajoutées.

Du côté des applications, une nouvelle option de filtre (LIMIT) est disponible en ligne de commande. Elle permet de limiter la profondeur des recherches des requêtes utilisant le moteur de condition.

Concernant les modules, on peut noter un second module pour une banque américaine (Citibank). Du côté plus francophone, des modules pour suivre l'agenda du libre, pour suivre les marées et une nouvelle application de rencontres.

Enfin, sous le capot, nous avons profondément changé les API et les noms internes des objets. Nous voulions le faire pour présenter une interface cohérente pour la version 1.0. Dans ce cadre, l'utilisation de l'ancien Browser est désormais signalée comme obsolète. Un nouveau niveau de debug fait son apparition pour le nouveau Browser, permettant un suivi fin des appels sur les filtres.

Communauté

Depuis quatre ans, ce sont pas moins de 88 contributeurs qui ont participé à Weboob :

Adrien Kunysz, Ahmed Boussadia, Alexandre Bonhomme, Alexandre Flament, Alexandre Franke, Alexandre Lissy, Antoine, Arno Renevier, Benjamin Carton, Benjamin Drieu, BohwaZ, Camille Baldock, Camille Dehecq, Cedric Defortis, Christophe Benz, Christophe Gouiran, Christophe Lampin, Clément Schreiner, Clément Calmels, Damien Cassou, David Jeanneteau, Erwan Jahier, Etienne Carriere, Fabien Grumelard, Florent Fourcot, François D., François Revol, Gabriel Serme, Gabriel Kerneis, Gilles Quenot, Grmbl Frechneu, Hervé Werner, Jean-Benoist Leger, Jean-Christophe Dubacq, Jean-Philippe Dutrève, Jerem, Jeremy Monnet, Jérôme Poisson, Jocelyn Jaubert, Johann Broudin, John Morrow, Julia Leven, Julien Hebert, Julien Veyssier, Juliette Stehlé, Kevin Pouget, Laurent Bachelier, Laurent Dufréchou, Laurent George, Loic Bontonou, Luc Didry, Lucas Nussbaum, Lucien Loiseau, Mathieu Jourdan, Mathieu Lordon, Matthieu Rakotojaona, Michael Scherer, Nicolas Duhamel, Noé Rubinstein, Oleg Plakhotniuk, Olivier, Olivier Schwander, Philippe Fremy, Pierre Mazière, Raphaël Rigo, Richard Genoud, Roger Philibert, Romain Bignon, Romain Garbage, Ryan Nowakowski, Samuel Loury, Sébastien Monel, Simon Murail, Stefano Zacchiroli, Tanguy Ortolo, Tens San, Thomas Lecavelier, Vicnet, Vincent A, Vincent Paredes, Vincent Texier, Willy Villard, Xavier Guerrin, Yann Rouillard, ianux, leto, theocrite

Nous remercions également pour cette version les étudiants de l'Université de Lille 1, qui ont ajouté des tests dans le cadre d'un projet d'étude.

Weboob est un projet qui grossit et qui vit grâce à ses contributeurs. Si vous souhaitez l’améliorer, que vous connaissiez le Python ou pas, n’hésitez pas à contribuer.

Lire les commentaires

Weboob (Web Outside Of Browsers) est un ensemble d'applications interagissant avec des sites web.

En ces temps de rentrée, une nouvelle version de Weboob arrive pour vous accompagner. Weboob 0.j enjoue le Web depuis hier.

Cette nouvelle version est assez calme, avec environ 300 commits provenant de 13 contributeurs. Elle inclut cependant de nombreuses corrections de bugs, et peut être vue comme la version bêta de la 1.0 à venir.

Les nouveautés sont détaillées en seconde partie de la dépêche. Weboob compte désormais 165 modules, gérant davantage de sites (certains modules pouvant concerner plusieurs sites Web).

Sommaire

Export à l'international avec Wells Fargo et Twitter

Les fondateurs et la grande majorité des développeurs du projet sont francophones, ce qui introduit un biais sur la sélection des modules. Ainsi, tous les sites bancaires étaient jusqu'à présent des sites de banques françaises. On avait été parfois approché par des développeurs pour des banques à l'étranger, mais sans que cela n'aboutisse à des contributions concrètes. C'est désormais fait ! Cette version inclut en effet le module pour la banque Wells Fargo.

Dans la même veine, même si il a été développé par un francophone, un module Twitter a fait son apparition, amenant définitivement Weboob à la pointe des technologies de communication modernes.

Plugin XBMC/Kodi

L'intégration de Weboob dans des applications spécialisées est toujours un objectif. Cela permet une bien meilleure expérience utilisateur, et nous permet de rester concentrés sur les sites web plutôt que de développer des applications compliquées.
Nous sommes donc très heureux de présenter un plugin pour le lecteur XBMC/Kodi. Il permet de rechercher et visionner des vidéos en provenance de tous les sites gérés par Videoob:

Plugin xbmc

Plugin xbmc2

Le plugiciel est disponible dans le dossier contrib.

Browser2 et les opérateurs binaires

Nous présentions lors de la dernière dépêche le nouveau navigateur, permettant de simplifier l'extraction des données des sites Web. Cette simplification passe notamment par des filtres spécialisés, recherchant facilement les éléments du DOM, effectuant des traitements dessus et convertissant automatiquement les données au bon format (que ce soit un entier, une date, etc.). Ces filtres évitent d'écrire une conversion de texte en date dans chaque module. On peut imbriquer les filtres, afin d'obtenir un enchaînement assez puissant sans beaucoup de code :

    obj_duration = Duration(CleanText('//div[@id="video_text"]'))

Comme le code semble l'indiquer, on extrait d'abord le texte que l'on convertit ensuite en durée.

Cette encapsulation entre les différents filtres se fait parfois avec plusieurs niveaux, rendant le code un peu moins lisible. Pour résoudre cela, cette version introduit deux nouveautés basées sur les opérateurs binaires. Le premier est le &, qui permet d'enchaîner deux filtres dans le sens naturel. On pourra ainsi réécrire la ligne par :

    obj_duration = CleanText('//div[@id="video_text"]') & Duration

Le second, |, est utilisé pour définir une valeur par défaut, dans le cas où les filtres n'arrivent pas à convertir les données (notamment parce que la donnée n'est pas disponible sur le site lui-même ou qu'elle n'a pas le format attendu). Petit exemple de code réel :

    obj_duration = CSS('span.thumbtime span') & CleanText & Duration | NotAvailable

Ces opérateurs, optionnels, augmentent la palette des outils à disposition des développeurs de modules, rendant l'écriture de ceux-ci beaucoup plus aisée.

Pour plus d'informations sur le nouveau navigateur et son système de filtres, vous pouvez retrouver une série d'articles publiée (en français) sur le Planet Weboob.

En route vers la 1.0

Cette version sonne la dernière étape vers une stabilisation de Weboob et une sortie prochaine de la 1.0. Un travail d'uniformisation de l'API de développement a ainsi été effectué afin de pouvoir rentrer sereinement dans un cycle permettant la conservation de la rétro-compatibilité.

Cette uniformisation a cependant un coût temporaire : les outils externes utilisant Weboob comme bibliothèque doivent être mis à jour. Dans la même veine, le paquet Debian a été un peu nettoyé et rangé, et l'emplacement des plugins munin a notamment été modifié.

Nous sommes pour le moment dans les temps par rapport à notre planning prévisionnel pour la sortie de la version 1.0, prévue avant le gel de la distribution Debian.

La documentation développeur fait peau neuve

Un effort particulier a été réalisé durant ce cycle de développement pour améliorer la documentation. Nous avons ainsi refait la page d'accueil du site pour développeur, actualisé les guides et réorganisé la structure. Ce qui était parfois divisé entre le Wiki et la documentation est désormais intégralement sur le site dédié. Accessoirement, nous avons changé l'adresse du site, en passant de docs.weboob.org à dev.weboob.org.

Petites nouvelles

Les imports Python ont été réorganisés, pour réduire sensiblement le temps de chargement des applications simples (division par deux pour la plus simple des applications).
À la manière de l'utilitaire ip il est possible, pour économiser quelques lettres lors de l'écriture des commandes, de réduire les noms des modules (arte peut ainsi être écrit ar, voir a). Cela s'ajoute au nom des commandes déjà réduites.

Enfin, deux autres modules font leur apparition. Ils permettent d'accéder aux sites Feedly et Oney Banque

La prise en charge de Python 3 a été améliorée. Le projet reste en Python 2, mais certaines parties du core, et les modules compatibles, sont déjà utilisables avec Python 3.

L'application radioob gère maintenant les albums et les playlists :

$ radioob -b grooveshark search album sixsixsixteen
album.8163226@grooveshark — Blood Duster (Blood Duster)

$ radioob -b grooveshark play album.8163226@grooveshark

Le module arte prend en charge les podcasts.

Contributeurs

Merci aux contributeurs qui ont participé à cette version :

  • Benjamin Carton
  • Florent Fourcot
  • Jean-Philippe Dutreve
  • Julien Hebert
  • Laurent Bachelier
  • Oleg Plakhotniuk
  • Romain Bignon
  • Simon Murail
  • Tanguy Ortolo
  • Tens San
  • Vincent A
  • Vincent Paredes
  • Vincent Texier

Weboob est un projet qui grossit et qui vit grâce à ses contributeurs. Si vous souhaitez l’améliorer, que vous connaissiez le Python ou pas, n’hésitez pas à contribuer.

Lire les commentaires

Weboob (Web Outside Of Browsers) est un ensemble d'applications interagissant avec des sites web.

Et pour profiter du printemps, voici une nouvelle version de Weboob ! Weboob 0.i a en effet été acceptée sur le Web lundi dernier.

Cette version bat de nouveaux records de changements, avec 628 commits provenant de 19 contributeurs. Elle apporte la révolution du projet Browser2 (nouveau navigateur pour simplifier l'extraction des données), ainsi que de nombreux nouveaux modules.

Les nouveautés sont détaillées en seconde partie de la dépêche. Weboob compte désormais 161 modules, gérant au total encore plus de sites (certains modules pouvant concerner plusieurs sites Web).

Sommaire

Browser2 : un nouveau navigateur

Puisque le but est d'extraire des données sur le Web, le navigateur est une composante essentielle du projet. Il permet de simplifier les requêtes HTTP, de gérer les sessions, les cookies, de remplir les formulaires, etc.

Le premier navigateur développé (toujours en service) est basé sur la bibliothèque mechanize, avec toute une couche d'abstraction rajoutée par Weboob pour en simplifier l'utilisation. Nous étions cependant limités par cette bibliothèque : la gestion des formulaires est affreuse, le SSL ne vérifie pas les certificats, le debug des entêtes HTTP était compliqué, etc.

Un projet de nouveau navigateur était donc lancé depuis un certain temps, en se basant cette fois sur la bibliothèque python-requests. Le projet a été retardé plusieurs fois, notamment du fait des nombreux changements d'API de la bibliothèque, empêchant de développer quelque chose de stable. Cette période de maturation de la bibliothèque semble terminée, et le travail a donc pu reprendre.

Cette bibliothèque tenant toutes ses promesses, le nouveau navigateur (Browser2) de Weboob est bien plus performant que le précédent. Nous avons pu partir de bases solides pour reconstruire un navigateur. Les formulaires sont ainsi très simples à remplir, les URL sont bien mieux gérées, les entêtes HTTP (envoyées et reçues) sont sauvegardées en mode Debug, et la gestion de la pagination est enfantine. Enfin, le SSL est pleinement fonctionnel.

ListItem : factorisons le code

Ce n'est pas lié au changement de bibliothèque, mais cela vient également avec le projet Browser2. En examinant nos expériences de plusieurs années sur le parsing de pages, et le code des modules, il était évident pour nous que ce dernier était très (trop) répétitif. Nous voulions limiter la duplication du code, et simplifier l'écriture de module.

C'est cette réflexion qui a conduit à l'écriture des classes ListElement et ItemElement, permettant d'obtenir un code très déclaratif. L'extraction des données se base sur des filtres, dont la composition permet de presque tout faire. Les modules ont la possibilité de déclarer des filtres personnalisés, mais l'objectif est bien de les centraliser dans le cœur pour les réutiliser au maximum.

Il nous reste encore des choses que nous voulons améliorer pour le projet Browser2, mais nous le pensons déjà pleinement utilisable et 24 modules sont maintenant basés dessus. Nous sommes très satisfaits du résultat, notamment quand on observe que la conversion d'un module permet très souvent de diviser le nombre de lignes de code par deux. La documentation est prête, et nous sommes preneurs de tout retour concernant ce navigateur.

Pour plus d'informations sur ce sujet, le Planet du projet contient de nombreux articles détaillés.

Des mots de passe protégés

La protection des mots de passe était souvent un sujet de discussion à l'intérieur et autour du projet. En effet, il n'existait que deux alternatives : stocker le mot de passe dans un fichier en clair, ou bien laisser le champ vide et taper le mot de passe à chaque utilisation.

Plutôt que de réinventer la roue avec un gestionnaire de mot de passe propre au projet, il est désormais possible de configurer un appel à une application externe pour obtenir les identifiants d'un compte. La syntaxe rappelle celle d'un script bash, avec l'utilisation des symboles ` pour délimiter la commande.

Un exemple d'utilisation est ainsi de remplacer dans le fichier de configuration backends une ligne :

password = 123456

par :

password = `pass banques/ing`

Les utilisateurs peuvent également utiliser l'outil de configuration weboob-config pour mettre à jour ce champ, et les nouveaux utilisateurs auront l'option d'utiliser cette méthode dès la configuration d'un module.

Les reprises de Weboob

Si Weboob fournit de (nombreuses) applications, elles n'ont pas vocation à remplacer les applications spécialisées (et bien plus efficaces) existantes. Dans l'idéal, les applications Weboob ne seraient utilisées que pour exporter vers un format standard, et les données traitées par des applications existantes.

C'est pourquoi nous sommes toujours heureux de voir des projets intégrant des appels directs à Weboob. C'est courant dans le monde des applications bancaires (Budgea pour du propriétaire, CozyCloud et son gestionnaire financier, skrooge pour importer les données bancaires ainsi que les factures, etc), mais moins pour les autres applications.

Nous profitons donc de cette dépêche pour parler d'un plugin pour la recherche de vidéos pour Grilo, et d'un plugin pour la recherche dans Gnome Shell. Plus d'informations sur le blog de l'auteur, avec notamment des vidéos de démonstrations.

Les petites nouvelles

Dans les petites nouvelles, la conversion de Weboob vers Python 3 a commencé. Nous prévoyons de rendre progressivement compatible le cœur, les applications, et les modules basés sur Browser2.

Chaque version de Weboob s'accompagne toujours de nouveaux modules, celle-ci n'est pas en reste avec de nombreux modules permettant d'envoyer/recevoir des images. Un module pour le site La Centrale fait également son apparition, ainsi que pour le site de rencontre de plus en plus populaire Tinder. Cela pourrait sauver une génération.

Enfin, on entend parfois sur ce site que le nom du projet est incompatible avec une utilisation professionnelle. La réalité prouve le contraire, avec une prochaine utilisation de Weboob par la Banque Accord (via l'entreprise Budget Insight). On peut même trouver des offres d'emploi mentionnant Weboob.

Association

L'association Weboob continue son rôle de pilotage et protection du projet. Elle tiendra son assemblée générale le 12 Juin dans un lieu qui reste à définir. Si vous êtes intéressés, une annonce est à venir sur la liste de diffusion du projet, et le bas de la page de l'association sera mis à jour.

Contributeurs

Merci aux contributeurs qui ont participé à cette version :

  • Adrien Kunysz ;
  • Ahmed Boussadia ;
  • Benjamin Carton ;
  • Florent Fourcot ;
  • François Revol ;
  • Gabriel Kerneis ;
  • Johann Broudin ;
  • Laurent Bachelier ;
  • Matthieu Rakotojaona ;
  • Noé Rubinstein ;
  • Pierre Mazière ;
  • Raphaël Rigo ;
  • Roger Philibert ;
  • Romain Bignon ;
  • Vincent Osele ;
  • Vincent A. ;
  • Vincent Paredes ;
  • Vincent Texier ;
  • Yann Rouillard.

Weboob est un projet qui vit grâce à ses contributeurs. Si vous souhaitez l’améliorer et que vous connaissez le Python, n’hésitez pas à contribuer.

Lire les commentaires

Weboob (Web Outside Of Browsers) est un ensemble d'applications interagissant avec des sites web.

Quatre mois après la dernière dépêche, Weboob 0.g est paru samedi dernier, profitant des chaleurs rendant d'autres activités moins agréables.

Cette version bat la précédente (déjà exceptionnelle) en terme de commits, en dépassant le nombre symbolique des 500. Ils apportent des nouveautés comme la recherche sur des sites d'annonces d'emplois et le suivi de vos colis. Les améliorations de fonctionnalités existantes ne sont pas en reste, avec la résolution de demandes parfois très anciennes.

Ces nouveautés seront détaillées en seconde partie de la dépêche. Avec 19 nouveaux sites boobisés, Weboob atteint désormais le nombre de 125 modules !

Sommaire

Recherche d'emploi

Weboob se lance une fois de plus dans l'aide contre la crise économique. Grâce aux modules Adecco, Apec, Lolix et Pôle Emploi vous pouvez accéder à de nombreuses annonces en un rien de temps. Pour lire ces annonces, vous pouvez soit le faire en console avec handjoob ou en version graphique avec qhandjoob.

qhandjoob

Les applications n'offrent pour l'instant pas d'intéractions très complexes, mais ont déjà les avantages habituels de Weboob : l'agrégation de résultats de sources différentes en une seule application. Il ne fait aucun doute que la courbe du chômage devrait s'en ressentir.

Suivi de colis

Signe des temps de notre société, le suivi de colis est parfois synonyme de stress, d'énervement, et de frustration lors de l'appui sur la touche F5. C'est désormais terminé grâce à parceloob, permettant déjà le suivi des colis Chronopost et UPS. Vous pouvez désormais suivre vos colis dans votre terminal.

parceloob

Histoires de cœur

Vous avez peut-être remarqué les couleurs sur la capture d'écran précédente : eh oui, Weboob 0.g introduit de la couleur dans les applications consoles. Pour en profiter, il faut installer le paquet python-termcolor, actuellement dans la file d'attente NEW de Debian. Boobank profite également de ces couleurs pour améliorer la lisibilité de vos comptes :

boobank_couleurs

Autre grande nouveauté de cette version, il n'y a plus de limitation par défaut du nombre de résultats dans les applications. Il existait auparavant une limitation de 10 résultats, qui frustrait beaucoup de nouveaux utilisateurs n'ayant pas connaissance de l'option -n. Ce problème n'était cependant pas simple à corriger de façon élégante. C'est désormais fait, et en bonus, les commandes qui sont toujours limitées affichent un message si d'autres résultats sont disponibles mais non affichés.

Sous le capot, cela ne changera rien pour de nombreux utilisateurs, mais nous avons introduit un cache pour les requêtes DNS. Ce n'était pas de gaité de cœur, mais le site de la BNP nous y a forcé. En effet, ce site renvoie des adresses différentes à chaque requête. Ces changements d'adresse provoquent des déconnexions et des difficultés d'accès aux comptes, la solution temporaire étant alors de rajouter une entrée dans le /etc/hosts pour être tranquille. Avec ce cache, cela fonctionnera pour tous les utilisateurs.

Dans les dépendances externes, Weboob est désormais compatible avec Pillow. Nous avons au passage découvert que la « couche de compatiblité » introduite par Ubuntu et Debian (en paquet expérimental pour cette dernière) n'était pas parfaite. L'upstream de Pillow ne fournit pas de compatibilité, Ubuntu le fait mais de manière incomplète, ce qui rendait les rapports de bugs de nos utilisateurs incompréhensibles. Les utilisateurs de rancid peuvent donc installer cette nouvelle version pour corriger les bugs de certains modules.

Enfin, toute trace du support de python 2.5 est désormais supprimée. Cela a permis un peu de nettoyage de code.

Petites nouvelles

Si vous êtes fans d'archivages de factures et de documents administratifs, boobill a désormais accès à trois nouveaux modules. Vous pouvez maintenant récupérer les factures de GDF SUEZ DolceVita, d'Ameli et d'Amelipro.

Du côté des modules bancaires, on peut signaler l'ajout des banques Delubac, Hello Bank et Citélis. Pour les comptes professionnels, beaucoup de modules permettent désormais d'accéder à ces comptes grâce à une simple configuration des modules habituels (BNP, Société Générale, LCL, etc).
Enfin, pour les plus capitalistes d'entre nous, on peut désormais suivre l'évolution des investissements boursiers (sur le module ING uniquement pour le moment) avec boobank. Une confirmation des ordres des virements a également été ajoutée en mode interactif suite à une demande lors de la sortie de la version 0.f.

Si vous avez apprécié la version 0.f, vous serez d'ailleurs heureux d'apprendre l'ajout de nouveaux modules de recettes de cuisine, les sites Allrecipes et Supertoinette font leur apparition. Suite aux nombreux retours que nous avons reçu, les applications qcookboob et qcineoob ont été améliorées.

Comme tout détailler serait trop long, notons simplement l'apparition des modules V'Lille, Paroles.net, podnapisi, Arrêt sur Images et Grooveshark.

Communication

Une partie de l'équipe Weboob était présente aux RMLL, avec une conférence de présentation générale et une conférence plus spécifique sur le monde des sites Webs bancaires. Malheureusement ces conférences étaient programmées en parallèle, mais il est possible de les revoir.

Contributeurs

Merci aux contributeurs qui ont participé à cette version :

  • Benjamin Carton
  • Christophe Lampin
  • Florent Fourcot
  • François D.
  • François Revol
  • Gabriel Kerneis
  • Johann Broudin
  • Julien Veyssier
  • Juliette Stehlé
  • Laurent Bachelier
  • Lucas Nussbaum
  • Mathieu Jourdan
  • Nicolas Duhamel
  • Noé Rubinstein
  • Romain Bignon
  • Sébastien Monel
  • Stefano Zacchiroli
  • Willy Villard

Weboob est un projet qui vit grâce à ses contributeurs. Si vous souhaitez l’améliorer et que vous connaissez le Python, n’hésitez pas à contribuer.

Lire les commentaires

Avant-propos : cet entretien peut sembler être une entorse à la série « vivre du logiciel libre » dans la mesure où la société Budget Insight ne « vit » pas du logiciel libre. C'est la raison pour laquelle cette dépêche n'est pas intitulée « Vivre du logiciel libre […] » mais « Création d'entreprise et logiciel libre […] »


La série d'entretiens sur le logiciel libre et la création d'entreprise continue. Mi-décembre, vous aviez pu lire les échanges avec Daniel Castronovo au sujet de la création et de la cessation d'activité de son entreprise Ikux. Cet entretien présentait la particularité de faire suite à un entretien 3 ans auparavant.

Pour démarrer l'année 2015, voici Romain Bignon, cofondateur de Budget Insight, un éditeur de logiciels. Bien que ne commercialisant pas une offre « open-source », Budget Insight est acteur du logiciel libre notamment à travers le controversé Weboob. Budget Insight était d'ailleurs cité dans la dépêche "Ces startups qui contribuent au libre" fin 2012.

Vous pourrez découvrir l'entretien avec Romain Bignon en deuxième partie de dépêche, suite à quoi vous êtes vivement invités à commenter et questionner :)

Nom et prénom Romain Bignon
Société Budget Insight
Activité de l'entreprise Éditeur de logiciels
Démarrage de l'activité Février 2012
Localisation de la clientèle France
Nombre de collaborateurs 6
Sites web https://www.budget-insight.com
https://www.budgea.com/

Sommaire

La création d'entreprise

Bonjour Romain, peux-tu présenter en quelques lignes qui tu es et ce que tu fais ?

Bonjour, je suis un développeur autodidacte de 26 ans, auteur de plusieurs logiciels libres, les plus connus étant minbif et weboob. J'ai travaillé plusieurs années dans deux entreprises du libre : INL/Edenwall, malheureusement aujourd'hui fermée, et Avencall.

Comment t'es venue l'idée de créer Budget Insight ?

Weboob est née en 2010 de l'union d'un « scraper » pour un site de rencontre, et d'un autre pour le site de la banque BNP Paribas. L'augmentation du nombre de contributeurs a apporté toute une palette de nouveaux modules bancaires, ainsi que des modules de récupération de factures (EDF, etc.).

Courant 2011, alors que j'étais à Avencall, j'ai eu l'envie avec un ami de monter une boite. Ayant fait une rupture conventionnelle pour glander sur mon canapé m'assurer un revenu le temps de monter le projet, nous avons cherché diverses idées et modèles économiques. L'une d'elle m'est venue à la lecture d'un article du Canard Enchaîné parlant de dématérialisation et de coffre-forts électroniques, en utilisant weboob pour l'automatisation de la récupération des factures. Très rapidement, s'est rajoutée l'idée de les associer aux données bancaires, et de fournir des indicateurs (camemberts, catégorisation automatique, etc.).

Malheureusement, l'absence de soutien de mes proches, et le fait que l'on avait tous deux des profils techniques menant à beaucoup d'incertitudes au niveau business, nous ont conduit à abandonner le projet.

Et alors que j'étais sur le point de rechercher du boulot, un centralien avec un projet d'entreprise similaire ayant entendu parler de weboob m'a proposé de picoler avec lui, et ça a débouché sur la création de Budget Insight.

Quelle a été votre démarche pour cette création ? Avez-vous été aidés ?

En février 2012, nous avons donc déposé les statuts de la SAS, puis nous avons été rapidement incubés à l'École Centrale Paris. Cette incubation nous a donné le privilège d'être suivi par un coach, fondateur d'Incwo (aujourd'hui client à nous), qui nous a énormément aidé tout au long de notre évolution.

Nous étions au départ trois associés, Clément (le centralien, qui s'occupe du business), Mathieu (développeur frontend) et moi (développeur backend).

Mathieu a fini par nous quitter, étant beaucoup moins investi que nous, travaillant à distance (il habite Lyon et nous sommes à Paris), et n'étant pas aligné sur l'évolution de la stratégie de la boite.

Avez-vous eu besoin de financements ? Où les avez-vous trouvés ?

Outre l'apport initial, nous avons effectivement sollicité deux types de financements. D'une part, des aides sous forme de subvention ou de prêts à taux zéro, publiques (PIA 1 et 2, AIMA) et privées (Réseau Entreprendre 92). D'autre part, nous avons également ouvert notre capital à un Business Angel.

Aujourd'hui, après 3 années d'activité, vous êtes 6 collaborateurs. Quelle a été la chronologie et la stratégie de vos recrutements ?

Nous avons embauché notre premier salarié (un contributeur weboob) début 2013 lorsque nous avons commencé à faire du service, qui a malheureusement dû nous quitter six mois plus tard pour des raisons de santé. Nous l'avons alors remplacé par quelqu'un d'autre sur cette partie, puis nous avons pris une seconde personne pour travailler sur l'intégration de Budgea en marque blanche, puis sur Budgea Pro.

Maintenant, puisque nous avons arrêté de faire du service, les deux développeurs sont sur Budgea Pro qui reste notre principal axe d'évolution.

Nous avons également fait appel par le passé à quelques amis pour des prestations ponctuelles (notamment sur les applications mobiles), et nous avons un étudiant de l'école 42 en stage chez nous dont nous sommes très contents (nous espérons l'embaucher à terme).

Côté commercial, nous avons assez peu investi (à tort, rétrospectivement), mon associé s'en occupant principalement. Nous avons eu quelques stagiaires (dont une qui a été géniale), mais cela devrait constituer notre première embauche en 2015 dès que nous aurons le budget pour ça.

Du B2C vers le B2B

Il me semble que votre activité originale était basée sur le service Budgea, ciblant le grand public via deux formules : une gratuite et une premium à 2,5€/mois. Cette stratégie impose l'acquisition de nombreux utilisateurs et clients. 3 ans après le lancement, où en êtes vous ?

Effectivement, notre positionnement initial était un service web et mobile pour les particuliers avec deux axes pour gagner de l'argent :

  • Une version Premium, donnant accès à des fonctionnalités avancées tels que le prévisionnel ;
  • Des recommandations personnalisées de produits bancaires et d'assurances via des partenaires.

Comme tu le dis, pour valider le modèle, il faut de nombreux utilisateurs, et cela a un coût. Nous avons fait plusieurs campagnes, nous ayant permis d'atteindre aujourd'hui plusieurs dizaines de milliers d'utilisateurs. Néanmoins, nous avions déjà des concurrents bien installés (Bankin et Linxo) ayant levé des fonds, et donc ayant une force de frappe plus importante.

Nous avons tenté de nous démarquer d'eux par la fonctionnalité du prévisionnel, basée sur des algorithmes statistiques pour détecter automatiquement les dépenses récurrentes et variables, et projetant l'évolution du solde à venir sur un mois. Mais nous avons constaté que cette « killer-feature » n'était pas suffisante pour faire la différence.

Enfin, faire du B2C impose d'avoir une approche marketing importante, or cette caractéristique ne fait pas partie de notre ADN, contrairement à Bankin qui sont très bons dans ce domaine.

Budgea est donc une jolie vitrine de nos technologies, mais nous n'investissons plus dans l'acquisition d'utilisateurs car elle nous rapporte aujourd'hui moins d'un millier d'euros par mois.

Du coup, comment gagnez vous de l'argent ?

Après avoir été lauréats du Réseau Entreprendre 92, nous y avons rencontré le patron d'une autre société qui, impressionné par Budgea, nous a proposé de faire du service pour lui. L'idée était de lui développer son outil interne de production, en utilisant notre agrégation bancaire, puisque son cœur d'activité est de produire des indicateurs aux PME.

Nous avons par la suite été également approchés par d'autres sociétés, notamment des cabinets d'expertise comptable. Cela a été un véritable tournant dans notre réflexion, puisque nous nous sommes rendus compte qu'il y avait un réel besoin sur le marché professionnel d'outils de gestion de trésorerie.

Ça a débouché sur le lancement de Budgea Pro fin 2014, adressé aux TPE et aux experts comptables, en tant que plateforme collaborative, et qui constitue notre principal axe de développement sur 2015.

En parallèle, nous avons également répondu à divers appels d'offres de banques.

Qui sont vos clients ?

Aujourd'hui, nous avons trois typologies de clients :

  • des grands comptes (tels la Banque Accord et l'Express) qui intègrent Budgea en marque blanche pour le proposer à leurs clients ;
  • les éditeurs de logiciels (ERP, trésorerie, notes de frais, etc.) qui utilisent la Budgea API pour faire de l'agrégation bancaire ;
  • les experts-comptables et les TPE pour Budgea Pro.

Comptant des banques parmi vos clients, peux-tu nous en dire un peu plus sur la perception du logiciel libre dans ce domaine ?

Très mauvaise en général :). Cela dépend évidement de l'interlocuteur, mais les « décideurs » associent le logiciel libre à cheap, amateur, qui ne gère pas la montée en charge, etc.

Nous avons abandonné l'idée de les convaincre, nous préférons minimiser cet aspect lors des échanges commerciaux, insistant sur le fait que notre solution peut très bien fonctionner avec Oracle, par exemple.

Cela dit, Linux et Apache font exception, car eux sont relativement bien acceptés.

En revanche, un autre souci que nous avons rencontré, est la sécurité perçue.

Lorsque nous avons intégré Budgea en marque blanche pour une banque, un audit a été commandé par celle-ci auprès d'un prestataire, qui s'est contenté de fournir un rapport de scan automatisé, bourré de faux positifs (il était indiqué notamment qu'il y avait une version de mediawiki vulnérable, alors qu'on ne l'utilise évidemment pas). Ce rapport a été remonté tel quel par la DSI à la direction de la banque, ce qui nous a valu de batailler.

Il nous a été également demandé de mettre à jour Apache de 2.2 à 2.4, car la version utilisée serait vulnérable ! Ce ne fut pas simple de faire comprendre que le système d'exploitation utilisé (Debian) propose des mises à jour de sécurité, et qu'installer une version séparée, non seulement n'améliorait pas la sécurité, mais pire augmentait le risque, puisqu'on se passait du support sécurité de Debian !

Enfin, un scan réalisé avec ssllabs a donné une note de A-, ce qui a crispé, alors que le site de cette banque est lui-même noté… F.

Et le fait que vos solutions reposent sur Weboob (qui est déjà très controversé sur LinuxFR ;) ?

Dans la même logique, nous ne parlons pas (ou peu) de weboob, car outre le nom qui peut faire mauvaise impression, nous vendons un package complet et non pas un ensemble de briques.

Cela dit, ça nous a apporté des opportunités, une grosse banque nous ayant contacté pour un appel d'offre après nous avoir connu via weboob !

En tout cas, le fait qu'il y ait beaucoup d'éditeurs de logiciels qui sont clients de la Budgea API, l'offre commerciale d'agrégation bancaire autour de weboob, montrent que ce dernier répond à une véritable problématique professionnelle, contrairement à ce que peuvent penser quelques trolleurs sur linuxfr :).

J'ai constaté que pas mal de banques proposent des solutions de gestion intégrée à leur portail. Ces solutions reposent-elles sur vos technologies ?

Nous équipons la Banque Accord et avons travaillé avec le Crédit Agricole. Nous avons des concurrents qui ont fourni des parties de leurs technologies (agrégation ou catégorisation automatique) à certaines banques, et d'autres (à l'instar de la Société Générale) développent leurs solutions de gestion en interne.

Je me souviens avoir découvert ces fonctionnalités sur les portails des banques après que Budgea se soit lancé. Est-ce votre service qui a poussé les banques à proposer ces fonctionnalités ?

Ce sont les services similaires au nôtre qui ont effectivement incité les banques à se mettre à la page, car elles se sont rendu compte que nous captions leurs utilisateurs. C'est grâce à l'agrégation bancaire avec des outils tels que weboob que les PFM ont pu émerger, les banques étant très frileuses à l'idée d'ouvrir leurs données à des éditeurs tiers.

Plusieurs d'entre elles, dont la « Direction de l'innovation » est représentée par le stéréotype du banquier du troisième âge, ont tenté (sans succès) de mettre en place des mesures pour empêcher le scraping. Heureusement, d'autres (tels le Crédit Agricole ou AXA Banque) sont plus innovantes et proposent des APIs.

Ceci est en tout cas la preuve que l'ouverture est le meilleur moyen de favoriser l'innovation.

Contribution au libre

Budgea est parfois présenté comme la version "graphique" des modules bancaires de Weboob. Il n'en est néanmoins pas pour autant libre. Puisque vous ne gagnez pas d'argent avec, pourquoi ne pas le libérer ?

C'est une option à laquelle nous avons plusieurs fois réfléchi et qui nous tente bien. Cela permettrait potentiellement de fédérer une communauté de développeurs autour de l'application, qui serait du coup profitable à notre déclinaison professionnelle.

Néanmoins, cela nécessite un certain travail, puisqu'il faut d'une part mettre en place la logistique (packaging, documentation d'installation, documentation développeur, bug tracker public, etc.) et d'autre part soigner la communication pour favoriser la création de cet écosystème. La quantité de travail que nous avons aujourd'hui ne nous permet pas d'investir du temps là-dedans à court terme, mais j'espère qu'on pourra faire ça d'ici fin 2015, car je pense que ça pourrait réellement être bénéfique si nous faisons les choses correctement.

À suivre donc, DLFP sera le premier informé :).

Tu cumules les rôles de directeur général de Budget Insight, président de l'association Weboob et lead développeur Weboob. N'y a-t-il pas un conflit d'intérêts entre ces différentes casquettes ?

L'Association Weboob a justement été créée dans l'optique de limiter le conflit d'intérêt. Il a été décidé à sa constitution de me nommer président car j'étais alors le plus actif contributeur (non seulement en code mais dans la communauté), mais dans l'optique de laisser ma place une fois que la machine sera lancée.

Nous atteignons bientôt ce but puisque lors de la prochaine AG je devrais laisser ma place à Florent Fourcot.

Note que je ne suis déjà plus Release Manager, Florent occupant ce poste depuis plus d'un an.

D'ailleurs la société Budget Insight finance-t-elle des contributions à Weboob ? À d'autres logiciels ou technos libres ?

Budget Insight est bien sûr le premier contributeur sur la partie bancaire, et apporte de nombreuses améliorations au core. Nous avons créé plus d'une quinzaine de modules et assurons une maintenance quasi quotidienne de l'ensemble des modules bancaires, via le buildbot humain que représentent les utilisateurs de Budgea.

La plupart des collaborateurs actuels ou passés de Budget Insight ont payé leur patch (Simon Muraïl, Vincent Paredes, Laurent Bachelier, Noé Rubinstein).

Conclusion

Des projets dans les cartons ? Des innovations à venir ?

Comme tu l'auras compris, le gros de notre activité en 2015 concernera avant tout les professionnels.

Les prochaines innovations qui devraient arriver très vite, sont l'intégration d'un système d'OCR pour la reconnaissance des méta-données des factures, et le lettrage automatisé entre celles-ci et les mouvements bancaires.

Nous allons également mettre en place une interface de gestion de budgets de trésorerie, basée sur le système de prévisionnel de Budgea, adaptée pour les pros.

Un dernier mot ? Un retour d'expérience à partager ?

Je ne regrette absolument pas de m'être lancé, car outre la satisfaction personnelle qu'il y a à gérer une activité et le plaisir que j'ai d'arriver le matin au bureau et de voir l'équipe et l'ambiance qui s'est créée, et même si c'est pas facile tous les jours, c'est extrêmement formateur sur un large panel de sujets : le business, la comptabilité, la gestion de projets clients (qui est au final très différente de la gestion d'un logiciel libre), le management, les RH, la relation client, la gestion des merdes, etc.

Ma courte expérience m'a également appris l'importance du réseau et son entretien, ainsi que le fait qu'il faut être en permanence à l'écoute du marché pour être prêt à pivoter (comme on l'a fait), car il est facile d'aller dans le mur en étant persuadé de détenir une idée révolutionnaire qui n'est pas adaptée.

Enfin, il ne faut pas avoir peur de faire des erreurs, car on en fait de toute façon, et ce qui compte est d'arriver à en tirer le meilleur pour avancer.

Merci Romain pour le temps que tu as pris pour répondre à ces questions (et pour le temps que tu vas prendre pour répondre aux commentaires;) Bonne continuation.

Lire les commentaires

Après avoir travaillé sur l'intégration de Weboob dans Totem avec Grilo, j'ai attaqué un autre aspect de mon projet : enrichir Weboob avec des sources de vidéos de conférences. Ma première tentative s'est focalisée sur le site hébergeant les vidéos des RMLL.

Le résultat de ce plugin est visible dans la vidéo suivante :