Readability4J VS readability

Compare Readability4J vs readability and see what are their differences.

Readability4J

A Kotlin port of Mozilla‘s Readability. It extracts a website‘s relevant content and removes all clutter from it. (by dankito)

readability

A standalone version of the readability lib (by mozilla)
InfluxDB - Power Real-Time Data Analytics at Scale
Get real-time insights from all types of time series data with InfluxDB. Ingest, query, and analyze billions of data points in real-time with unbounded cardinality.
www.influxdata.com
featured
SaaSHub - Software Alternatives and Reviews
SaaSHub helps you find the best software and product alternatives
www.saashub.com
featured
Readability4J readability
3 51
135 8,100
- 3.7%
4.3 6.3
over 2 years ago 9 days ago
HTML JavaScript
Apache License 2.0 GNU General Public License v3.0 or later
The number of mentions indicates the total number of mentions that we've tracked plus the number of user suggested alternatives.
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.

Readability4J

Posts with mentions or reviews of Readability4J. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2023-07-12.
  • Creating an advanced search engine with PostgreSQL
    9 projects | news.ycombinator.com | 12 Jul 2023
    Depending upon the type of content, one might want to look into using the Readability (Browder's reader view) to parse the webpage. It will give you all the useful info without the junk. Then you can put it in the DB as needed.

    https://github.com/mozilla/readability

    Btw, readability, is also available in few other languages like Kotlin:

    https://github.com/dankito/Readability4J

  • How does Firefox's Reader View work?
    15 projects | news.ycombinator.com | 30 Mar 2022
    My Hacker News client HACK for iOS and Android has a reader mode ability browser. While on iOS, I was able to use the reader mode feature provided by SFSafariViewController, that wasn't available on android.

    So I had to read a ton about this. I ended up using a heavily modified Kotlin version of Readability:

    https://github.com/dankito/Readability4J

    https://play.google.com/store/apps/details?id=com.pranapps.h...

    https://apps.apple.com/us/app/id1464477788

  • Show HN: Instantly Listen to Any URL
    3 projects | news.ycombinator.com | 13 Aug 2021
    Not sure about OP but I just implemented this in my Hacker News android client (thanks for the idea OP).

    This is how I implemented it. I had already achieved article to "reader mode" by heavily customizing the Kotlin port of Mozilla‘s Readability:

    https://github.com/dankito/Readability4J

    Then I pass the text via Android's TextToSpeech library and it works very well:

        fun trySpeaking(str:String){

readability

Posts with mentions or reviews of readability. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2024-02-25.
  • Mozilla: Readability.js
    8 projects | news.ycombinator.com | 25 Feb 2024
  • CSS for readability
    3 projects | /r/webdev | 9 Dec 2023
    I'm working with the Mozilla's readability library https://github.com/mozilla/readability to get the "readable" text from articles and now I want to style the extracted text in a readable way.
  • Building a Serverless Reader View with Lambda and Chrome
    5 projects | dev.to | 25 Sep 2023
    Do you remember the Firefox Reader View? It's a feature that removes all unnecessary components like buttons, menus, images, and so on, from a website, focusing on the readable content of the page. The library powering this feature is called Readability.js, which is open source.
  • Webrecorder: Capture interactive websites and replay them at a later time
    6 projects | news.ycombinator.com | 1 Aug 2023
    I wonder if Firefox "reader mode as a utility" might be a viable alternative for Pinboard like "content oriented" archiving?

    https://github.com/mozilla/readability

  • Creating an advanced search engine with PostgreSQL
    9 projects | news.ycombinator.com | 12 Jul 2023
    Depending upon the type of content, one might want to look into using the Readability (Browder's reader view) to parse the webpage. It will give you all the useful info without the junk. Then you can put it in the DB as needed.

    https://github.com/mozilla/readability

    Btw, readability, is also available in few other languages like Kotlin:

    https://github.com/dankito/Readability4J

  • Seeking a tool or method to convert webpages into Q&A format using NLP
    1 project | /r/LanguageTechnology | 10 Jun 2023
    Use Mozilla's Readability to extract that sweet, sweet text content from webpages.
  • I built a free prompt managing tool - Knit
    2 projects | /r/ChatGPTPromptGenius | 8 Jun 2023
    Same as above but the ability to grab the entire article text (you can use the Readability library for that: https://github.com/mozilla/readability)
  • I need automatic source URLs when I paste any text onto a card or note, like on OneNote.
    4 projects | /r/ObsidianMD | 20 Apr 2023
    // Original script // https://gist.github.com/kepano/90c05f162c37cf730abb8ff027987ca3 // Bookmarklet Converter // https://caiorss.github.io/bookmarklet-maker/ // Libraries // https://github.com/mixmark-io/turndown // https://github.com/mozilla/readability javascript: Promise.all([import('https://unpkg.com/[email protected]?module'), import('https://unpkg.com/@tehshrike/[email protected]'), ]).then(async ([{ default: Turndown }, { default: Readability }]) => { /* Optional vault name */ const vault = ""; /* Optional folder name such as "Clippings/" */ const folder = "Clippings/"; /* Optional tags */ const tags = ""; function getSelectionHtml() { var html = ""; if (typeof window.getSelection != "undefined") { var sel = window.getSelection(); if (sel.rangeCount) { var container = document.createElement("div"); for (var i = 0, len = sel.rangeCount; i < len; ++i) { container.appendChild(sel.getRangeAt(i).cloneContents()); } html = container.innerHTML; } } else if (typeof document.selection != "undefined") { if (document.selection.type == "Text") { html = document.selection.createRange().htmlText; } } return html; } const selection = getSelectionHtml(); const { title, byline, content } = new Readability(document.cloneNode(true)).parse(); function getFileName(fileName) { var userAgent = window.navigator.userAgent, platform = window.navigator.platform, windowsPlatforms = ['Win32', 'Win64', 'Windows', 'WinCE']; if (windowsPlatforms.indexOf(platform) !== -1) { fileName = fileName.replace(':', '').replace(/[/\\?%*|"<>]/g, '-'); } else { fileName = fileName.replace(':', '').replace(/\//g, '-').replace(/\\/g, '-'); } return fileName; } const fileName = getFileName(title); if (selection) { var markdownify = selection; } else { var markdownify = content; } if (vault) { var vaultName = '&vault=' + encodeURIComponent(`${vault}`); } else { var vaultName = ''; } const markdownBody = new Turndown({ headingStyle: 'atx', hr: '---', bulletListMarker: '-', codeBlockStyle: 'fenced', emDelimiter: '*', }).turndown(markdownify); var date = new Date(); function convertDate(date) { var yyyy = date.getFullYear().toString(); var mm = (date.getMonth()+1).toString(); var dd = date.getDate().toString(); var mmChars = mm.split(''); var ddChars = dd.split(''); return yyyy + '-' + (mmChars[1]?mm:"0"+mmChars[0]) + '-' + (ddChars[1]?dd:"0"+ddChars[0]); } const today = convertDate(date); // This is the output template // It is similar to an Obsidian core template // except to insert a value we use: ${value} instead of {{value}} const fileContent =`--- type: clipping date_added: ${today} aliases: [] tags: [${tags}] --- author:: ${byline.toString().split('\n')[0].trim()} source:: [${title}](${document.URL}) ${markdownBody} `; // This copies your text to the clipboard navigator.clipboard.writeText(fileContent); // This creates a new document in Obsidian containing your clipping // I commented it out as this isn't what you asked for /* document.location.href = "obsidian://new?" + "file=" + encodeURIComponent(folder + fileName) + "&content=" + encodeURIComponent(fileContent) + vaultName; */ })
  • Any js packages to only scrape relevant content from a webpage?
    1 project | /r/webscraping | 27 Mar 2023
  • RSS meets GPT-3
    2 projects | /r/rss | 18 Feb 2023
    So first part of the task is to "extract the text from URL", and that is achieved by using descendant of https://github.com/mozilla/readability library which can extract text of any URL.

What are some alternatives?

When comparing Readability4J and readability you can also consider the following projects:

go-readability - Go package that cleans a HTML page for better readability.

parser - 📜 Extract meaningful content from the chaos of a web page

article-extractor - To extract main article from given URL with Node.js

koreader - An ebook reader application supporting PDF, DjVu, EPUB, FB2 and many more formats, running on Cervantes, Kindle, Kobo, PocketBook and Android devices

Just-Read - A customizable read mode web extension.

hn-search - Hacker News Search

percollate - A command-line tool to turn web pages into readable PDF, EPUB, HTML, or Markdown docs.

readability.php - PHP port of Mozilla's Readability.js

web-clipper - For Notion,OneNote,Bear,Yuque,Joplin。Clip anything to anywhere

rssguard - Feed reader (and podcast player) which supports RSS/ATOM/JSON and many web-based feed services.

unclutter - A modern reader mode and article library for your browser.

SponsorBlock - Skip YouTube video sponsors (browser extension)