public static YoutubeVideo FromSingleVideo(string uri) { var uriConverter = new UriConverter(new WebClientImpl()); var videoId = uriConverter.GetVideoId(uri); var gdataUri = uriConverter.FromYoutubeVideoToGDataVideo(videoId); var webClient = new WebClientImpl(); var responseXml = webClient.DownloadString(gdataUri); var responseDocument = XDocument.Parse(responseXml, LoadOptions.SetBaseUri); XNamespace atom = "http://www.w3.org/2005/Atom"; var titleElement = responseDocument.Root.Element(atom + "title"); var videoTitle = titleElement != null ? titleElement.Value : string.Empty; var flvUri = uriConverter.GetFlvUriFromYoutubeVideoUri(videoId); return string.IsNullOrEmpty(flvUri) ? null : new YoutubeVideo { FlvUri = flvUri, Link = uri, Title = videoTitle }; }
public void FromYoutubeVideoToGDataVideo_WithSingleVideoUri() { var uriConverter = new UriConverter(_webClient.Object); var videoId = "test"; var expectedUri = "http://gdata.youtube.com/feeds/api/videos/test"; Assert.AreEqual(expectedUri, uriConverter.FromYoutubeVideoToGDataVideo(videoId)); }