# 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. 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 ``` ## Publishing ``` 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" AUTHOR=Solene SITE=https://perso.pw/lambda/ RSSLINK=feed.xml IMAGE=YES ```