System Overview

AutoPod is a cloud based, distributed system, leveraging a wide range of technologies to reliably carry out recording of streams, generation of episodes and sharing of the generated content through a number of distribution channels. The key components and brief description of their function are as follows.

Stream Recorders#

We run one recorder service for each stream that is being captured by AutoPod. Recorders are run in isolation from one another meaning that they cannot interfere with or cause problems for other recorders.

Recorders within AutoPod are running constantly and are always capturing the output of your stream. This does not depend on whether an episode is on air, we capture all content in a standard format and use this standard format to create episodes (using a generator)

Recorders upload the captured audio directly to our nominated cloud storage provider.

Recorders are run using a system that Automatically monitors and restarts a recorder if there are any problems. They are also fault tolerant in that if the nominated storage provider had issues, the AutoPod main database became unavailable or some other major issue occured they would keep running and upload any files once other services had recovered.

Episode Generator#

We run an instance of the episode generator for each episode created by AutoPod. We ask it to create an episode for a given stream between two times (i.e. the beginning and end of the broadcast). The episode generator collects the standardised file recordings produced by the recorder (each 10 seconds in length) creates a copy of and stitches them together into a single MP3 file. This file is then uploaded back into the cloud as a new file and registered in our episode database.

Episode Checker#

For every episode created by AutoPod, we run it through a number of checks. These include things such as checking that the length of an episode is correct, that the file is playable and generally catches any errors that might occur. If an episode fails the checks then it is marked for re-creation and is passed back to the episode generator for it tio have another go. The most common reason why an episode may fail is usually due to aa problem with the incoming audio feed itself (i.e. there has been a power cut at the radio station so no audio is being produced) In these situations, the episode checker will attempt to re-create the episode 3 times and on the fourth mark an episode as a 'best effort' attempt.

RSS Generator#

The RSS generator periodically updates the RSS feeds that are provided by AutoPod. We run this check every 15 minutes and means that platforms such as Apple Podcasts will receive updates from AutoPod. Although we update these files 4 times per hour, it may take slightly longer for podcast apps to pick up on the changes. They carry out their own scans and for some apps this may be once every hour (or sometimes less). This is out of the control of AutoPod.

Dashboard#

The dashboard provides an easy to use interface for managing AutoPod streams, shows, rss feeds and more. The dashboard can be accessed by Admin and Delegate users and is the central hub for finding content such as the RSS feeds, code to embed HTML widgets and more. The dashboard can be found Here

Embeddable & Player#

The embeddable service facilitates all HTML widgets provided by AutoPod, it is closely integrated with the AutoPod player and has a wide range of available views. The AutoPod player is a web based interface for the streaming of episodes and is utilised by embeddable elements as a popup for content.

Storage#

We utilise cloud based storage with an exceptional track record for reliability to provide both storage and hosting of the content that you are able to hear. As the storage provider has a large european data centre, access to files is fast - which in turn results in their being very little delay between pressing play and hearing the content (providing of course that you are using a modern broadband connection).

Statistics Engine#

We use the statistics engine to track all access to storage and from this derive information such as the total number of listens that a stream as had and more. The statistics engine is ever evolving and as we learn how better to utilise it we are able to provide a wider range of useful information.

Monitoring Systems#

We utilise a number of commodity monitoring systems to ensure that everything is ticking along nicely. Our primary focus and concern is ensuring that streams are being recorded reliably. We receive notifications if any stream stops recording for any reason we are notified and are able to see the reason. 9 times out of 10 this is due to an external issue, in which case we will aim to get in touch without the AutoPod account holder and let them know that their online feed of the station is experiencing difficulties.