CloudTV Funnel™ - Overview
What is CloudTV Funnel™?
CloudTV Funnel™ 2.0 is the ActiveVideo Networks next-generation content publishing solution. It is a distributed and scalable platform for managing content, assets (images, videos, etc.) and business rules for efficient application experiences that require instant access to content from one or more locations in the cloud.
Funnel connects to a source and monitors it for changes, then synchronizes with that data source providing core functionality for Interactive Television applications, including:
- Scheduling and efficient management of network resources to download source content
- Transcoding of media into application usable formats, "Stitchable MPEG"
- Indexing of catalogs and data into a searchable MetaData API for applications
This significantly reduces start-up time of both applications and video playback. (Most applications only need a single call to the API even with data being spread across multiple data sources.)
What Data Sources Can it Use?
Funnel provides a flexible ingestion system, with standard fields from data sources (title, description, link, etc.) mapped to the same data fields across data sources, as well as support for custom fields in the data source. The following data sources are supported:
- MRSS 1.5 (http://www.rssboard.org/media-rss)
- RSS 2.0 (http://www.rssboard.org/rss-2-0-11
- ADI 1.1 (http://www.cablelabs.com/specification/cablelabs-asset-distribution-interface-specification-version-1-1-2/)
The Funnel Metadata API
CloudTV Funnel™ provides a powerful Metadata Search API which is available to the application in two ways:
- Through two HTTP API methods: the method to obtain a list of data sources - GET /getfeedinfo, and the search method - POST /search
Once you have included the library and created a new instance of av.apis.Funnel, you are ready to begin querying Funnel. Of course, it is imprtant to understand how the data is represented so that you can think of how to most efficiently query it.
Sources and Items - How the Data is Organized
1 feed/source ≈ 1 table. For all intents and purposes, you can think of each RSS feed, ADI source, and Media RSS feed as being mapped to a table in a database. While the actual data structure is not important to consume the API, it gives you a familiar paradigm. Suppose you had feeds for news, weather, lottery winning numbers, etc. When you talk to the Funnel API, you can ask for data about "what sources are available," and "what items exist in source X."
Recipe #1 - List all data sources
Using SQL as an example, suppose in a web application you wanted to get a list of all tables available in the database. You might write a query like the following:
In Funnel, you can also ask for a list of all sources that belong to you.
Recipe #2 - Get all items within one or more sources
Now you could use that list to display all of the sources to the user, or to further obtain more granular items from each source. If you wanted all items that were contained within the source "feed2" and "feed1", you could write a simple SQL query for a web application like the following:
You can easily add filtering conditions as well as limits to the response data, as shown below: