Page History: MetaService 1.0 : Home
Compare Page Revisions
Page Revision: 2009/05/13 20:06
Welcome to Company Webcast's Meta Service
The Cwc MetaService is a
Soap 1.1 secure webservice that allows clients to find webcasts and retrieve their metadata, binaries and mediastreams.
Essentially the metadata describes in as much detail as available the "events" as they occured in real time,
at the time of the live webcast.
So for example, the metadata for any given webcast might contain a list of Speakers that were active during the webcast.
For every Speaker the metadata will then contain a list of "Events", where the Event's Start and End time describe when the Speaker was active.
The metadata also contains links to relevant binaries like media streams, mp3's and PowerPoint slides, and provides mechanisms for downloading them, or publishing them directly within the context of your own application.
Example usage scenario's
- Include a list of upcoming webcasts in your website
- Add a list of video fragments to speaker's homepages
- Build a front end for WebcastSearch and let users search through your webcasts
- Retrieve metadata and binaries for your archive or integration with existing data/indexing/search solutions
- Create your own playback experience with full synchronization of slides, speakers, annotations and topics
- Dynamically create compilations of fragments based on topics or speakers
The basics
The Web Services Description Language (WSDL) file is available at the following URL:
https://services.companywebcast.com/meta/metaservice.svc?wsdlThe MetaService exposes 2 basic methods:
WebcastSearch(string Username, string Password, string OwnerName, string TopicTitle, string SpeakerLastName, string WebcastTitle, DateTime PeriodFrom, DateTime PeriodTo, WebcastStatus Status, int PageNumber, int PageSize)
WebcastGet(string Username, string Password, string Id, string Language)
Typically a client would call WebcastSearch to retrieve WebcastSummaries, which give some basic info about the webcasts that match the search parameters. A client would then use elements from a WebcastSummary as input parameters for a call to WebcastGet. WebcastGet returns a Webcast object, which contains detailed information about a single webcast, in a single language.
A client has to authenticate against the MetaService by providing a username and password in every call.
If you have an account that gives you access to the CWC Webcast Management System, you can use that. However, we recommend you request an account specifically for consuming the MetaService. Requests for accounts can be sent to
Lars.Jilesen@companywebcast.com.
For testing purposes you can use the user "testusername" with password "testpassword".
Creating a client
In essence a Soap service, such as the Cwc MetaService, is a web service to which a client has to POST a specifically formatted HTTP Header and XML message, to in turn retrieve XML containing the data a client is after.
To implement a client that consumes the MetaService, it would therefore suffice to manually craft the request message, post it to the service and deserialize the XML response.
However, it's often much more convenient to use code generating tools that are built into IDE's, part of your platform, or exist as standalone applications. We have tested various platforms and IDEs against the MetaService, and most make implementing a client trivial.
Check the links below for sample code and some discussion about ways to consume the MetaService with different platfoms. Please note that in most cases these were created without deep knowledge of the actual platform, so better solutions may exist. In all cases sample code is provided for demo purposes only, they are not production ready.
Understanding the security model
Many Webcasts are configured to limit access in some way, and these limitations apply to the MetaService's data and underlying binaries like pdf files and media streams as well.
The MetaService enforces these limitations, and provides access with 3 seperate scenario's in mind:
Publish a link to the Company Webcast Player
The Webcast object you retrieve when you call WebcastGet contains a property called RegisterUrl. When your users open this URL, the access rules of the Webcast are checked and implemented, after which the user gains access to the Company Webcast Player and is automatically redirected there. Even if the specific Webcast you are linking to does not have any access limitations applied, access to the Webcast Player can only be gained through this URL.
The underlying mechanism here is cookie based. If a user conforms to access rules, he gains an authorization cookie which is required for every request to a secured Url.
When a webcast has access limitations configured:
When a GET request is made to RegisterUrl, the user is presented with an authentication form. Once the form is completed the user is redirected to the Companywebcast Player.
When a webcast has no access limitations:
When a GET request is made to RegisterUrl the user is automatically redirected to the Companywebcast Player.
Publish a link directly to a binary or media stream
The Webcast object you retrieve when you call WebcastGet contains Urls to binaries and media streams. You can build these directly into your own website if you choose to do so, but they will only work if your users have a valid authorization cookie for the files they are trying to access. For them to retrieve a valid cookie, you will have to implement a mechanism so that each of your users first calls the Url in Webcast.RegisterUrl, before calling any other Urls. A call to RegisterUrl has to be done only once per Webcast. Note that depending on a Webcast's configuration, the page at Webcast.RegisterUrl may display a form that requires a user's input.
When a webcast has access limitations configured:
The default behaviour of Webcast.RegisterUrl is to redirect the user to a Companywebcast Player after authorization completes successfully. You can override this behaviour, and in stead redirect the user to a page within your own application.
You do this by formatting your call to RegisterUrl like this : Webcast.RegisterUrl?ref=http://yoursite/yourfile
When a webcast has no access limitations:
The default behaviour of all Urls to binaries and mediastreams is to redirect back to RegisterUrl when a user has not yet been authorized, the application at RegisterUrl gives the user a valid authorization cookie, and then redirects the user back to the original Url. So for webcasts that have no access limitation you can use the Urls to binaries en mediastreams directly.
Retrieve binaries to local storage
Your MetaService client can use the Urls to binaries and mediastreams to retrieve and store files locally. For this to work your client will have to send a valid authorization cookie along with every request for a binary or mediastream. Because webcasts may have access limitations in place that require interactive input from the user, we've provided to "known" users a way of retrieving an authorization cookie directly.
You can retrieve a valid cookie per Webcast by POSTing your MetaService account details to Webcast.RegisterUrl. Your account details have to be formatted like this : Username=YourUsername&Password=YourPassword
This is an example of a valid request to Webcast.RegisterUrl:
POST /rotterdam/20090409_1/nl/authenticate/register HTTP/1.1
Accept: */*
Content-Length: 32
UA-CPU: x86
Accept-Encoding: gzip, deflate
User-Agent: Jakarta Commons-HttpClient/3.1
Host: player.companywebcast.com
Connection: Keep-Alive
Cache-Control: no-cache
Username=testusername&Password=testpassword