Podcast publication made easy
Go to file
Solene Rapenne f5a3671282 doc: bullet lists items must end with a dot. 2021-07-21 00:07:59 +02:00
LICENSE add the LICENSE 2021-07-20 23:04:11 +02:00
Makefile makefile: add a Makefile for installing/uninstalling system wide. 2021-07-20 23:27:55 +02:00
README.md doc: bullet lists items must end with a dot. 2021-07-21 00:07:59 +02:00
potcasse potcasse: improve configuration file generated using comments. 2021-07-20 23:47:35 +02:00



potcasse, pronounced "pot kas" is meant to help people to publish and self host a podcast easily without using a third party service.


  • rsync (could use cp but avoid recopying audio files locally).
  • a posix compatible OS (Linux, *BSD, Solaris).
  • some webserver to host the files.

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"