vod2pod-rss [](https://github.com/madiele/vod2pod-rss/actions/workflows/rust.yml) [](https://github.com/madiele/vod2pod-rss/actions/workflows/docker-image.yml) [](https://github.com/madiele/vod2pod-rss/actions/workflows/docker-image-beta.yml)

May 5, 2026 ยท View on GitHub

Converts a YouTube or Twitch channel into a full blown audio podcast feed.

Features

  • Completely converts the VoDs into a proper podcast RSS that can be listened to directly inside the client.
  • The VoDs are not downloaded on the server, so no need for storage while self-hosting this app.
  • VoDs are transcoded to MP3 192k on the fly by default, tested to be working flawlessly even on a Raspberry Pi 3-4.
  • also works on standard rss podcasts feed if you want to have a lower bitrate version to save mobile data.

Limitations

  • Youtube channel avatar is not present and results are limited to 15 when no YouTube API key is set.

Usage

Web UI

  • just go where you hosted vod2pod and you will find an easy to use UI to generate the feed

Manually Generate A Podcast URL

  • In a web browser go to where you hosted vod2pod, es: http://myserver.com/ or http://localhost/
    • In the web page that opens paste the channel you want to convert to podcast and copy the generated link.
  • Optionally goto : http://myserver.com/transcodize_rss?url=channel_url
    • An RSS will be generated.
    • Replace channel_url with the URL of the YouTube or Twitch channel you want to convert into a podcast.
      • YouTube: http://myserver.com/transcodize_rss?url=https://www.youtube.com/c/channelname
      • Twitch: http://myserver.com/transcodize_rss?url=https://www.twitch.tv/channelname
      • RSS/atom feed: http://myserver.com/transcodize_rss?url=https://feeds.simplecast.com/aU_RzZ7j
        • Add the domain to the whitelist. See configurations below

Add The URL To A Podcast Client

  • find a tutorial on how to add an rss feed to your favorite podcast app

Optional API Access

See configurations below

Install

Clone This Repository

git clone https://github.com/madiele/vod2pod-rss.git

Docker

  • Install Docker Compose
  • Precompiled images are available here for linux machines with arm64, amd64 and armv7 (raspberry pis are supported).

Docker Compose

cd vod2pod-rss
nano docker-compose.yml

See configurations below

sudo docker compose up -d

Updating

sudo docker compose pull && sudo docker compose up -d
sudo docker system prune

Switching to the Beta branch

The beta branch is a version of vod2pod that is always updated to the latest yt-dlp releases in a matter of days, if you have problems try it out first to see if they are fixed, then open an issue so that I can consider making a new stable release

Also by being on the beta branch you might help me find bugs before I make any new stable release, so you'll help the project too

To switch open the compose docker-compose.yml and edit the vod2pod image section from "latest" to "beta", then follow the steps to update

Configurations

Web Server Port

  • ports: "80:8080" (optional) Change 80 to another port if you already use the port 80 on your host

Optional API Keys

  • YT_API_KEY: Set your YouTube API key (works without but the feed is limited to 15)
    • e.g. YT_API_KEY=AIzaSyBTCCEOHm
  • TWITCH_SECRET: Set your Twitch secret
  • TWITCH_CLIENT_ID: Set your Twitch client ID

Note: These can also be set using Docker .env files

Advanced YouTube Configuration

  • YOUTUBE_YT_DLP_GET_URL_EXTRA_ARGS: Additional arguments to pass to yt-dlp when extracting YouTube audio URLs
    • This variable allows you to pass custom arguments to yt-dlp for advanced configurations
    • Format: JSON array of strings, e.g. ["--arg1", "value1", "--arg2", "value2"]
    • Useful for scenarios like:
      • Using a proxy: YOUTUBE_YT_DLP_GET_URL_EXTRA_ARGS=["--proxy", "http://proxy.example.com:8080"]
      • Custom user-agent: YOUTUBE_YT_DLP_GET_URL_EXTRA_ARGS=["--user-agent", "Mozilla/5.0 Custom Agent"]
    • Note: These arguments are applied in addition to the default yt-dlp arguments used by vod2pod-rss
    • Default: [] (empty array)

Environment

  • VOD2POD_RSS_HOST: Set the host address to bind to (default: "0.0.0.0")
  • VOD2POD_RSS_PORT: Set the port to listen on (default: "8080")
  • TRANSCODE: Set to "false" to disable transcoding, usefull if you only need the feeds (default: "true")
  • MP3_BITRATE: Set the bitrate of the trascoded stream to your client (default: "192")
  • SUBFOLDER: Set the the root path of the app, useful for reverse proxies (default: "/")
  • VALID_URL_DOMAINS: (optional) Set a comma separated list of domain urls that are allowed to be converted into RSS (defaults to YouTube and Twitch urls)
  • CACHE_TTL: (optional) Set the time to live of the cache in seconds, default is 600 seconds (10 minutes)
  • YOUTUBE_YT_DLP_GET_URL_EXTRA_ARGS

Honorable Mentions

These projects were fundamental for the success of vod2pod-rss, originally they handled the feed generation for youtube and twitch, now this is all done by vod2pod-rss internally so they are not used anymore, but were still helpful to get vod2pod-rss up and running fast.

Donations

This is a passion project, and mostly made for personal use, but if you want to gift a pizza margherita, feel free!

"Buy Me A Coffee"

Contributing

check the CONTRIBUTING.md to find a tutorial on how to setup your enviroment for develpment