Introducing Opened Captions
A SocketIO API for live TV closed captions
The internet is filled with real-time updates triggered by online activity, but it still feels like magic when we see automatic updates driven by the real world. Opened Captions makes it easy to create web applications and visualizations that react the second words are spoken on live television. For example, if a computer knows what is being said on C-SPAN it can do things like:
- Provide viewers with contextual information, such as word definitions, history, and related coverage.
- Monitor the channel, sending emails whenever a specific representative or state is mentioned on television.
- Identify phrases that have been fact-checked in real time and let everyone know about it.
- Compare statements to transcripts from the past to reveal hypocrisies, consistencies, and common themes.
- Create live mashups between what is being said on TV and what is being said on Twitter.
These are the result of a few minutes of brainstorming by one person. That is to say, there is really a ton of potential!
Wondering if this is worth your time to play with? The service takes about two minutes for you to set up and run once you have Node.js and Git installed on your computer.
Behind the stream is a distributed architecture for Closed Captioning live-feeds. Opened Captions servers can pull a CC stream over a serial port, or (more likely) they will connect to an existing Opened Captions server pull the stream from there. This means that anybody can set up a server that does exactly what is happening on OpenedCaptions.com even if they don’t have access to hardware, software, or a live TV stream.
The new projects will serve the feed too. People can connect their servers to yours in the same way you connected yours to OpenedCaptions.com. Practically speaking this means a few things:
- Your amazing mashup won’t break another person’s server once it gets popular.
- Your have essentially created a content fork. Want to modify the text so the politicians sound drunk? Add semantic information to the message payloads? Replace names with lore from Star Trek? Go for it. Others can build their apps from your stream and change it further.
- You don’t have to rely on anyone else for the Closed Captions if you don’t want to. You can spend some time setting up your own scraper and use that source instead of a third party.
- You don’t have to spend extra resources learning how to scrape Closed Captions from video if you don’t want to. Just point your server to a public Opened Captions stream.
How to Install It
This project has been built with Node.JS, but anything that supports SocketIO can access the CC feed. Installation instructions can be found readme-in the readme. It is fresh off the presses, so file an issue for pressing needs, or just sit back and relax as the patches pour out.
Use IRC to visit #opennews on irc.mozilla.org if you have any questions. If you are antisocial or generally afraid of chat rooms you can also reach out to me on Twitter at @slifty.
Elected member of Cheltenham School Board; Technologist; Loving Troll; Internet Archive; Knight; Mozilla; MIT Media Lab; Carnegie Mellon; Bad Idea Factory