Podcast transcription service - download episodes via RSS and transcribe with Whisper
Project description
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://codeberg.org/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
This project moved from GitHub to codeberg.org/meltforce/cast2md. Please update bookmarks and pull URLs.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file cast2md-2026.5.0rc1.tar.gz.
File metadata
- Download URL: cast2md-2026.5.0rc1.tar.gz
- Upload date:
- Size: 182.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.11.13 {"installer":{"name":"uv","version":"0.11.13","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}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
bbd2867f3551ffdd0d9841db1201ee2379f5415bee0a19d376e4ac7806883f25
|
|
| MD5 |
59a4aae4d2dda14b734330cc0c4950e7
|
|
| BLAKE2b-256 |
488789ce41075605a4deaf63248ec2cc793e4fc166587f640da211d698ab7e04
|
File details
Details for the file cast2md-2026.5.0rc1-py3-none-any.whl.
File metadata
- Download URL: cast2md-2026.5.0rc1-py3-none-any.whl
- Upload date:
- Size: 198.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.11.13 {"installer":{"name":"uv","version":"0.11.13","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}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
9cb86fbb35d15159a5fc5e83ded89bb0ca48cc71b365f06fd5b0b671c987445a
|
|
| MD5 |
3b0deee9a139a421750083d23a3e549a
|
|
| BLAKE2b-256 |
1bcab6b7cd9fcd7b6b2af858b4da46f9a5bd1af973ec1f0dc14c9cf143598853
|