Octopod is a set of Jekyll templates, helpers and extensions to deliver your podcasts the cool text file lover's way.
If you want to take a look: I made this demo.
If you are not afraid of the command line of your computer and text files are the stuff to heat up your geeky little heart, Octopod may be worth a trial to publish your podcasts.
The underlying assumptions of Octopod are that static content should be delivered statically and text files are the perfect way to handle podcast metadata. So Octopod makes it easy to generate and deploy a website and feeds for your podcast out of one textfile and at least one audio file per episode.
Octopod brings innately:
Attention: This project is absolutely in a non 1.0 status. This means that there is no guarantee for not breaking this or that behavior with the next update. Hopefully you are brave enough to play with this cute little toy anyway. Bug reports and even more push requests are highly welcome.
Since Jekyll and Octopod are written in the Ruby programming language you need a running Ruby interpreter – which sadly is sometimes easier said than done – and the bundler gem installed. And because Octopod lives in a git repository, you may also want to have the git version control system installed.
The first step to your new and shiny podcast publishing system is to get a copy of it. And to get one, the best way should be to clone the repo. So open your Terminal and type the following command:
git clone --recursive https://github.com/pattex/octopod.git
Now you have to install all the required software to run Octopod.
cd octopod
bundle install
To set up your Octopod, just rename the sample config file and edit it as you need.
mv _config.yml.sample _config.yml
<your favourite editor> _config.yml
You can find a documentation of all the non Octopod specific settings on the Configuration page of the Jekyll Wiki.
First of all, your new podcast episode needs audio data. Octopod assumes that your ready to use audio files stay within the episodes
directory in in your projects root.
cp ~/my_superduper_audio_files/ocp001.m4a episodes
In addition, Octopod assumes that the different audio files of each of your episode are the same content in various formats which are the same duration and everything.
If they are not, you may confuse your listeners. At the least when you are using the chapters feature.
Next up your episode needs some metadata. A title, some kind of a description, maybe chapters and so on. Octopod keeps all these metadata in one single textfile (Protip: these dear little tots feel very lucky when they might live in a version control system! You already got one for free when you git clone
d the Octopod repo).
Octopod kindly helps you generating these file with the octopod episode
command (You will find some more inforamtion on the octopod
command line tool in the Octopod wiki).
The following command
octopod episode --title "Why I <3 Octopod"
will generate you a template called YYYY-MM-DD-why-i-_3-octopod.md (YYYY-MM-DD represents the current date) in your _posts
subdirectory. When you open it in your text editor you'll see something like that:
---
title: Why I <3 Octopod
layout: post
author: Uncle Octopod
explicit: 'no'
audio:
m4a: name.m4a
mp3: name.mp3
opus: name.opus
---
Insert eloquent and worth reading text here.
{{ page | web_player:site }}
## Shownotes
* Note
The part between the "---" and the "---" is the YAML front matter. This is where all the metadata is stored. Below the YAML frontmatter is the area (body) where you can write down your posts content (like the show notes and stuff). This strange looking {{ page | web_player:site }}
thingy is the Liquid filter which represents the web player later.
When all this work is done you are ready to take a first look.
The following command generates your site and start a local webserver for a preview. You kann check your new pocasting website by opening http://localhost:4000.
octopod --url "http://localhost:4000" --server
If everything is alright you can finally generate your "real" Site:
octopod
And deploy it to your server:
octopod deploy
Attention: The Rsync settings in your _config.yml
are mandatory for this last step. But it is no problem to upload the generated website from the _site
subdirectory via FTP or something.
At the moment Octopod is extremely made to fit my personal needs and preferences. But it's it is a high priority goal to become Octopod more generic. This and of course bug fixes would make the sweet little opctopd smile the most.
But feel free to fork and push request and code and everything.
git checkout -b my-new-feature
)git commit -am 'Add some feature'
)git push origin my-new-feature
)The beautiful Octopod Logo was designed and created by Thekla "TeMeL" Löhr. Please support her with a little flattr.
Some of this code is not written by me. I shamelessly took some lines from other projects. And of cause Octopod is based on a list of frameworks, tools and plugins.
Gratitude be to:
Copyright (c) 2012 Arne Eilermann eilermann@lavabit.com
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
Octopod Logo by Thekla "TeMeL" Löhr is licensed under a Creative Commons Attribution 3.0 Germany License.