podvid

module
v0.1.20260401203535 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Apr 1, 2026 License: MIT

README

podvid logo

podvid

Turn any video into a podcast episode on your own S3 storage.

CI Release MIT License Built with Claude Code


podvid downloads videos from any platform supported by yt-dlp (YouTube, VK Video, RuTube, and 1800+ others), extracts the audio as MP3, uploads it to an S3-compatible storage, and maintains a valid RSS feed so you can subscribe in any podcast app.

Built for listening to video bloggers on an iPod Nano 7, but works with any podcast client.

Features

  • TUI mode — interactive terminal UI (Bubble Tea), just run podvid
  • CLI mode — scriptable commands for automation
  • Auto-provisioning — installs yt-dlp automatically via Python venv if not found in PATH
  • S3-compatible — works with AWS S3, Yandex Object Storage, MinIO, Selectel, etc.
  • iTunes RSS — generates valid RSS 2.0 with iTunes extensions (cover art, duration, per-episode thumbnails)
  • Episode metadata — pulls title, description, thumbnail, duration and publish date from the source

Requirements

  • Go 1.21+
  • ffmpeg in PATH
  • Python 3 (for auto-installing yt-dlp) or yt-dlp in PATH

Install

go install github.com/grigory51/podvid/cmd/podvid@latest

Or build from source:

git clone https://github.com/grigory51/podvid.git
cd podvid
go build ./cmd/podvid/

Quick start

# 1. Configure S3 credentials
podvid config init

# 2. Create a podcast
podvid podcast create --name "My Podcast"

# 3. Add an episode from any video URL
podvid episode add my-podcast https://vkvideo.ru/video-1980_456246417

# 4. Subscribe to the feed URL in your podcast app

Or just run podvid for the interactive TUI.

CLI reference

podvid                                        # Launch TUI
podvid config init                            # Interactive S3 setup
podvid config show                            # Show current config

podvid podcast create --name "..." [--description "..."] [--cover image.jpg]
podvid podcast list
podvid podcast edit <slug> [--name "..."] [--description "..."] [--cover image.jpg]
podvid podcast delete <slug>

podvid episode add <podcast-slug> <url>
podvid episode list <podcast-slug>
podvid episode edit <podcast-slug> <episode-id> [--title "..."] [--description "..."]
podvid episode delete <podcast-slug> <episode-id>

Configuration

Config file: ~/.config/podvid/config.yaml

s3:
  endpoint: "https://storage.yandexcloud.net"
  region: "ru-central1"
  bucket: "my-podcasts"
  access_key: "..."
  secret_key: "..."
  public_base_url: "https://storage.yandexcloud.net/my-podcasts"

audio:
  bitrate: "192k"

Override any value via environment variables (PODVID_S3_BUCKET, PODVID_S3_ACCESS_KEY, ...) or CLI flags.

How it works

  1. Downloads video via yt-dlp
  2. Extracts audio track, converts to MP3 via ffmpeg
  3. Uploads MP3 + episode thumbnail to S3
  4. Updates the RSS feed (XML) on the same S3 bucket
  5. Podcast app fetches the feed and shows new episodes

License

MIT

Directories

Path Synopsis
cmd
podvid command
internal
cli
rss
tui

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL