Skip to content


Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?

Latest commit


Git stats


Failed to load latest commit information.
Latest commit message
Commit time
Youtube logo

Youtube Podcast

Convert any YouTube channel into a downloadable podcast

How it works

This tool can convert any YouTube channel or a playlist into a downloadable podcast. You can choose audio or video format, and use it online or install it on your own server.


  1. Head over to YouTube in your browser, and find the URL of your favorite user, channel, or playlist. The URL will look like one of these:
  1. Open up your podcasts app and add a new podcast by URL. Copy and paste in the URL from step 1, except change the domain to youtube-podcast's one. Your modified URL should look like one of these:
  1. youtube-podcast generates video podcasts by default. If you'd like an audio-only podcast instead, simply add ?a to the end of the URL for users or channels, or add &a to the end of the URL for playlists:
  1. Hit subscribe. You're all set. You can now download and refresh episodes, just like with any other podcast.

If you enjoy this service, please consider making a donation to help keep it up and running.

Install it on your own server

If you don't want to use the online version, you can install youtube-podcast on your own server. It requires Python 3.7+ (tested on Python 3.7.2), pip, git and youtube-dl.


  • Clone the repository : git clone
  • Install requirements : pip3 install -r requirements.txt
  • You'll need a YouTube API key, put it in a new file named in /epi/ like this : KEY = 'R4nd0mAp1k3y'
  • You must also add the domain or url for your yt-podcast instance in : DOMAIN = 'domain.tld'
  • Try python3 to run yt-podcast

The software is now installed and listening on port 5003. Now we need to configure a daemon to let the software run in background, and expose it over the internet.

Create a daemon

We need to run yt-podcast in the background. On Debian, create and edit a new systemd service : vi /etc/systemd/system/yt-podcast.service In this file, paste the following configuration :

Description=uWSGI instance to serve yt-podcast

ExecStart=/usr/local/bin/uwsgi --ini youtube-podcast.ini


Make sure you edit user, group and the software path.

Then you can run service yt-podcast start to start the software.

Nginx reverse proxy

I am using nginx on my server. If you know the configuration for other web servers, a pull request is welcome! Put this configuration in a server block.

location / {
    include uwsgi_params;
    uwsgi_pass unix:/path/to/yt-podcast/youtube-podcast.sock;
    # Some optional arguments:
    # uwsgi_cache mycache;
    # uwsgi_cache_valid any 1h;
    # uwsgi_cache_key $request_uri;

You can now access yt-podcast from the address you set in nginx and in The rules to create a podcast will be the same (http(s)://domain.tld/playlist?list=PLUl4u3cNGP61Oq3tWYp6V_F-5jb5L2iHb&a for example).


You can also use EPI to download a single video :



๐Ÿ“บ Convert any YouTube channel into a downloadable podcast








No releases published


No packages published