Aller au contenu principal
Aller au contenu principal
← retour au blog

RSS-Proxy : générer des flux RSS sur mesure pour les sites sans flux

Sans mes flux, je suis perdu ! Comment générer des flux RSS propres pour les sites qui n'en ont plus.

Le RSS reste pour moi l'un des meilleurs moyens de suivre l'actualité du web en gardant le contrôle : pas d'algorithme opaque qui choisit ce que je dois lire, pas de fil infini conçu pour me faire perdre du temps, et une lecture chronologique propre dans mon agrégateur.

Le souci, c'est que pas mal de sites modernes ont tout simplement supprimé leur flux RSS natif, ou l'ont tellement bridé qu'il est devenu inutilisable (extraits tronqués, flux cassé à la moindre refonte). Pour contourner ça, RSS-Proxy fait des merveilles.

Qu'est-ce que RSS-Proxy ?

Développé en open-source (damoeb/rss-proxy), RSS-Proxy est une petite application web légère qui convertit n'importe quelle page HTML en un flux RSS ou Atom standard, parfaitement exploitable par votre lecteur de flux préféré (FreshRSS, Miniflux, Thunderbird...).

L'outil propose deux approches :

  1. La détection automatique : vous lui donnez l'URL de la page cible (un blog, une liste d'articles, un catalogue), et son moteur repère de lui-même les blocs répétés pour en extraire les titres, liens et dates.
  2. Le ciblage manuel (CSS / XPath) : si la page est un peu alambiquée ou que la détection récupère trop de bruit, vous guidez l'extraction avec vos propres sélecteurs.

Déploiement rapide avec Docker Compose

De mon côté, pour l'intégrer proprement sur le serveur, le plus simple reste un petit compose :

services:
  rss-proxy:
    image: damoeb/rss-proxy:latest
    container_name: rss-proxy
    restart: unless-stopped
    ports:
      - "3000:3000"
    environment:
      - NODE_ENV=production
      - CACHE_MAX_AGE=1800 # Cache interne de 30 minutes

Une fois lancé, l'interface web accessible sur le port 3000 permet de tester ses règles d'extraction en direct dans le navigateur avant de copier l'URL du flux.

Générer son premier flux en pratique

1. En mode automatique (le plus simple)

Pour une page avec une structure d'articles standard :

http://localhost:3000/api/feed?url=https://exemple.com/blog

RSS-Proxy va chercher la page, parser le HTML et vous renvoyer un flux XML Atom/RSS prêt à l'emploi.

2. Avec des sélecteurs CSS sur mesure

Quand la page contient des éléments parasites (barres latérales, menus, encarts pub), on précise les paramètres dans l'URL pour ne garder que le contenu utile :

Paramètre Rôle Exemple
url URL de la page cible https://exemple.com/news
item Conteneur de chaque article .post-card, article
title Sélecteur du titre h2.post-title, .entry-title
link Sélecteur du lien a.read-more, h2 a
description Sélecteur du résumé .post-excerpt, p
date Sélecteur de la date time, .published-date

Exemple concret d'URL générée :

http://localhost:3000/api/feed?url=https://exemple.com/news&item=article.news-item&title=h3&link=a.main-link&description=.summary

Deux ou trois repères à garder en tête

  • Pensez au cache : Inutile d'interroger la page cible toutes les deux minutes. Laisser RSS-Proxy mettre en cache quelques dizaines de minutes évite de surcharger le serveur distant et de se faire bannir son IP.
  • Sites full-JS (SPA) : Pour les sites qui chargent leur contenu en pur JavaScript côté client (sans SSR), RSS-Proxy peut utiliser un moteur headless (Puppeteer) pour rendre le DOM avant d'extraire les données.
  • Intervalles de rafraîchissement : Dans votre lecteur RSS, un rafraîchissement toutes les 1 à 4 heures suffit largement pour la plupart des sources.

En résumé

C'est typiquement le genre d'outil discret et redoutablement efficace qui permet de centraliser toute sa veille au même endroit, sans dépendre de services tiers payants ou de réseaux sociaux fermés. Couplé à une instance FreshRSS, on retrouve le plaisir de lire le web à son rythme ;)