potcasse/README.md

2.1 KiB

Introduction

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

Dependencies

  • 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.

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

You will share the link $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

Publishing

potcasse gen

this will create or update the output_html directory with your audio files, the RSS file 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"
AUTHOR=Solene
SITE=https://perso.pw/lambda/
RSSLINK=feed.xml
IMAGE=YES