There is too much duplication of effort in public media product development. We can do a better job sharing practices and things we build for ourselves that could be useful to others. The Public Media Kitchen Toolkit is a collection of interesting things we're all working on. The intention is first to inform but over time move to direct collaboration.
Click here for information about the next Public Media Potluck - the Public Media Kitchen's in person meetup January 17-18th, 2019 in San Francisco, CA.
Instructions for updating this list can be found in this GitHub project's readme file.
StreamMachine: Next-generation streaming audio infrastructure for radio stations
StreamMachine is an open-source streaming audio server aimed at pushing innovation for radio stations that have spent too many years running old technology like Shoutcast and Icecast. The project has two goals: emulating the traditional streaming experience and building support for new features that push the radio listening experience forward. Currently StreamMachine supports traditional Shoutcast-style streaming and HTTP Live Streaming. SCPR has run StreamMachine in production since 2012.
RateIt App: A Rails engine for rating items.
Validates users using OAuth and the rated thing using injected plugins. Implementations of this ratings engine include the APM|MPR Alexa skill and the APM Radio app (coming to Public Media Kitchen February 2018)This is a Knight funded project built by APM|MPR.
Top Music: A year-end list generated by your audiences' votes
This app provides a user interface for allowing the display of a large number of items that can be selected by an authenticated user. There is code for importing songs and fetching album artwork and works with OAuth for authentication.This is a Knight funded project built by APM|MPR.
Resound: A suite of applications to help with the storage, management, and distribution of digital audio
The goal of the project is that it's plug-and-play with existing systems, and is easy to use for any user in any given organization. This is a Knight funded project built by SCPR in collaboration with NYPR, WHYY, and NPR-DS.
APM Go and Bragi API: A personal playlist app and supporting backend API.
The front end of this project is a React based player that allows an authenticated user to play and archive audio from a variety of participating websites. The back end of this project is an API that stores data about individual users, what audio files they have saved and whether they are in a new or archived state.This is a Knight funded project built by APM|MPR.
IoT (Internet of Things)
Alexa Skill for Music Stations: An example Alexa Skill for playing live streams and calling Composer API to identify song info
This is a simple skill that demonstrates live music streaming and interacting with the NPR Composer API, initially developed for WYEP
A small library to reduce boilerplate and enable sharing of state handlers and intents between skills. Easily compose intents to create a state handler, and compose state handlers to create an Alexa skill lambda handler. This library is currently up and running in a development version of the skill for The Current.
Content Management Systems
Social Media & 3rd Party Platforms
Audiograms A library for generating shareable videos from audio clips
Unlike audio, video is a first-class citizen of social media. It's easy to embed, share, autoplay, or play in a feed, and the major services are likely to improve their video experiences further over time. WNYC's solution to this problem was this library. Given a piece of audio to share on social media, this can generate a video with that audio and some basic accompanying visuals: a waveform of the audio, a theme for the show it comes from, and a caption. For more backstory, read this post.
oEmbed Proxy Simple library to manage first party, embedly, and custom oembeds
At MPR/APM, producers want to include content from tons of third party systems. Many of these support oEmbeds, a spec for content embedding. To handle these, we built the oEmbed Proxy which is a single place to support first party oembeds (where the provider supports oembeds natively), Embed.ly oembeds (where they built support for a pile of additional content providers), and "Fauxembeds (where we build our own embed providers for sites which do not support it). The oEmbed Proxy is highly extensible and makes it easy to add additional oEmbed providers.
WBUR is unable to publicly open source the code for its mobile app. However, they are more than happy to share the code with anyone who works in public media. Just contact David Moore or Will Smith (available on the #public-media-kitchen Slack channel).
Marketing Methodologies / Case Studies
Scribble Live: Commercial liveblog tool
Used by MPR News. Has generally been a no fuss hosted service though there have been some speed bumps getting https setup properly.
Sourcefabric Live Blog: Opensource live blog
Based on OSS Superdesk CMS.
Slack Live Blog Slack-based live blog
OSS project that uses Rails 4.2 and the slack-api gem to generate a live blog fed from a Slack channel. Does not appear to be actively maintained.
Live Coverage Forms For (and From) the Immediate Future: SRCCON 2017 session on live events coverage
A deck about—and some examples of—experiments around live event coverage. Most of the software listed was not opensource or commercially available at the time of the presentation.