public Int64 uploadLink(UploadLinkQuery query)
{
var url = apiUrl + "/api/upload/link.xml";
var signatureQuery = new UploadSignatureQuery();
signatureQuery.url = query.url;
signatureQuery.multipart = true;
var signature = new UploadSignature();
signature = getUploadSignature(signatureQuery);
var data = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>" +
"<vzaar-api>" +
"<link_upload>" +
"<key>" + signature.key + "</key>" +
"<guid>" + signature.guid + "</guid>" +
"<url>" + HttpUtility.HtmlEncode(query.url) + "</url>" +
"<encoding_params>" +
"<title>" + HttpUtility.HtmlEncode(query.title) + "</title>" +
"<description>" + HttpUtility.HtmlEncode(query.description) + "</description>" +
"<size_id>" + query.size_id + "</size_id>" +
"<bitrate>" + query.bitrate + "</bitrate>" +
"<width>" + query.width + "</width>" +
"<transcoding>" + query.transcoding.ToString().ToLower() + "</transcoding>" +
"</encoding_params>" +
"</link_upload>" +
"</vzaar-api>";
var response = executeRequest(url, "POST", data);
var doc = new XmlDocument();
doc.LoadXml(response);
var videoId = Int64.Parse(doc.SelectSingleNode("//id").InnerText);
return videoId;
}