Live Podcasting
How to stream a live event in a podcast, interact with the audience in real-time and exchange value
Podcasting 2.0 allows live streaming of audio and video episodes as well as interaction with the audience via real-time messages and micropayments
On November 9th, 2023, we organized PodconMX by RSS.com in Mexico City. Our conference featured live video streaming accessible via podcasting 2.0 enabled apps and the ability for the local and remote audience to engage with the speakers via short messages and micropayments.
To the best of our knowledge, this was the first time anyone has broadcasted a conference as a live video podcast episode via a podcast app, and it effectively constitutes a real-world proof of concept of what open podcasting based on RSS feeds has enabled and can become.
The idea behind this post is sharing our experience and providing an overview on how live audio and video podcasting can be accomplished. This is far from being a comprehensive article, but it is rather based on our personal choices and preferences. It worked for us, and hopefully it will inspire others to do the same or better!
Below, we refer to “Live podcasting” as an audio and/or video podcast episode that:
- Is streamed in real-time to Live Item Tag supporting apps via an RSS feed;
- Allows audience interaction through means of short messages (also known as “boostagrams”) and micropayments.
The main ingredients of Live Podcasting
Live podcasting requires 4 main components:
- Streaming server
- Audio/Video Source
- RSS Feed
- Podcast application
1. Streaming server
An ideal streaming server setup for live podcasting supports the Real-Time Messaging Protocol (RTMP) for receiving real-time audio and video signals and also allows generating a playable URL called “playlist file” or “m3u8 manifest”.
A RTMP server typically can receive real-time audio and video signals via a specific URL, which often requires a stream key. A RTMP URL is a web address that typically looks like this:
rtmps://livestream.myrtmpserver.com:443/live
The associated stream key is a unique value that is used by the server to identify who is sending the incoming stream (typically a registered user of the service). The stream key also provides added security to avoid unwanted data streams to be sent to a RTMP server (RTMP Hijack).
A typical RTMP Stream key is a long alphanumeric hash that looks like this:
b5a750d28e60f747afa2e07eye04k171497fcb692f45bf47dec37d0c45f23a324
How do I get a RTMP URL and a streaming key?
You have two main options:
A) You sign up for a cloud service that offers live streaming capabilities (usually these are paid services)
B) Do it yourself (DIY), i.e. you build your own server
A) Using a cloud-based service (recommended)
For the sake of time and simplicity, purchasing a cloud-based service is the recommended option. This will also ensure redundancy (via a content delivery network), high-speed connection, stable bandwidth and minimize delays. There are several companies out there offering RTMP as a service.
For the live podcast streaming of PodconMX, we chose Viloud, a platform run by a small bootstrapped startup that allows the creation of online TV channels. Setting up a TV channel was much more than we needed, we just wanted a cloud-based service supporting RTMP. However, for Viloud, and larger competitors such as Wowza and DaCast among others, RTMP typically constitutes only a small part of their product offering.
After trying out a few services, we opted for Viloud because it was a no-frills product with the simplest interface. One of our core values at RSS.com is simplicity and ease of use, which (ironically) are very complex to achieve in a mature product!
With Viloud, in 3 clicks (literally), we were able to obtain our RTMP URL and stream key. On top of that, this platform stores all the data that is streamed via their RTMP server as videos, and allows users to download them later on, or create an online TV channel for the playback of the recorded videos.
Viloud offers a 14-days trial period that allows live video streams up to one hour each at no cost. This may work for you if the event you are streaming lasts 60 minutes or less. Because we wanted to live stream over 9 hours of video in our podcast, we purchased a Business plan for 79 USD a month.
An analysis of the competitors landscape would highlight alternative services that offer a more or less sophisticated set of features at different price points. This was not in scope for us and we were pleased with our choice. Others may prefer different platforms.
How we obtained our RTMP URL and streaming key using our provider of choice:
1. Go to https://viloud.tv and
sign up
2. [OPTIONAL: if you need to stream more than 1 hour of content] On the top menu,
click on Upgrade Plan and select the Business plan
3. Click on
Live Stream (left side menu) –> Start Live Stream
You are all set! You’ll obtain your RTMP URL and streaming key (green arrow in the figure below). On top of that, you’ll also find the Playback URL also known as “m3u8 manifest” (red arrow in the figure below). Notice that the m3u8 manifest is the URL you will need to use in your RSS feed as explained in the Live Item Tag section below.
B) Build your own RTMP server
If you are a technical person who is well acquainted with modern cloud infrastructure, one option is to set up a state-of-the art live streaming server using Amazon Web Services. AWS offers a CloudFormation Template that does the heavy lifting for you (but you need to know what you are doing).
If you are less technical, but you are on a low budget or have plenty of spare time, there are also “scrappy” routes to set up your own local RTMP using only your laptop and an internet connection.
We will not cover comprehensively all the DIY options in the current article, but if you use MacOS this is a good starting point.
Download the latest release of the app on your Macbook and you’ll be running a local RTMP server in seconds. All you have to do is make sure that your external IP address is accessible and maps to your Macbook’s local IP. This is typically achieved by configuring the NAT settings in your router and optionally setting up a Dynamic DNS service.
We would not recommend this setup for a professional event such as an official conference because too many things can go wrong, e.g. The internet provider of the venue may not allow custom internet configurations involving firewalls and port mapping.
We would also not recommend venturing into the DIY route if you have limited time and don’t know what “NAT” is or you’ve never dealt with the custom setup of a router before.
Audio/Video Source
You have two main options to capture live audio and video streams during an in-person event:
A) Use professional services such as a Company or independent contractors
B) Do it yourself (DIY), i.e. use your smartphone or laptop to capture audio and video
A) Professional services
If you have enough budget for your event, then you will probably be working with a Company or contractors that provide professional audio and video recording services.
If this is the case, you will just need to tell them in advance that you would like to send the live audio-video signal to your RTMP server, and provide them with your RTMP URL and Streaming key.
Using professional services will ensure there will be nothing else to do on your end on this front except making sure your contractors have access to a stable wifi / cable internet connection in the venue hosting your event.
For our conference PodconMX, we worked in collaboration with our partners Grupo Fórmula (the #1 talk radio group in Mexico) who provided professional cameramen, mixers, wireless microphones and a small team for monitoring and making sure everything worked seamlessly. The team at Fórmula captured the 2 audio sources (we offered live translation of Spanish into English and vice versa) and video sources and re-directed the resulting video stream to our RTMP server.
B) Do it yourself
You don’t need a professional team if you are holding a smaller event such as a local Meetup.
In this case you will just need a basic setup consisting of a camera, a microphone, a laptop or smartphone and a software to send the resulting audio or video stream to your RTMP server.
The easiest and minimum-viable DIY setup is pretty inexpensive as it requires only a smartphone (that you probably already own) and an internet connection. HD cameras in modern smartphones produce great results!
To stream audio and video signals from a smartphone to your RTMP server you will need an app such as Larix Broadcaster which is available for both iOS and Android.
Once you download Larix Broadcaster, just go to Settings → Connections
and add a new Connection using the + button. Specify your RTMP URL, save and you are good to go!
Notice that some apps do not have a field to insert the Streaming Key in their settings. When this is the case, these apps expect the Streaming Key appended to the RTMP URL.
For instance, if your RTMP URL is rtmps://livestream.myrtmpserver.com:443/live
And your Stream key is ye04k171497fcb692f45bf47dec37d0c45f23a324
For those apps like Larix Broadcaster that do not have a Stream Key setting, you will need to append RTMP URL and Stream key as follows:
rtmps://livestream.myrtmpserver.com:443/live/ye04k171497fcb692f45bf47dec37d0c45f23a324
Larix Broadcaster offers 60 minutes free streaming so if your event lasts one hour or less, you will be able to use it without paying a dime.
A low-hanging fruit and budget-friendly idea to improve the video and audio quality in this basic DIY setup is to purchase:
- A smartphone tripod to keep your video as steady as possible (prices starting from ~$20 on Amazon)
- A wireless microphone that plugs directly into your smartphone and can be easily clipped to the speaker’s shirt or collar (prices starting from ~$25 on Amazon)
What if my live event is remote?
While the main scope of this article is covering in-person events such as conferences, the audio and video capturing setup for remote events such as webinars over Zoom, Teams or Google Meet is even easier. Zoom, for instance, supports live streaming via RTMP out of the box.
For live video podcasts or live podcast interviews, instead, one of our favorite tools is Streamyard. Streamyard allows you to host one or more remote guests and live stream the result via RTMP.
Just go to Streams and Recordings → Create → Live Stream → Select Destinations → Custom RTMP
and specify your RTMP server URL
and Stream Key
RSS Feed
The RSS feed is where the magic happens in podcasting!
To be able to provide live streaming within a podcast, you’ll need to add the Live Item tag (LIT) to your RSS feed. You can do so manually or using a podcast hosting platform that supports LIT.
Automatically add the Live Item Tag to your RSS feed
If your podcast hosting company supports LIT, no manual changes to your RSS feed are needed on your end as they’ll do all the heavy lifting.
Your podcast hosting company will also take care of sending a signal (a “podping”) when the status of your live streaming changes so the supporting apps will be able to change the status of your event in real time.
See the list of podcast hosting companies supporting LIT.
Manually add LIT to your RSS feed
The official documentation and specs of the LiveItem tag are clear, yet sometimes a real-world example is worth more than a thousand words. Below is the minimum-viable implementation of LIT in an RSS feed that we used at PodconMX:
<podcast:liveItem status=”ended” start=”2023–11–09T14:00:00.000Z” end=”2023–11–10T00:30:00.000Z”>
<title>Podcon MX Live Stream</title>
<guid isPermaLink="false">0cd854c8–08a2–4cb9–808d-c4d064854da9</guid>
<enclosure url="https://customer-klxke6nl22colsu4.cloudflarestream.com/171497fcb612f4e07f33a3a770d28e64/manifest/video.m3u8" type="application/x-mpegURL" length="5242880"/>
<podcast:contentLink href="https://podcon.mx">Listen Live!</podcast:contentLink>
</podcast:liveItem>
Where:
podcast:liveItem
status can have 3 values:pending
,live
orended
.podcast:liveItem
start
andend
are the expected start and end times of your live podcast. They do not need to be precise. The time is expressed as an ISO8601 timestamp (you can find many online tools that help you convert time and date into ISO8601).Enclosure
url
is your Playback URL / m3u8 manifest (see the red arrow in Figure 2)
Notice that it is recommended to add the Live Item Tag to your RSS feed a few hours before the event and set the status of your live streaming to pending
. This will give time for the supporting apps to index your RSS feed. On top of that, you will also be able to verify that your live podcast episode is correctly displayed in supporting apps with the pending
status (see Figure 8).
A good practice when dealing with manual changes of an RSS feed is always validating them after each change. The Livewire Podcast Validator supports the Podcasting 2.0 tags, including LIT.
Below is an example of how our RSS feed at PodconMX looks in the Livewire Podcast Validator:
https://validator.livewire.io/?validate=https://podcon.live/feed.xml
One important aspect about the change of status of podcast:liveItem
is that you’ll need to send a podping to inform the supporting apps that the status of your episode has changed. How do you send a podping?
If you are an individual who needs to send podpings only sporadically, then you can use the following endpoint:
https://hub.podcastindex.org/pubnotify?url=RSS_FEED&podping&STATUS
For instance, to send a podping and let podcasting apps know that PodconMX went live, we can use:
https://hub.podcastindex.org/pubnotify?url=https://podcon.live/feed.xml&podping&live
To end the live stream just request the same endpoint and replace the status parameter from live
to liveEnd
.
However, if you plan to use podping frequently, you are a Podcast Network or a professional operating in the podcasting industry, you will need to request an authorization token by dropping a message to podping[AT] podcastindex.org.
Enabling Value4Value in your podcast
Theoretically speaking, to live stream an episode or an event in your podcast you just need to support LIT, and do not have to enable Value4Value (V4V).
However, V4V is probably the best part of it! V4V is a monetization model but also a way of life.
With V4V your audience can send messages in the form of boostagrams associated with micropayments, or just deliver a continuous stream of micropayments for each minute of content they listen to or watch.
Having V4V enabled for your live event effectively means being able to actively engage with your audience both at the venue and remote, and make money while doing so!
To enable value4value in your podcast and use it also for the live streaming of episodes and events, you’ll need to add the Value
tag your RSS feed. You can do so manually or using a podcast hosting platform that supports this tag.
Automatically add the Value Tag to your RSS feed
If your podcast hosting company supports the Value
tag, no manual changes to your RSS feed are needed on your end as they’ll do all the heavy lifting. The Value
tag also allows specifying splits so the incoming micropayments can be shared in real time with others. By doing so we are able to share Value with people, institutions, companies, artists or causes we want to support. There is no better way to create the right incentives for everyone!
See the list of podcast hosting companies supporting Value4Value.
Manually add the Value Tag to your RSS feed
Below is a real-world example of value tag and splits taken from the RSS feed of PodconMX:
<podcast:value type=”lightning” method=”keysend”>
<podcast:valueRecipient name="PodcastIndex.org" type="node" address="03ae9f91a0cb8ff43840e3c322c4c61f019d8c1c3cea15a25cfc425ac605e61a4a" split="40"/>
<podcast:valueRecipient name="PodNews" type="node" address="030a58b8653d32b99200a2334cfe913e51dc7d155aa0116c176657a4f1722677a3" split="30" customKey="696969" customValue="GSGsn63p5aqcbxadLSk1"/>
<podcast:valueRecipient name="RSS.com" type="node" address="030a58b8653d32b99200a2334cfe913e51dc7d155aa0116c176657a4f1722677a3" split="30" customKey="696969" customValue="BcpTk8gO2wfzO9rFnapm"/>
</podcast:value>
Where podcast:valueRecipient
is the recipient of each micropayment. Each one of the value recipients (or nodes) requires a lightning wallet address and the split amount.
Our favorite lightning wallet is Alby because it’s the easiest to set up. For more information on the Value
tag one can visit the official tech specs.
When manually editing the RSS feed, we strongly recommend validating it via the Livewire Podcast Validator.
Podcast Apps
Because LIT
and Value4Value
are new and innovative podcast features, not all podcast applications and players support them (yet!).
Here is a list of supporting web, Android and iOS apps including Podfans, Podverse and Fountain, all of which are free to use.
Speakers at an event, artists and podcasters who want to take advantage of LIT and V4V should encourage their audience to download and use one of the supporting apps.
Ut prosim!