Podcast publication made easy
You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
Solene Rapenne 81a5f1b4a6 potcasse: W3C recommends setting an atom:link entry. 2 years ago
LICENSE add the LICENSE 2 years ago
Makefile makefile: add a Makefile for installing/uninstalling system wide. 2 years ago
README.md potcasse: rename LANG to LANGUAGE to avoid collapsing into variables used to define a locale. 2 years ago
potcasse potcasse: W3C recommends setting an atom:link entry. 2 years ago



potcasse is meant to help people to publish and self host a podcast easily without using a third service.


  • rsync (could use cp but avoid recopying audio files locally)
  • a posix compatible OS (Linux, *BSD, Solaris)

How to use

The idea is to regroup audio files with their metadata in a directory and generate the structure that you will publish on a web server.

A simple index.html file is also generated in the process to give an easy list without using the RSS file.

First time

potcasse init

This will create a file metadata.sh that you need to edit accordingly to your setup.

It has the following variables:

  • TITLE: this is the podcast title
  • AUTHOR: this is the podcast author (doesn't support multiples authors yet)
  • SITE: base HTTP URL where your podcast will be available (for example https://tilde.example/myname/podcast/
  • RSSLINK: name of the RSS feed
  • IMAGE: if value is not empty, potcasse will use the file logo.png
  • LANGUAGE: language code (such as fr or en-us) that can be potentially used by some players

You will share the link $SITE/index.html or $SITE/$RSSLINK to your listeners.

New episode

potcasse episode "Episode XX: trying something weird" /path/to/audio/file

This will create a directory episodes/YYYYMMDDhh so you can't publish more than a podcast every hour using this command. The audio file inherits the directory name.

You can force a directory name with a parameter after the audio file.

potcasse episode "Episode XX: trying something weird" /path/to/audio/file this_is_my_podcast_episode_i_want_to_name


potcasse gen

this will create or update the output_html directory with your audio files, the RSS file, an index.html file listing all the episodes and the logo file if any.

Real world example

My podcast feed is available at https://perso.pw/lambda/feed.xml which is on server perso.pw in /var/www/htdocs/lambda/.

I add new episodes with potcasse episode "A made something nice" ~/Podcast/episodeXX/file.ogg then I use potcasse gen that will refresh the directory public_html with metadata and episodes, finally I put it online with rsync -av public_html/ perso.pw:/var/www/htdocs/lamda/.

My metadata.sh looks like this:

TITLE="Lambda Solene"