Hosting a podcast on RasPi

So I drive a ton (50+ miles/day) and really don't get much radio reception so I listen to lots of podcasts. I love The Tek but the lack of an easy podcast form is driving me up a wall. I can't get their feed to play with Pocket Casts, and well, I wanted to use my Raspberry Pi (original).

So, knowing nothing about Linux and wanting to learn, I installed Raspbian, threw Apache on there, set up a dynamic DNS to link to my home, installed youtube-dl, installed ffmpeg (which literally took from 11:30 AM - 7:00 PM...this thing is slow) and wrote a script to automatically download the latest youtube video, convert it to .mp3, grab the metadata, rename it to the metadata info, and move it to my hosted folder.

After that is where I'm running into trouble. I want to make a script to generate an RSS feed. I know that RSS feed has to be .xml, and I can probably do it with Python which I'm decent at, but my issue is I can't find any good tutorials or documentation on how to make an RSS feed file. I'd need to autogen it each time that the script to check for downloads runs (which will be every 15 minutes because the RasPi takes ~1 hour to convert The Tek to .mp3). I know I can make the scripts autofire on time, but in terms of making the RSS file...I'm not even sure what would need to be in it to make my podcast software on my phone understand it.

Any pointers?

Do you mean you just don't know how to write to a file with Python?

http://www.tutorialspoint.com/python/python_files_io.htm

That would probably work, but you might do it with JavaScript if you've got CPU overhead issues on the Pi. You could run it with NodeJS just like a shell Python script, but Javascript is much faster than Python. I'm not very good at Python, but I could probably help you make something in JavaScript. Don't change your mind just b/c of my lack of Python skill though...lol

This is probably all the information you need if you are decent at Python.
http://www.podcast411.com/howto_1.html

You might just use this. If you want to learn some cool programming skills it may not be as good for you, but if you just need something that'll work, no sense re-inventing the wheel if someone else's solution already does what you need.

http://podcastgen.sourceforge.net/

Looks like it'll auto-publish to iTunes, I don't know about other services but it can't be too hard. It's open source so you could tweak it to do what you want.

Uh, you do know that each episode has an .mp3 uploaded with it right? Or are you refering to some sort of streaming service to listen to the podcast from?

Either way, I'm currently in Spain and due to the shitty internet connectivity I'll often just download the .mp3 version of the show linked at the bottom of every video on the site and listen to it offline.

Dunno if that helps at all, but you can find a link to an .mp3 version of the show at the bottom (just after the list of all the articles used for that episode if you look at the video on the main website)

I toyed with the idea of doing that, but the problem is I want to play it in my podcast software (just easier to automatically download it, and manage the audio file, plus it hooks up with my car nicely). It'd be nice if their RSS feed actually worked but it doesn't...I guess I could try parsing their RSS feed for each .mp3 file, which might be easier, and then rewrite the feed, but grabbing the .mp3 from the youtube playlist is just super easy and has integrated ways to make sure that I'm only downloading the latest episode.

I don't really know Javascript....I need to learn it, I know it's super powerful. Can I still run it in the background with cron?

I'm gonna give that a go. Thanks!

The most well-known application for it is client-side scripting in the browser (since it's the only language supported there, at least for now) but it can also be run in the background just like any other language. I'm not an expert on Node.js development (Node is a framework for using Javascript on the server-side) but I suspect all you'd need to do is have a cron job execute node /path/to/script.js every so often.