Exemplo n.º 1
0
        string getLiveUrls(VideoInfo video)
        {
            WebProxy proxyObj = getProxy();
            string playlistStr = GetWebData(video.VideoUrl, proxy: proxyObj, userAgent: HlsPlaylistParser.APPLE_USER_AGENT);
            HlsPlaylistParser playlist = new HlsPlaylistParser(playlistStr, video.VideoUrl);

            video.PlaybackOptions = new Dictionary<string, string>();
            if (playlist.StreamInfos.Count == 0)
            {
                video.PlaybackOptions.Add(video.Title, video.VideoUrl);
                return video.VideoUrl;
            }

            return populateHlsPlaybackOptions(video, playlist.StreamInfos);
        }
Exemplo n.º 2
0
        string getHLSVideoUrls(VideoInfo video, string vpid, WebProxy proxyObj)
        {
            XmlDocument doc = new XmlDocument();
            doc.LoadXml(GetWebData(HLS_MEDIA_SELECTOR_URL + vpid, proxy: proxyObj)); //uk only
            XmlNamespaceManager nsmRequest = new XmlNamespaceManager(doc.NameTable);
            nsmRequest.AddNamespace("ns1", "http://bbc.co.uk/2008/mp/mediaselection");

            video.PlaybackOptions = new Dictionary<string, string>();
            foreach (XmlElement mediaElem in doc.SelectNodes("//ns1:media[@kind='video']", nsmRequest))
            {
                foreach (XmlElement connectionElem in mediaElem.SelectNodes("ns1:connection", nsmRequest))
                {
                    string playlistUrl = connectionElem.Attributes["href"].Value;
                    string playlistStr = GetWebData(playlistUrl, proxy: proxyObj, userAgent: HlsPlaylistParser.APPLE_USER_AGENT);
                    HlsPlaylistParser playlist = new HlsPlaylistParser(playlistStr, playlistUrl);
                    if (playlist.StreamInfos.Count > 0)
                        return populateHlsPlaybackOptions(video, playlist.StreamInfos);
                }
            }
            return null;
        }