cast2md
Podcast transcription service -- download episodes via RSS and transcribe with Whisper. Automatically fetches publisher-provided transcripts (Podcasting 2.0) or Pocket Casts auto-generated transcripts before falling back to local transcription.
Note: This is a personal project under active development. I'm sharing it in case others find it useful, but I'm not currently providing support or reviewing pull requests.
Features
- Transcript-first workflow -- fetches external transcripts from Podcasting 2.0 tags and Pocket Casts before downloading audio
- Whisper transcription -- local transcription with faster-whisper or mlx-whisper (CPU, CUDA, Apple Silicon)
- Distributed transcription -- use remote machines (M4 Macs, GPU PCs) or RunPod GPU pods to transcribe in parallel
- Hybrid search -- full-text and semantic search across episode metadata and transcript content (pgvector)
- Web UI, CLI, REST API -- manage feeds, view episodes, search transcripts, monitor processing
- MCP server -- Claude integration via Model Context Protocol
Quick Start
git clone https://github.com/meltforce/cast2md.git
cd cast2md
cp .env.example .env
# Edit .env -- set POSTGRES_PASSWORD at minimum
docker compose up -d
Open http://localhost:8000 to access the web UI.
Documentation
Full documentation is available at meltforce.org/cast2md.
| Section | Description |
|---|---|
| Getting Started | Architecture and key concepts |
| Installation | Docker, manual install, transcriber nodes |
| Configuration | Environment variables, Whisper models |
| Usage | Web UI, CLI, REST API, MCP server |
| Distributed Transcription | Multi-machine setup, RunPod GPU workers |
| Deployment | Production deployment, server sizing |
License
MIT
Metadata
Release files for cast2md 2026.8.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| cast2md-2026.8.0.tar.gz | 181.9 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| cast2md-2026.8.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 379.8 kB
Release files / cast2md-2026.8.0.tar.gz
| Download URL | cast2md-2026.8.0.tar.gz |
|---|---|
| Size | 181.9 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
456727bce2becb5cc30deee6afafa3ecfb0514bf9dede401e9ad4f9d089a200c
|
|
BLAKE2b-256 checksum How to use checksums |
231e3182842622ada7b63a9904473e2323991666111b4cc2edc0f6eccaa3eea4
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.12.1 {"installer":{"name":"uv","version":"0.12.1","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}
|
Release files / cast2md-2026.8.0-py3-none-any.whl
| Download URL | cast2md-2026.8.0-py3-none-any.whl |
|---|---|
| Size | 198.0 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
fe80d2a908eacbba88f061a82999e53b008094b0cf22bc547ea23b3cd4870bc0
|
|
BLAKE2b-256 checksum How to use checksums |
cdbb14f96f018644a70956f87750df0247f349527453ba7b4619f74cea5895bd
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.12.1 {"installer":{"name":"uv","version":"0.12.1","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}
|