Content consumption analyzer CLI
Project description
consumo: Content Consumption Analyzer
Introduction
consumo is a command-line interface (CLI) built with Typer that calculates the time to consume either online or offline media. It can be used for sorting media by duration for later consumption or by deciding if something can be viewed today or at a later date.
It's designed with broad support in mind. When it comes to online media, it supports video platforms by directly getting the duration of the linked video; online hosted files by extracting the duration from their metadata; articles and text in general by using the Medium formula to calculate the total consumption time based on text, using a (customizable) words per minute (WPM) count; image count; video duration of the videos on the page. For further details, see: How Medium Calculates Read Time.
For offline media, multiple backends are used to calculate the reading time. However, by design, local HTML files have full feature parity with online pages.
Installation
Python
$ python3 -m pip install consumo # python -m pip install consumo
pip
$ pip3 install consumo # pip install consumo
Context
I'm pretty unorganized. No matter how much I try to tidy things up, I always manage to make a mess somewhere else. In this case, I host in my own machine a FreshRSS container which should ideally be my only source of online content and things should be saved there. However, after hoarding 30+ tabs on my phone with random links from the web, I decided to make a file like this on my computer:
https://en.wikipedia.org/wiki/Python_(programming_language)
https://en.wikipedia.org/wiki/High-level_programming_language
https://en.wikipedia.org/wiki/General-purpose_programming_language
https://en.wikipedia.org/wiki/Code_readability
https://en.wikipedia.org/wiki/Significant_indentation
https://en.wikipedia.org/wiki/Type_system#DYNAMIC
https://en.wikipedia.org/wiki/Garbage_collection_(computer_science)
https://en.wikipedia.org/wiki/Programming_paradigm
https://en.wikipedia.org/wiki/Structured_programming
https://en.wikipedia.org/wiki/Procedural_programming
https://en.wikipedia.org/wiki/Object-oriented_programming
https://en.wikipedia.org/wiki/Functional_programming
...
Repeat until you get over a hundred links (and multiple websites other than Wikipedia). Needless to say, I felt overwhelmed and thought: "LLMs can view webpages. Maybe I can give this list of links to one so it can sort them by duration for a better experience?"
I tried multiple models, but none where able to do that. Maybe there's something like this out there already, but I forgot to search for it. But thankfully that sparkled a great idea for a project: consumo!
Philosophies
- Dependency Injection.
- Parse, don't validate[^1].
- Test Driven Development[^2].
[^1]: King, A. (2019) Parse, don’t validate. Alexis King’s Blog. Available at: https://lexi-lambda.github.io/blog/2019/11/05/parse-don-t-validate/ (Accessed: September 29, 2025).
[^2]: Beck, K. (2003) Test-driven development: By example. Boston: Addison-Wesley (The Addison-Wesley signature series).
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file consumo-0.4.2.tar.gz.
File metadata
- Download URL: consumo-0.4.2.tar.gz
- Upload date:
- Size: 12.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: uv/0.9.14 {"installer":{"name":"uv","version":"0.9.14","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
4217b6e2a3f311ec0000c48eb51dcec7befa50aa78b756d4943b88cbd1a2abb1
|
|
| MD5 |
3fe3046317ac931fad7906b9dd399bc5
|
|
| BLAKE2b-256 |
163432a04618e9bab465f0aba5334e5488a316ec40b960d0f94b9dad6cfb4c5c
|
File details
Details for the file consumo-0.4.2-py3-none-any.whl.
File metadata
- Download URL: consumo-0.4.2-py3-none-any.whl
- Upload date:
- Size: 20.4 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: uv/0.9.14 {"installer":{"name":"uv","version":"0.9.14","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
19e35306bf5d3704883ea69073705a12d77d253c6fe76ced8cb6df869c631202
|
|
| MD5 |
593ba4a129b690db752bd8a0a78d906f
|
|
| BLAKE2b-256 |
71a8a2f1d36147e06e4bd9a88e224c4c9dbbfdecebe27ee93251dd2cc3c6a467
|