Newsbeuter ou les flux RSS en mode texte

closeCet article a été publié il y a 14 ans 6 mois 8 jours, il est donc possible qu’il ne soit plus à jour. Les informations proposées sont donc peut-être expirées.

Le web en mode texte, voilà qui va en faire sourire plus d’un. Et pourtant…

Avant de vous raconter ma rencontre avec Newsbeuter, sachez qu’il s’agit d’un lecteur de flux RSS qui marche dans une console. Vos flux RSS sont donc affichés en mode texte.

Comment en suis-je arrivé là ?

Mon histoire avec les flux RSS a commencée il y a environ 3 ans avec Thunderbird. Jonglant souvent entre mon PC fixe et un vieux portable selon les besoins de mes chères têtes blondes, il m’a semblé utile de disposer d’une solution me permettant de les consulter depuis n’importe quel poste. Netvibes m’est alors apparu comme LA solution.

Au bout de quelques mois de pratique, l’ajout d’environ 200 à 300 flux et d’une quinzaine d’onglets pour les classer, j’ai commencé à sentir les limites de cet outil dont je trouvais l’ergonomie peu adaptée au traitement de gros volumes. Cependant, il a peut-être évolué depuis, j’avoue ne pas être retourné le voir depuis pas mal de temps. Je me suis alors tourné vers Google Reader dont j’ai trouvé le fonctionnement diablement productif et ergonomique.

Vint ensuite l’époque des doutes et des convictions : j’arrête de d’éparpiller mes données personnelles sur le web, je ramène tout chez moi. Nous sommes en fin 2008 et j’installe Tiny Tiny RSS. Bon ce n’est pas aussi productif que l’outil de Google malgré la forte ressemblance. Les performances de l’application ne sont pas aussi bonnes. Mais la liberté à un prix alors j’ai vécu avec jusqu’à cet été.

Newsbeuter, j’en avais entendu parlé par Christophe et je l’avais rangé au rayon des choses « A essayer quand j’aurais du temps ». Un rayon qui déborde régulièrement…

Cet été donc, me voila au fin fond de la Savoie et connecté au reste du monde grâce à une clé USB 3G prêtée par un ami. Enfin 3G, il n’y en avait pas. Selon les conditions météorologiques j’étais au mieux en EDGE avec environ 15Ko/s de débit voir en GPRS avec 5Ko/s. Quand on a pris l’habitude du haut débit que permet l’ADSL dans nos villes françaises, le web prend alors une toute autre saveur. Il en deviendrai presque insupportable.

Utiliser Tiny Tiny RSS dans ces conditions relevait du plus pur masochisme et j’ai mes limites aussi. C’est alors que Newsbeuter est tombé du rayon où je l’avais rangé.

L’installation sur ma Framakey de vacances, autrement dit Ubuntu se fait par un simple « sudo apt-get install newsbeuter ». Je récupère un export au format OPML de mes flux RSS et je les importe dans Newsbeuter : « newsbeuter -i nomdufichieropml ».

La liste de tous mes flux s’affiche alors dans ma console. Premier réflexe, je cherche à retrouver mes catégories. En effet, j’en lis certaines quotidiennement et d’autres quand j’ai le temps. Un coup d’oeil à la documentation et je découvre la touche « t » qui permet d’accéder aux tags l’autre nom des catégories pour Newsbeuter. Rassuré je peux donc garder mes habitudes de lecture.

La mise à jour de tous les flux se lance grâce à la touche « R ». Chose intéressante, elle s’effectue en tâche de fond et ne vous bloque pas pour la consultation des flux, un autre bon point. Bon bien sûr avec 5Ko/s de bande passante pas de miracles sur les temps de mise à jour des flux. Là où cela devient intéressant c’est sur l’affichage des articles : c’est instantané ! La mise en forme en mode texte est parfaitement lisible. Les URL raccourcies sont même allongées. Voici un exemple :

newsbeuter

Comme vous pouvez le voir les liens sont soulignés avec un renvoi en fin de page où sont synthétisés tous les liens qu’il s’agisse d’images ou d’autres pages web.

La touche « o » vous permet d’ouvrir l’article en cours de visualisation dans votre navigateur « graphique » préféré, mais je ne le fait que lorsque je souhaite laisser un commentaire ou lorsque l’article nécessite de voir une image  ou une vidéo. Concernant les sites affichant des vidéo flash, Newsbeuter les indique avec la mention [flash embarqué: 1]. Au moins vous êtes prévenu en cas d’allergie à ce format.

Le passage à l’article non lu suivant se fait avec la touche « n ». Là cela devient carrément magique, on peut faire défiler à toute vitesse les articles. Impossible à obtenir avec un lecteur RSS en mode web.

Bien sur il y a quelques sacrifices à faire :

  • L’ajout ou la suppression des flux se fait en éditant le fichier texte de configuration,
  • Je n’ai pas trouvé de mode de visualisation des articles non lues par tag. On voit bien la liste des flux contenant des articles non lus, mais il faut « ouvrir » chaque flux pour avoir la liste. En fait j’aimerais bien avoir accès à la liste des nouveaux articles par tag directement.

Rien de bien rédhibitoire en ce qui me concerne.

L’argument supplémentaire ?

Newsbeuter permet de « marquer » les articles. Cette fonction est associée à un script que vous devez fournir. Dans mes usages, je suis amené à faire trois choses d’un article qui m’a intéressé :

  1. Je le publie sur Identi.ca qui l’envoi à twitter qui se fait aspirer par friendfeed (c’est beau les réseaux sociaux 😀 ),
  2. Je l’utilise comme base pour créer une brève.
  3. Je l’enregistre dans mes bookmark à conserver ( vous savez, la rubrique « A essayer quand j’aurais du temps »). Pour ces derniers j’utilise le script Sitebar.

Le point 1 me demandait pas mal d’opérations de copier/coller entre le navigateur et Gwibber mon client de microbloging. L’idée m’est venue d’automatiser cette opération.

Pour cela les éléments dont j’avais besoin était :

  1. une API pou raccourcir les URL
  2. une API pour publier sur Identi.ca

Utilisateur jusqu’à présent du célèbre tr.im, exemple du pourquoi il peut être dangereux d’utiliser des services hébergés, je me suis tourné vers le script de Tux-Planet : Bilbolinks pour son extrême simplicité. Par contre pas d’API alors j’ai dû faire un petit développement à partir de la page d’index. Le source de cette api est téléchargeable .

Il faut également ajouter :

RewriteCond %{REQUEST_URI} !^/api.php(.*)

à votre fichier .htaccess (Merci à Sébastien)

Pour l’API, elle est verrouillée pour mon seul usage car comme me le faisait remarquer Sébastien, elle n’est pas sécurisée et il serait facile de remplir ma base de données. Cependant, Sébastien est en train de finir une nouvelle version qui intégrera cette fois une API et un système limitant le nombre de soumissions d’URL par minute.

Pour finir voici le script bash qui appelle l’API d’identi.ca pour poster un message. Il est basé sur un billet d’Inalgnu.

#!/bin/bash
#{1} contient l'URL
#{2} contient le titre/texte

shorturl=$(curl http://bypsc.fr/api.php?longurl=${1} --silent)
new_message=${2}$" "$shorturl

echo $new_message | iconv -f iso-8859-1 -t utf-8 > /home/philippe/tweet

new_message=$(cat /home/philippe/tweet)

curl
--basic
--user login:password
--data "status=${new_message}"
--output /dev/null

/Je doute qu’il soit très « beau » d’un point de vue script bash, notamment à cause du pipe avec iconv pour convertir le jeux de caractères. Cependant il marche très bien comme vous l’avez peut-être remarqué depuis quelques jours. Il lui manque un contrôle sur la longueur du titre, pour le tronquer si jamais il dépassait 110 à 120 caractères. Merci pour vous suggestions d’améliorations en commentaire.

Notez que cette API pour identi.ca fonctionne aussi pour Twitter. Il suffit de remplacer identi.ca par twitter.com. Je n’ai pas fait de tests cependant. L’idée de cloner l’API de twitter dans Laconica, le script utilisé par le service Identi.ca est assez bonne, car elle facilitera le travail aux développeurs de logiciels de micro-bloging pour intégrer les services basés sur ce script.

Et la synchronisation entre plusieurs postes ? Simple, Newsbeuter est installé sur mon serveur dédié dont je vous parlais il y a quelques jours. Je lis donc mes flux RSS depuis une console connectée en ssh. Il reste à sauvegarder régulièrement le contenu du répertoire .newsbeuter qui contient la liste des flux et la base de données dans laquelle sont stockées toutes les informations.

Newsbeuter le lecteur de flux idéal ?

Pour mes besoins c’est sans appel oui ! Mais je ne le conseillerais pas à tout le monde. Je ne suis pas un fan de la souris et plus je peux faire d’opérations directement avec mon clavier mieux je me porte.

Newsbeuter dispose d’autres fonctions que je vous laisse découvrir, mais vous avez ici celles que j’utilise principalement. Autres touches utiles :

  • « CTRL+n » permet de passer au flux suivant contenant des articles non lus. Si vous êtes en mode visualisation des flux par tag, le parcours se fait bien sûr parmi les flux de ce tag.
  • « SHIFT+n » permet de changer le statut lu/non lu lorsque

Je ne doute pas non plus qu’il puisse exister d’autres lecteurs de flux non web efficaces et performants. Mais le fait que newsbeuter soit « naturellement » en mode texte et l’ergonomie qu’il implique m’a séduit. Cela fait deux semaines que je l’utilise et je n’ai toujours pas de regrets d’autant qu’il me reste toutes les fonctionnalités tournant autour des filtres que je n’ai pas encore exploré.

Prochaine évolution, améliorer mon script pour envoyer les bookmark vers SiteBar. Un peu plus compliqué je pense…

[EDIT 29/08/2009] : Laurent P m’a donné la solution que je n’avais pas encore pris la peine de chercher mais dont je me doutais bien qu’elle existait  : les meta feed. Il s’agit d’une requête que l’on enregistre dans le fichier contenant la liste des fluxs (urls). En voici un exemple donné dans l’aide de newsbeuter : query:Unread:unread = \ »yes\ ». Cette requête permet d’obtenir un flux « virtuel » de tous les articles non lus. Celle-ci query:tag1 Articles:tags # \ »tag1\ » permet elle d’obtenir les articles des flux marqué avec le tag1.

Philippe Scoffoni

Je barbote dans la mare informatique depuis 30 ans (premier ordinateur à 16 ans, un ORIC ATMOS) et je travaille à mon compte au travers de ma société Open-DSI. J'accompagne les associations, TPE et PME dans leurs choix et dans la mise en oeuvre se solutions informatiques libres.

13 réponses

  1. Spip dit :

    Merci beaucoup pour ce très bel article. Je cherche justement ce type de logiciel en CLI, mes recherches ne m’avaient pas convaincu jusqu’ici sur une solution viable. J’utilise en ce moment thunderbird, mais je ne suis jamais parvenu à utiliser des filtres sur les flux RSS afin d’ingorer automatiquement certains messages. Visiblement, à coup de scripts, ca semble possible avec newsbeuster.

  2. Philippe dit :

    merci, je viens de faire une mise à jour de l’article concernant le possibilité de filtre de newsbeuter que je n’avais pas encore exploré et qui sont complètes et permette même de créer des flux « virtuel » regroupant les articles selon un critère donnée.

  3. Spip dit :

    edit, mieux même, avec l’option define-filter dans .newsbeuster/config 🙂
    (croisement…)

  4. Philippe dit :

    Je teste les deux filtre et meta-feed, j’aime bien ces derniers pour l’instant. Avec l’option prepopulate-query-feeds yes dans le fichier config, les compteurs des articles non lus des meta-feed sont initialisés à l’ouverture de newsbeuter. Maintenant faut que je trouve la commande pour mettre la mise à jour des flux en taĉhe cron…

  5. Christophe dit :

    Salut Philippe !

    Le bas débit… a des vertus, n’est-ce pas ? On est obligé d’être plus sélectif pour ne pas dire essentiel. Et avec Newsbeuter… on va à l’essentiel. De toutes façons, je n’ai pas vraiment le choix : je retiens le contenu « texte » ou je supprime le flux ! C’est trop cher, c’est trop lent sinon. Et puis, globalement « les gens » ne sont pas raisonnables, leurs pages sont traversées de scripts et autres bidules qui alourdissent considérablement la consultation. Pour ne prendre qu’un exemple : combien d’articles ont paru pour décrire étape par étape l’installation d’une machine virtuelle ? Un lecteur de flux graphique charge, par défaut (j’imagine) toutes les images. Quoi de nouveau là-dedans ? Avant, ce genre d’articles m’agaçait. Aujourd’hui, Newsbeuter ménage ma susceptibilité ! Plus aucune de ces images superflues, plus de vidéos (flash…beurk!) lourdes ! Et puis… comme les articles sur W$ ne m’intéressent pas non plus, je n’en veux pas :

    ignore-article « * » « title =~ « Windows » » (idem pour Micro$oft).

    Pour la mise à jour automatique et régulière :

    reload-time 60
    reload-threads 2

    Je ne sais pas si c’est possible, je n’ai pas encore trouvé ou pas assez cherché… mais je voudrais bien lire les images par une application externe, comme sous Mutt ou lynx.

  6. Denis dit :

    A titre personnel, j’utilisais RSS Bandit en machine virtuelle jusqu’à ce je découvre NewsFox.

  7. Philippe dit :

    @Christophe : tu n’as donc pas vu l’annonce de Microsoft du passage de Window 7 sous licence GPL !!!

    C’est une blague évidement 🙂 !

  8. okhin dit :

    Juste en passant, pour limiter la taille des messages twittés dasn ton script bash, le plus simpel c’est cut (c’est là pour ça).

    Donc, ligne10, tu remplaces ton new_message par:
    new_message =$(cut -c 110 /home/philippe/tweet) et ça devrait rouler (ou plus tîot, avant l’ajout de l’URL raccourcie, cut prend les n premiers caractères).

    Et merci pour l’info, je teste ça ASAP (et je dégagerai donc probablement Google Reader de fait).

    Okhin

  9. Philippe dit :

    @okhin : merci pour le tuyau et bon test !

  10. Christophe dit :

    @Phillipe

    Elle est bien bonne celle-là ! J’y ai cru un centième de seconde, une sorte de frisson… un peu électrisant, comme un mauvais pas, le sol qui se dérobe sous nos pieds…

  11. mathieui dit :

    Je plussoie cet article ; personnellement je me suis pas tourné vers newsbeuter par nécessité comme toi, mais pour des raisons pratiqus, car je trouve scandaleux d’avoir à lancer une usine à gaz (liferea/akregator, etc…) ou encore les outils web type netvibes pour lire les choses aussi légères que les flux RSS. De plus, l’ergonomie de newsbeuter m’avait également séduit :D.
    Je reviens juste sur  » La touche « o » vous permet d’ouvrir l’article en cours de visualisation dans votre navigateur « graphique » préféré « ; on peut parfaitement utiliser links ou même w3m comme navigateur, si vraiment on veut économiser de la bande passante ^^

  12. Philippe dit :

    @Mathieui : Cela va sans dire 😉

  13. danc dit :

    Merci pour l’article ! J’utilisais newsbeuter uniquement pour la gestion des podcasts (elle est assez bien faite, même si elle peut être améliorée), et ton article m’a décidé à laisser tomber feedly pour newsbeuter.
    Depuis quelques jours que je l’utilise, je suis enchanté de l’accélération ! et du coup, j’utilise maintenant w3m (config newsbeuter) en navigateur web mode texte pour lire rapidement le contenu texte d’un article (avec toujours la possibilité d’ouvrir dans mon navigateur graphique préféré au cas où, à partir des préférences, config par défaut de ma distrib).
    Pour les images (webcomics, …) w3m enchaine agréablement sur imagemagick ou graphicsmagick, et d’autres visualisateurs légers sont disponibles (feh, …)
    pour parcourir un gros paquets de flux RSS, c’est super rapide et efficace. Le bookmarking fonctionne très bien avec le script fourni dans la doc (vers deliciou.us ou semanticscuttle, beaucoup plus joli que sitebar), le marquage est un gros plus, et la possibilité d’organiser les flux comme on veut par tags me permet par exemple de gérer les flux à voir quotidiennement, hebdomadairement, mensuellement, en ne lançant la mise à jour que lorsque c’est nécessaire (reload-only-visible-feeds).

    Un complément sur la synchro entre postes : depuis la version 1.3 ou 2.0, il est possible d’exporter la liste les items lus (newsbeuter -E fichier) afin de l’importer dans une autre instance (newsbeuter -I fichier). Même sans ssh, il est assez simple d’avoir une lecture dispersés entre plusieurs postes, ce que ne permettaient que les lecteurs en ligne !

    Une dernière question : à partir de quoi appelles-tu le script pour poster sur identi.ca ? utilises-tu la config bookmark-cmd ou une autre ? je veux bien faire un échange de config/trucs astuces à l’occasion, car il semble y avoir plein de choses à explorer encore !

    Merci encore !