示例#1
0
        /// <summary>
        ///     Generate video link
        ///     Note:
        ///     1. UserAgent (MSIE10) and Referrer must be set to the downloader, otherwise server will return 500
        ///     2. Exception may be raised if something goes wrong (e.g. no video found)
        /// </summary>
        /// <param name="contentUrl"></param>
        /// <returns></returns>
        private async Task <List <string> > GenerateGeneralVideoLink(string contentUrl)
        {
            // BGetCore library related stuff
            var videoInfoCrawler = new VideoInfoCrawler();
            var videoInfo        = await videoInfoCrawler.GetVideoInfo(contentUrl);

            var videoUrlGrabber = new VideoUrlCrawler();
            var videoUrl        = await videoUrlGrabber.GetUrlBySingleContentId(videoInfo);

            var urlList = new List <string>();

            // Just a practice of LINQ...
            if (Settings.Default.PreferFlv)
            {
                videoUrl.Durl.ForEach(url => urlList.Add(url.Url));
            }
            else
            {
                urlList.AddRange(
                    videoUrl.Durl.Where(url => url.BackupUrl != null && url.BackupUrl.Url.Count != 0)
                    .SelectMany(url => url.BackupUrl.Url));
            }

            return(urlList);
        }
示例#2
0
        private static void Main(string[] args)
        {
            Console.Write("[INFO] Enter your video ID, e.g. av349183: ");
            var inputVideo = Console.ReadLine();

            Console.WriteLine("[INFO] Please wait...");

            var videoInfoCrawler = new VideoInfoCrawler();
            var videoInfo        = videoInfoCrawler.GetVideoInfo(inputVideo).Result;
            var cid = videoInfo.ContentId;

            Console.WriteLine("[DEBUG] CID is " + cid);
            Console.WriteLine("[INFO] Title: " + videoInfo.Title);
            Console.WriteLine("[INFO] Author: " + videoInfo.Author);
            Console.WriteLine("[INFO] Description: " + videoInfo.Description + "\n\n\n");

            var videoUrlGrabber = new VideoUrlCrawler();
            var videoUrl        = videoUrlGrabber.GetUrlBySingleContentId(videoInfo).Result;

            Console.WriteLine("[INFO] Got {0} video sections.", videoUrl.Durl.Count);


            foreach (var url in videoUrl.Durl)
            {
                Console.WriteLine("[INFO] Flash video URL: {0}", url.Url);

                if (url.BackupUrl != null && url.BackupUrl.Url.Count != 0)
                {
                    foreach (var mp4Url in url.BackupUrl.Url)
                    {
                        Console.WriteLine("[INFO] MP4 backup video URL: {0}", mp4Url);
                    }
                }
            }


            Console.Read();
        }
示例#3
0
 public BgetVideoUrlTest()
 {
     _videoUrlCrawler  = new VideoUrlCrawler();
     _videoInfoCrawler = new VideoInfoCrawler();
 }