Skip to main content

Tool to automate preparing podcast episode documents with Readeck

Project description

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

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

episodix-0.5.6.tar.gz (20.5 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

episodix-0.5.6-py3-none-any.whl (19.3 kB view details)

Uploaded Python 3

File details

Details for the file episodix-0.5.6.tar.gz.

File metadata

  • Download URL: episodix-0.5.6.tar.gz
  • Upload date:
  • Size: 20.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.5

File hashes

Hashes for episodix-0.5.6.tar.gz
Algorithm Hash digest
SHA256 9b200e75ed98ee785c842f8587ead3cb05249e99f3b1497ef831addad0cdd689
MD5 57c7907c7bab43e19b4bb50665ec810d
BLAKE2b-256 798391271daaa93cf30132b73d4fbbbe2629e078a34c7745f824ee769d78541d

See more details on using hashes here.

File details

Details for the file episodix-0.5.6-py3-none-any.whl.

File metadata

  • Download URL: episodix-0.5.6-py3-none-any.whl
  • Upload date:
  • Size: 19.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.5

File hashes

Hashes for episodix-0.5.6-py3-none-any.whl
Algorithm Hash digest
SHA256 d04a143ad84da526cab6635c55f3b393d4ec1b67fcd58f5fc677fbc0cc1a3ee5
MD5 eef99d30ddac8ccb9d5eb66489ce31a2
BLAKE2b-256 0875eb122c0e7b88d3e50eb2781c727482a0bd0f68de65a7647cb975550cea1e

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page