grigory@ozhegov.name:~$ cd ~/проекты/podvid

podvid

обновлено: 7 июня 2026

podvid — консольная утилита на Go: превращает видео в эпизод подкаста. Скачивает ролик через yt-dlp, вытаскивает звук, конвертирует в MP3, заливает в S3-совместимое хранилище и обновляет RSS-ленту — на неё подписываешься в любом подкаст-приложении.

Ролик с YouTube (или с одной из 1800+ площадок, которые знает yt-dlp) часто хочется послушать как подкаст — в дороге, без картинки, в своём плеере. podvid собирает из ролика эпизод с обложкой и метаданными и кладёт его в ленту в твоём бакете.

Как это работает

Весь путь от ссылки до эпизода в ленте — один конвейер:

  1. Загрузка. Видео скачивается через yt-dlp. Параллельно вытягиваются метаданные: заголовок, описание, обложка, длительность, дата публикации.
  2. Извлечение звука. ffmpeg достаёт аудиодорожку и конвертирует её в MP3 с выбранным битрейтом.
  3. Загрузка в S3. MP3 и обложка заливаются в S3-совместимое хранилище (AWS, Yandex Object Storage, MinIO, Selectel).
  4. RSS-лента. Обновляется feed.xml в формате iTunes RSS 2.0 с расширениями — с этого момента эпизод виден в подкаст-приложениях.

yt-dlp при необходимости ставится сам — в изолированный Python venv, так что руками его готовить не нужно.

Два режима

Интерактивный TUI

Терминальный интерфейс на Bubble Tea — для ручной работы: выбрать подкаст, вставить ссылку, проследить за прогрессом.

CLI

Для автоматизации и скриптов. Базовый поток:

podvid config init
podvid podcast create --name "Мой подкаст"
podvid episode add my-podcast <video-url>

Дальше подписываешься в подкаст-клиенте на URL получившейся ленты.

Установка

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

Или сборка из исходников:

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

Требования

  • Go 1.21+
  • ffmpeg в PATH
  • Python 3 (или заранее установленный бинарь yt-dlp)

Конфигурация

Настройки лежат в ~/.config/podvid/config.yaml: эндпоинт и бакет S3, битрейт аудио, доступы. Креды задаются тремя способами — в конфиге, через переменные окружения или флаги командной строки; для CI удобнее переменные.

Стек

Целиком на Go (1.21+). Внешние зависимости — yt-dlp для скачивания и ffmpeg для конвертации. Лицензия MIT.