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

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
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.

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.4.tar.gz (18.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.4-py3-none-any.whl (18.4 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: episodix-0.5.4.tar.gz
  • Upload date:
  • Size: 18.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.4.tar.gz
Algorithm Hash digest
SHA256 6bed03be0e6fb3ce7be293bce60754306281fd4a1a834c85cd2a21b5f126d0c8
MD5 cd92ec6502f3b7b353f521940bd0d17a
BLAKE2b-256 30f0b5ea6259eaf661c32d3a3b46297b1f96ea17353c7a4f1bb83b5800019af7

See more details on using hashes here.

File details

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

File metadata

  • Download URL: episodix-0.5.4-py3-none-any.whl
  • Upload date:
  • Size: 18.4 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.4-py3-none-any.whl
Algorithm Hash digest
SHA256 a5982312164b9da639e3a35ad3a1479ad8fa2118328810f7a9204a305fd586aa
MD5 dbc13e2a8e6c57f700ba01537ecb9526
BLAKE2b-256 874a439cdce0254c71036d1068c4e2b6c172c8b446f8d55a772113921264dde3

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