Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

readtime

Package Overview
Dependencies
Maintainers
1
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

readtime

Calculates the time some text takes the average human to read, based on Medium's read time forumula

  • 3.0.0
  • PyPI
  • Socket score

Maintainers
1

readtime

Tests Coverage

Calculates the time some text takes the average human to read, based on Medium's read time forumula.

Algorithm

Medium's Help Center says,

Read time is based on the average reading speed of an adult (roughly 265 WPM). We take the total word count of a post and translate it into minutes, with an adjustment made for images. For posts in Chinese, Japanese and Korean, it's a function of number of characters (500 characters/min) with an adjustment made for images.

Source: https://help.medium.com/hc/en-us/articles/214991667-Read-time (Read Sept 23rd, 2018)

Double checking with real articles, the English algorithm is:

seconds = num_words / 265 * 60 + img_weight * num_images

With img_weight starting at 12 and decreasing one second with each image encountered, with a minium img_weight of 3 seconds.

Installation

virtualenv venv
. venv/bin/activate
pip install readtime

Or if you like to live dangerously:

sudo pip install readtime

Usage

Import readtime and pass it some text, HTML, or Markdown to get back the time it takes to read:

>>> import readtime
>>> result = readtime.of_text('The shortest blog post in the world!')
>>> result.seconds
2
>>> result.text
u'1 min'

The result can also be used as a string:

>>> str(readtime.of_text('The shortest blog post in the world!'))
u'1 min read'

To calculate read time of Markdown:

>>> readtime.of_markdown('This is **Markdown**')
1 min read

To calculate read time of HTML:

>>> readtime.of_html('This is <strong>HTML</strong>')
1 min read

To customize the WPM (default 265):

>>> result = readtime.of_text('The shortest blog post in the world!', wpm=5)
>>> result.seconds
96
>>> result.text
u'2 min'
>>> result.wpm
5

Contributing

Before contributing a pull request, make sure tests pass:

virtualenv venv
. venv/bin/activate
pip install tox
tox

Many thanks to all contributors!

FAQs


Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc