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 overview_optimized

Funnel connects to a source and monitors it for changes, then synchronizes with that data source providing core functionality for Interactive Television applications, including:

  1. Scheduling and efficient management of network resources to download source content
  2. Transcoding of media into application usable formats, "Stitchable MPEG"
  3. 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:

 

The Funnel Metadata API

CloudTV Funnel™ provides a powerful Metadata Search API which is available to the application in two ways:

  1. Through the companion JavaScript library av.apis.Funnel.
  2. Through two HTTP API methods: the method to obtain a list of data sources - GET /getfeedinfo, and the search method - POST /search
For this initial introduction we will focus on using the companion JavaScript library, which abstracts some of the redundant tasks into a chainable API. The library is available with these few lines of code:
//Include this in the <head> of your document:
//<script src="http://avframework.s3.amazonaws.com/2/av.js"></script>av.require('apis.Funnel');
var funnel = new av.apis.Funnel('myapikey', 'http://funnel-server-address'); 
 

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:

SQL

SHOW TABLES
#feed1, adisource, feed2

In Funnel, you can also ask for a list of all sources that belong to you.

Funnel API

funnel.getList(function(sources){
   console.log("The data sources are", sources);
//[{"name": "feed1", ...},{"name": "adisource", ...},{"name": "feed2", ...}] 
})

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:

SQL

(SELECT * FROM feed1) UNION (SELECT * FROM feed2)
#title     description   link                    image    ....
#Football  Fun game   http://edge/video1.mp4      http://edge/someImage.png

 

Funnel API

var onComplete = function(data){
    console.log("Got items back from Funnel for feed1 and feed2", data);
}
funnel.get("feed1","feed2").run(onComplete);

//[{"title": "On strike - employees at..", ...},
//{"title": "Storm approaching New York", ...},
//{"title": "Giants win the...", ...}] 

You can easily add filtering conditions as well as limits to the response data, as shown below:

var onComplete = function(data){
    console.log("Got items back from Funnel for feed1 and feed2", data);
}
funnel.get("feed1","feed2")
      .where("title","substring","giants")
      .limit(10)
      .run(onComplete);

You must be a member of the Developer Community in order to download the funnel explorer. If you have not yet registered please Create An Account

 

  • Friday, 06 April 2012

Your destination to find out more about just how easy it is to develop advanced applications that leverage the “write-once, deploy-everywhere” content creation environment of ActiveVideo’s CloudTV™ platform. You will be able to significantly reduce app time-to-market for connected devices of all types, as well as cable settop boxes that have no additional connectivity. Manufacturers and virtual service providers, as well as cable and IPTV operators around the world are currently benefiting from the advantages of ActiveVideo’s CloudTV platform.

© 2017 Active Video Networks. All Rights Reserved