This repository is a collection of scripts and utilities that I use to produce audio files and generate podcast feeds. For example, you’ll find tools to process emails into text for text-to-speech conversion and to subsequently create podcast-ready artifacts.
- Email Processor: Converts raw email content into cleaned text for TTS usage. Its new, data‑driven API is now encapsulated in a public class (
EmailProcessor
) so that you (and future downstream components, like an RSS feed builder) can consume a well‐structured dictionary. - TTS Joinery: A text-to-speech helper that overcomes API limitations by chunking the content.
For instructions on setting up your environment, installing Python (via pyenv), Poetry, and loading environment variables with direnv, please refer to the Installation section below.
-
Clone the repository:
git clone https://github.com/yourusername/my-podcasts.git cd my-podcasts
-
Environment variables:
- Rename
.envrc.example
to.envrc
and fill in your keys. - Allow direnv:
direnv allow
- Rename
-
Python Setup:
- Use pyenv to install Python (see pyenv installation).
- The required Python version is specified in
.python-version
.
-
Install Dependencies:
- Install Poetry if you haven't already:
curl -sSL https://install.python-poetry.org | python3 -
- Then install project dependencies:
poetry install --with dev
- Install Poetry if you haven't already:
-
Pre-commit Hooks:
- Install pre-commit hooks:
pre-commit install
- Install pre-commit hooks:
-
Running Tests:
- Execute the test suite using pytest:
poetry run pytest
- Execute the test suite using pytest:
- Local Testing: Run tests with
poetry run pytest
. - CI Pipeline: On each push and pull request, the GitHub Actions workflow runs tests, style checks, and code coverage reports. See
.github/workflows/ci.yaml
for details.
For more module-specific details (e.g. using the email processor or TTS tools), please see the README files in the respective subdirectories.
Happy coding!