Skip to main content

episodix

episodix workflow

episodix assists with preparing podcast episode documents. It reads bookmarks from multiple users stored on Readeck instances and groups links by their labels. Every bookmark needs to have only one label set.

The script can create commonly used labels and prepare a Markdown document (links and shownotes) using Jinja2.

Prerequisites

Create an API token for your Readeck account:

Setting Value
Name uiu
Roles Bookmarks Read/Write, Profile Read

Copy the (opinionated) sample.episodixrc example configuration to .episodixrc and add URLs and API tokens for all the users that you want to include.

Installation

pip

Install locally:

$ pip3 install -e .

Or install over PyPi:

$ pip3 install episodix

Manual

Install Python requirements:

$ pip3 install -u -r requirements.txt

Usage

Initialize workflow. This creates a dummy link with commonly used labels so you have to enter them manually:

$ episodix init
Initialize Readeck for user Paula
Initialize Readeck for user Simone

Prepare an episode document. This will read all the bookmarks from all configured users and render a template:

$ episodix prepare --template episode.md.j2 E123.md
Get bookmarks from user Paula
Get bookmarks from user Simone
Render and save template

After the document has been created, you can remove all the collected bookmarks:

$ episodix nuke
Nuke bookmarks from user 'Paula'
Nuke bookmarks from user 'Simone'

You can also filter bookmarks label, e.g. if you're also using Readeck for other purposes.

One way is to define the -i / --include-labels or -e / --exclude-labels parameters. You can either use include or exclude filters - they can't be combined:

# prepare episode with a subset of bookmarks
$ episodix -e sle -e nixos prepare -t episode.md.j2  E123.md

# only nuke specific bookmarks
$ episodix -i feedback -i kurznews nuke

Those filters can also be permanent stored in the .episodixrc configuration file. Again, you can't combine them - separate multiple labels with a comma:

exclude_labels=tpm
# include_labels=nixos,sle

Templating

Bookmarks

Episode documents are prepared using a Jinja2 template - see episode.md.j2 for an example.

The variable user_bookmarks contains information derived from Readeck per user as dictionary, e.g. user_bookmarks['Paula'].

Every dictionary contains raw Readeck information per label, e.g. user_bookmarks['Paula']['tooltipps'].

Readeck keys include information like:

Key Description
id ID
href, url URL
title Page title
description Longer page description
site Short site URL
type, document_type Document type (e.g. article)
lang Language (e.g. en)
word_count Number of words
authors Document authors (if supplied)
reading_time Reading time in minutes (e.g. 3)
labels List of attached labels
created, updated Timestamp of creation and last update

Note: You can see all the information when running the tool with the --debug / -d parameter.

Highlights / Annotations

The variable user_bookmarks_highlights contains highlights derived from Readeck per bookmark as dictionary, e.g. user_bookmarks_highlights['aaabbbccc...'].

Readeck keys include information like:

Key Description
id Highlight ID
text Highlighted text
created / updated Timestamp of creation and last update

Metadata

Release files for episodix 0.5.6

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for episodix 0.5.6
File Size Uploaded Provenance
episodix-0.5.6.tar.gz 20.5 kB Without provenance Details

Built distribution (wheel)

Table of built distributions (wheels) for episodix 0.5.6
File Interpreter ABI Platform
episodix-0.5.6-py3-none-any.whl Python 3 none any Details

Total release size: 39.7 kB

Release files / episodix-0.5.6.tar.gz

Download URL episodix-0.5.6.tar.gz
Size 20.5 kB
Tags Source
SHA-256 checksum
How to use checksums
9b200e75ed98ee785c842f8587ead3cb05249e99f3b1497ef831addad0cdd689
BLAKE2b-256 checksum
How to use checksums
798391271daaa93cf30132b73d4fbbbe2629e078a34c7745f824ee769d78541d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.14.5

Release files / episodix-0.5.6-py3-none-any.whl

Download URL episodix-0.5.6-py3-none-any.whl
Size 19.3 kB
Tags Python 3
SHA-256 checksum
How to use checksums
d04a143ad84da526cab6635c55f3b393d4ec1b67fcd58f5fc677fbc0cc1a3ee5
BLAKE2b-256 checksum
How to use checksums
0875eb122c0e7b88d3e50eb2781c727482a0bd0f68de65a7647cb975550cea1e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.14.5

Security for episodix 0.5.6

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page