Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/alanhamlett/readtime
Calculates the time some text takes the average human to read, based on Medium's read time forumula.
https://github.com/alanhamlett/readtime
blog medium python read-time
Last synced: 4 days ago
JSON representation
Calculates the time some text takes the average human to read, based on Medium's read time forumula.
- Host: GitHub
- URL: https://github.com/alanhamlett/readtime
- Owner: alanhamlett
- License: other
- Created: 2016-08-23T23:57:31.000Z (almost 8 years ago)
- Default Branch: master
- Last Pushed: 2023-09-03T19:38:08.000Z (10 months ago)
- Last Synced: 2024-06-18T17:13:55.323Z (18 days ago)
- Topics: blog, medium, python, read-time
- Language: Python
- Homepage: https://pypi.org/project/readtime/
- Size: 52.7 KB
- Stars: 120
- Watchers: 5
- Forks: 13
- Open Issues: 2
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGES.md
- License: LICENSE
- Authors: AUTHORS
Lists
- awesome-stars - alanhamlett/readtime - Calculates the time some text takes the average human to read, based on Medium's read time forumula. (Python)
README
# readtime
[![Tests](https://img.shields.io/github/actions/workflow/status/alanhamlett/readtime/tests.yml?branch=master)](https://github.com/alanhamlett/readtime/actions/workflows/tests.yml)
[![Coverage](https://codecov.io/gh/alanhamlett/readtime/branch/master/graph/badge.svg?token=EbUnuwbra3)](https://codecov.io/gh/alanhamlett/readtime)Calculates the time some text takes the average human to read, based on Medium's [read time formula](https://help.medium.com/hc/en-us/articles/214991667-Read-time).
### 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 readtimeOr 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
"1 min"The result can also be used as a string:
>>> str(readtime.of_text("The shortest blog post in the world!"))
"1 min read"To calculate read time of Markdown:
>>> readtime.of_markdown("This is **Markdown**")
1 min readTo calculate read time of HTML:
>>> readtime.of_html("This is HTML")
1 min readTo customize the WPM (default 265):
>>> result = readtime.of_text("The shortest blog post in the world!", wpm=5)
>>> result.seconds
96
>>> result.text
"2 min"
>>> result.wpm
5### Contributing
Before contributing a pull request, make sure tests pass:
virtualenv venv
. venv/bin/activate
pip install tox
toxMany thanks to all [contributors](https://github.com/alanhamlett/readtime/blob/master/AUTHORS)!