Podcast/audiobook caster (.NET)
- C# 74.7%
- HTML 23.2%
- CSS 1.6%
- Shell 0.3%
- Dockerfile 0.2%
| Filename | Latest commit message | Latest commit date |
|---|---|---|
| .claude | ||
| .github | ||
| Castr | ||
| Castr.Tests | ||
| docs/superpowers/specs | ||
| .gitignore | ||
| assign-issue | ||
| CLAUDE.md | ||
| DEPLOYMENT.md | ||
| dotnet-tools.json | ||
| LICENSE | ||
| README.md | ||
| YOUTUBE_WATCHER_IMPLEMENTATION.md | ||
Castr
A self-hosted podcast RSS server that serves local MP3 directories as podcast feeds. Optionally monitors YouTube playlists and automatically downloads new episodes.
Features
- Generates standard RSS feeds from local MP3 directories
- Monitors YouTube playlists and auto-downloads new episodes
- Web dashboard for managing feeds, episodes, and downloads
- Real-time download progress via SignalR
- ID3 tag extraction for episode metadata
- Range request support for streaming
- Multi-feed support from a single instance
Quickstart
Create a docker-compose.yml:
services:
castr:
image: forgejo.ht2.io/joezombie/castr:latest
container_name: castr
ports:
- "5000:8080"
volumes:
- /path/to/your/podcasts:/Podcasts:rw
- castr-data:/data:rw
environment:
- Dashboard__Username=admin
- Dashboard__Password=changeme
restart: unless-stopped
volumes:
castr-data:
docker compose up -d
The dashboard is at http://localhost:5000 and feeds are at http://localhost:5000/feed.
Configuration
Feeds are managed entirely through the web dashboard. No appsettings.json feed configuration is needed.
The dashboard lets you create, edit, and delete feeds with all settings including YouTube playlist monitoring.
API
GET /feed- List all feedsGET /feed/{name}- RSS feed XMLGET /feed/{name}/media/{file}- Stream media file