Downloading a recording from the live meeting service requires two steps.  This first is an API call that fetches a url for a specific recording.  For example the following XML snippet ...

<PlaceWareConfCenter authUser="caller id" authPassword="caller password">
    <StringQuery fieldName="name" operator="=" value="meetingName"/>
      <StringOption name="recViewerCompany" value="Company"/>
      <StringOption name="recViewerName" value="jondoe"/>
      <StringOption name="recViewerEmail" value=""/>
      <EnumerationOption name="resourceType" value="WindowsMediaMovieRecordingDownload">

will return a reply with a url to a media file of the recording. 

   url = “string”>

The returned URL can then be plugged into Microsoft Windows Media Player. The following code snippet shows how:

Importing WMPLib; // the dll is %windir%\system32\wmpl.dll
WMPLib.WindowsMediaPlayer player = null;

public void ViewResource(string url)
      player = new WMPLib.WindowsMediaPlayer();

A client application can also let a user save the recording to a local drive for viewing at a later time. This requires that the client application make an explicit (HTTPS GET) request to the conference center to retrieve the stream containing the recording.

The following is C# implementation of the HTTPS GET request for downloading a resource stream from a conference center.

public Stream GetResource(string url)
    // Get resource using HTTP GET with the url of a resource;
    HttpWebRequest myReq = (HttpWebRequest)WebRequest.Create(url);
    myReq.Method = "GET";
    Stream respStream = null;

    HttpWebResponse myResp = null;
    myResp = (HttpWebResponse)myReq.GetResponse();

    if (myResp.ContentType == "application/octet-stream")
        respStream = myResp.GetResponseStream();

    return respStream;

The stream can then be saved to a file. The following is one example in C#.

public void DownloadResource(string url, string filePath)
    Stream res = GetResource(url);
    if (res == null)

    FileStream fileStream = new FileStream(filePath, 
    int length = 1024;
    Byte[] buffer = new Byte[length];
    int bytesRead = res.Read(buffer, 0, length);
    while (bytesRead > 0)
        fileStream.Write(buffer, 0, bytesRead);
        bytesRead = res.Read(buffer, 0, length);