---
warning: DO NOT CHANGE THIS MANUALLY, THIS IS GENERATED BY https://github.com/duckdb/community-extensions repository, check README there
title: html_readability
excerpt: |
DuckDB Community Extensions
Extract readable content from HTML using Mozilla's Readability algorithm
extension:
name: html_readability
description: Extract readable content from HTML using Mozilla's Readability algorithm
version: 0.1.0
language: Rust
build: cargo
license: MIT
excluded_platforms: "windows_amd64_rtools;windows_amd64_mingw;linux_amd64_musl"
requires_toolchains: "rust"
maintainers:
- onnimonni
repo:
github: midwork-finds-jobs/duckdb-html-readability
variegata: 53ebdc43c1014db969d9bb50359e0eb9d2cf5e6d
ref: c4d5a34f16b343cb2130d78a31826e71d1d4665f
docs:
hello_world: |
SELECT parse_html('
HelloWorld
');
extended_description: |
The `html_readability` extension provides a `parse_html()` function that extracts readable content from HTML pages.
It uses Mozilla's Readability algorithm - the gold standard for extracting readable text from HTML. This is the same algorithm that powers **Reader Mode** in Firefox and Safari, providing clutter-free viewing by stripping away navigation, ads, and other non-essential elements.
## Usage
```sql
-- Parse HTML and get all fields
SELECT parse_html(html_column) FROM pages;
-- Access individual fields
SELECT (parse_html(html)).title FROM pages;
SELECT (parse_html(html)).content FROM pages; -- cleaned HTML
SELECT (parse_html(html)).text FROM pages; -- plain text
```
## Return Type
Returns `STRUCT(title VARCHAR, content VARCHAR, text VARCHAR)`:
- `title`: The extracted page title
- `content`: Cleaned HTML of the main article content
- `text`: Plain text version of the content
extension_star_count: 0
extension_star_count_pretty: 0
extension_download_count: 523
extension_download_count_pretty: 523
image: '/images/community_extensions/social_preview/preview_community_extension_html_readability.png'
layout: community_extension_doc
---
### Compatibility Matrix
This table covers all DuckDB releases that have not reached [end-of-life](https://duckdb.org/release_calendar), including LTS releases, and shows the 2 most recent patch releases of each. Older patch releases are not listed, but the extension may be available for them as well.
| Platform | 1.4.4 | 1.4.5 | 1.5.5 | 1.5.6 | 2.0.0 |
| :--- | :---: | :---: | :---: | :---: | :---: |
| Linux AMD64 | ❌ | ❌ | ❌ | ❌ | ✅ |
| Linux ARM64 | ❌ | ❌ | ❌ | ❌ | ✅ |
| macOS AMD64 | ❌ | ❌ | ❌ | ❌ | ✅ |
| macOS ARM64 | ❌ | ❌ | ❌ | ❌ | ✅ |
| Windows AMD64 | ❌ | ❌ | ❌ | ❌ | ✅ |
| Windows ARM64 | ❌ | ❌ | ❌ | ❌ | ❌ |
| WebAssembly | ❌ | ❌ | ❌ | ❌ | ✅ |
### Installing and Loading
```sql
INSTALL {{ page.extension.name }} FROM community;
LOAD {{ page.extension.name }};
```
{% if page.docs.hello_world %}
### Example
```sql
{{ page.docs.hello_world }}```
{% endif %}
{% if page.docs.extended_description %}
### About {{ page.extension.name }}
{{ page.docs.extended_description }}
{% endif %}
### Added Functions
| function_name | function_type | description | comment | examples |
|---------------|---------------|-------------|---------|----------|
| parse_html | scalar | NULL | NULL | |
### Overloaded Functions
This extension does not add any function overloads.
### Added Types
This extension does not add any types.
### Added Settings
| name | description | input_type | scope | aliases | typed_value |
|----------------|---------------------------------------------------------|------------|--------|---------|-------------|
| temp_directory | Set the directory to which temporary files are written. | VARCHAR | GLOBAL | [] | post.db.tmp |