---
title: HTML2RSS
created: 2026-06-08
updated: 2026-06-08
type: app
tags: [catalogue, rss, app-marathon-batch-b]
confidence: medium
contested: false
sources: [https://selfh.st/apps/?tag=RSS&app=html2rss, https://html2rss.github.io/html2rss/]
---

# 📡 HTML2RSS

> **Générateur de flux RSS à partir de pages HTML** : configuration en YAML, sélecteurs CSS pour extraire titres/liens/descriptions, support full-text scraping.

## 📋 Informations Générales

| Champ | Valeur |
| :--- | :--- |
| **Site web** | [html2rss.github.io](https://html2rss.github.io/html2rss/) |
| **GitHub** | [html2rss/html2rss](https://github.com/html2rss/html2rss) |
| **License** | MIT |
| **Langage** | Ruby |
| **Étoiles GitHub** | 0.3k ⭐ |
| **Catégorie** | [[cat-rss|RSS]] |

## 📝 Description

**HTML2RSS** transforme n'importe quelle page HTML en flux RSS en décrivant les sélecteurs CSS à utiliser pour extraire les items (titre, lien, description, date, image). C'est le **"RSS as code"** : déclaratif, versionnable, testable.

Différence vs RSSHub : HTML2RSS = **générique** (config libre), RSSHub = **catalogue de routes** (maintenu par la communauté). HTML2RSS convient pour des sites de niche que RSSHub ne couvre pas.

Pour qui : développeurs qui veulent scraper un site précis avec un simple fichier YAML, et le maintenir dans Git.

## 🚀 Installation

### Docker Compose

```yaml
version: '3.8'
services:
  html2rss:
    image: html2rss/web:latest
    container_name: html2rss
    restart: unless-stopped
    environment:
      - HTML2RSS_CONFIG_DIR=/config
    volumes:
      - ./config:/config
    labels:
      - "traefik.enable=true"
      - "traefik.http.routers.html2rss.rule=Host(`rss.example.com`)"
      - "traefik.http.routers.html2rss.entrypoints=websecure"
      - "traefik.http.routers.html2rss.tls.certresolver=letsencrypt"
```

### Exemple de configuration (feeds.yml)

```yaml
example_blog:
  url: https://example.com/blog
  channels:
    - title: "Blog Example"
      url: https://example.com/blog
      items:
        selector: "article.post"
        title: "h2"
        link:
          selector: "a"
          attribute: href
        description: ".excerpt"
        time: "time[datetime]"
        time_format: "%Y-%m-%dT%H:%M:%S%z"
```

## 🔄 Alternatives

### Open Source
- [[app-rsshub]] — Catalogue de routes
- [[app-rss-bridge]] — Bridges PHP
- **FeedMe/Feedjira** — Libraries Ruby

### Propriétaires
- **RSS.app** — Service visuel
- **Feed43** — Custom feeds visuels
- **Distill.io** — Monitor + export RSS

## 🔐 Sécurité
- **Sélénium** : optionnel, désactivé par défaut
- **HTTP cache** : ETag, Last-Modified respectés
- **Auth basic** : support du `Authorization` header
- **Rate-limit** : interne (par feed configurable)

## 📚 Ressources
- [Documentation](https://html2rss.github.io/html2rss/)
- [GitHub](https://github.com/html2rss/html2rss)
- [Exemples](https://github.com/html2rss/html2rss/tree/main/spec/fixtures)

## Pages Liées
- [[cat-rss]] — Catégorie RSS
- [[app-rsshub]] — Concurrent
- [[recettes-docker-compose]] — Templates Docker
