Enhance your devices and services with the Serotek API.
What is an API?
In its simplest terms, an API is a programming language that allows two different applications to communicate, or interface, with each other.
An API is used to enhance features and add functionality to one or both applications. Do you or your company use a Twitter or Facebook app? How about a WordPress plugin? Do you use Google Analytics? Most of these tools rely on APIs. Without access to the code behind social media tools like Twitter and Facebook, developers (like ours) would not have been able to create our popular social media management tool the Socializer. Without APIs, content providers like the Apple App Store and the Google Play Store would be very small!
APIs matter to businesses because they enable tech-savvy innovators to develop amazing tools that enhance product and service offerings without having to write entire applications from scratch. With APIs, developers can more quickly launch useful features while customers benefit from the functionality that these new features provide. APIs help us do our jobs, market our companies better, and drive revenues.
What can I do with the Serotek API?
The Serotek API offers the convenience of accessing the same content directly from your device or service that is currently accessed by thousands of users from PC’s, Androids and iDevices. This means that your customers need not engage in the hassle of switching away from your product to another device just to get the content they crave. With the Serotek API, you’ll have:
- Full access to iBlink Radio, the best resource for content produced by and for the blind community.
- Subscriber access to Serotek’s Paid SAMNet service, including news, streaming radio, audio-described content, podcasts, and much more.
- Ability to stream protected and unprotected content, or download it for offline use.
- Consistent place markers for file positions between sessions.
- Validate credentials for the SAMNet service using OAuth, ensuring secure access without storing credentials directly on your device.
These are just a few of the features available in version 1.0 of the Serotek API, and the service will be expanding in the coming months to include even more features, such as integration with Serotek’s DocuScan Plus, and much more.
When you’re ready to explore the benefits of integrating Serotek’s API, please contact us at firstname.lastname@example.org.
Serotek API Overview
Version 1.0 of the Serotek API allows your developers to write applications that provide access to the content in both iBlink Radio and SAMNet. This includes podcasts, radio stations, audio-described movies, old-time radio programs, news feeds, and links to websites. For on-demand audio programs such as podcasts and movies, you can either stream the audio or download it and play it later.
Authentication is based on OAuth 2.0, the industry standard on which companies such as Google, Facebook, Twitter, Amazon, and Microsoft are converging. OAuth makes it easier to authenticate with the API while protecting the user's security, because you don't need to store a username and password, and users will be able to revoke your application's access if necessary.
The iBlink API presents content as a hierarchy of categories, starting with a single entry point. Each category can contain the following types of content: internal audio recordings (hosted by Serotek), movies (which are internal recordings with additional metadata), web links, radio stations, external recordings (such as podcast episodes), text documents, and other categories. Feeds are a special kind of category which represents syndicated and time stamped content, such as news feeds or podcasts. The main logic of your application will be as follows: fetch a category from the API, present the items in that category, then handle the item that the user selected according to its type. As with a web browser following links, since the item can be another category, this process is recursive. Also as with a web browser, you'll need to keep track of navigation history so the user can go back. But unlike a web browser, your application will mostly be dealing with structured data rather than HTML, with the exception of web links and text documents.
When playing pre-recorded audio programs, it's important to keep track of the user's playback position, so the user can easily resume playback after an interruption, even on a different device. Your application should do this locally for users that are not logged into SAMNet or are currently offline. For users that are logged into SAMNet and online, the iBlink API gives you the tools to synchronize the user's playback position with the server. Before beginning playback, the application should query the server for the last known position, and begin playback at the position indicated by the server, if any. During playback, the application should periodically send the current position to the server if the user is online. If the user is offline, the application should periodically store the current position, then send all stored playback positions to the server the next time the user is online.
It's also important to give the user easy access to recently played audio programs. Your application should do this internally for users that aren't logged into SAMNet or are currently offline. If the user is logged into SAMNet and is currently offline, your application should query the API for recently played content when the user requests it, to enable a fluid experience across devices.
Downloading of protected content such as audio-described movies is based on the DAISY Protected Digital Talking Book standard, which uses AES encryption combined with the RSA public key infrastructure to provide digital rights management. To support protected content, you'll first need to provide a public key for your application or device; this is called a device key. Then, the first time a given device is about to download a piece of content, it requests a user key from the API; this user key is encrypted using the device key. For each piece of content, the device requests a download authorization, and the API provides a content key, which is encrypted using the user key. Finally, the device downloads the encrypted content, and uses the content key to decrypt that content during playback.
The iBlink API is only the beginning of what we plan to offer. In the coming months, we'll be introducing APIs for more Serotek services, including more SAMNet features as well as DocuScan Plus. These APIs will all be based on the same standards and design principles, including a unified authentication system. Once you've integrated one API, the rest will be easy.