public List <OpenuVideoData> GetVideosInView(string vidChooserHtml) { List <OpenuVideoData> videoUrls = extractViewedCollection(vidChooserHtml); foreach (var vid in videoUrls) { var vidUrlCacheName = vid.formatCacheFileName(); var vidIdentifier = cache.GetContent(vidUrlCacheName); if (vidIdentifier == null) { vidIdentifier = GetVidUrl(vid, cookieJar); cache.PutContent(vidUrlCacheName, vidIdentifier); } if (vidIdentifier == null) { Console.WriteLine("Error when trying to fetch video with id = {0}", vid); } else { vid.PlaylistUrl = string.Format("http://api.bynetcdn.com/Redirector/openu/manifest/{0}_mp4/HLS/playlist.m3u8", vidIdentifier); } } // This way we get the videos in chronological order videoUrls.Reverse(); return(videoUrls); }
private void copyHtml() { Cef.GetGlobalCookieManager().VisitAllCookies(new CookieConverter(jar)); cache.PutContent(LastViewKey, addressBar.Text, BrowserCache); var html = browser.GetMainFrame().GetSourceAsync().Result; playlist = parser.GetVideosInView(html); var videoChooser = new VideoChooserDialog(playlist); videoChooser.ShowDialog(); }
string requestPlaylist(OpenuVideoData data) { var playlistFile = cache.GetContent(data.formatPlaylistFile(), data.VideoId); if (playlistFile != null) { return(playlistFile); } HttpWebRequest req = (HttpWebRequest)WebRequest.Create(data.PlaylistUrl); req.AllowAutoRedirect = true; var response = (HttpWebResponse)req.GetResponse(); if (response.StatusCode != HttpStatusCode.OK) { return(null); } playlistFile = new StreamReader(response.GetResponseStream()).ReadToEnd(); cache.PutContent(data.formatPlaylistFile(), playlistFile, data.VideoId); return(playlistFile); }