예제 #1
0
        /// <summary>
        /// Download
        /// </summary>
        /// <param name="title"></param>
        /// <param name="url"></param>
        public void Download(string title, string url, bool isVideo)
        {
            // TITLE
            string mediaTitle = title;

            // URL
            string mediaUrl = null;

            // File extension
            string file_extension = string.Empty;

            try
            {
                switch (spinnerSelected)
                {
                case "YouTube":
                    IEnumerable <VideoInfo> videoInfos = DownloadUrlResolver.GetDownloadUrls(url, false);

                    VideoInfo video = null;

                    if (isVideo)
                    {
                        video = videoInfos
                                .First(info => info.VideoType == VideoType.Mp4 && info.AudioBitrate == 96); // mp4 video

                        if (String.IsNullOrEmpty(video.DownloadUrl))                                        // Fallback
                        {
                            video = videoInfos
                                    .First(info => info.VideoType == VideoType.Mp4 && info.AudioBitrate == 96 && info.Resolution == 240); // mp4 video
                        }
                        file_extension = ".mp4";
                    }
                    else
                    {
                        video = videoInfos
                                .First(info => info.VideoType == VideoType.Mp4 && info.AudioBitrate == 128); // m4a audio
                    }

                    if (video.RequiresDecryption)
                    {
                        DownloadUrlResolver.DecryptDownloadUrl(video);
                    }

                    mediaUrl = video.DownloadUrl;
                    break;

                case "ccMixter":
                    mediaUrl = ccMixterExtractor.DownloadUrl(url);
                    break;

                case "Dailymotion":
                    mediaUrl       = DailymotionExtractor.DownloadUrl(url);
                    file_extension = ".mp4";
                    break;

                case "Eroprofile":
                    mediaUrl       = EroprofileExtractor.DownloadUrl(url);
                    file_extension = ".m4u";
                    break;

                case "Pornhub":
                    var phitems = PornhubExtractor.Query(url);

                    foreach (var item in phitems)
                    {
                        if (!String.IsNullOrEmpty(item.getUrl()))
                        {
                            mediaUrl = item.getUrl();
                        }
                    }

                    file_extension = ".mp4";
                    break;

                case "Vimeo":
                    mediaUrl = VimeoExtractor.DownloadUrl(url);

                    file_extension = ".mp4";
                    break;

                case "xHamster":
                    var xhitmes = xHamsterExtractor.Query(url);

                    foreach (var item in xhitmes)
                    {
                        if (!String.IsNullOrEmpty(item.getUrl()))
                        {
                            mediaUrl = item.getUrl();
                        }
                    }

                    file_extension = ".mp4";
                    break;

                default:
                    return;
                }
            }
            catch
            {
#if DEBUG
                Console.WriteLine("File not found", title);
#endif

                Log.println("File not found: " + title);

                publishnotification("File not found", title, uniquenotificationID());
                return;
            }

#if DEBUG
            Console.WriteLine(mediaUrl);
#endif

            Log.println(mediaUrl);

            // Check if media url has some value
            if (mediaUrl != null && mediaTitle != null)
            {
                // Start download video file
                DownloadFile(mediaUrl, mediaTitle, isVideo, file_extension);

#if DEBUG
                Console.WriteLine("Start download");
#endif

                Log.println("Start download");
            }
            else
            {
#if DEBUG
                Console.WriteLine("File not found", title);
#endif
                Log.println("File not found: " + title);

                publishnotification("File not found", title, uniquenotificationID());
                return;
            }
        }
예제 #2
0
        /// <summary>
        /// Play file
        /// </summary>
        /// <param name="valueUrl"></param>
        /// <param name="title"></param>
        /// <param name="position"></param>
        private void play(string valueUrl, string title, int position, bool isVideo)
        {
            try
            {
                var tube = string.Empty;

                if (valueUrl.Contains("youtube"))
                {
                    tube = "YouTube";
                }
                else if (valueUrl.Contains("ccmixter"))
                {
                    tube = "ccMixter";
                }
                else if (valueUrl.Contains("dailymotion"))
                {
                    tube = "Dailymotion";
                }
                else if (valueUrl.Contains("eroprofile"))
                {
                    tube = "Eroprofile";
                }
                else if (valueUrl.Contains("pornhub"))
                {
                    tube = "Pornhub";
                }
                else if (valueUrl.Contains("vimeo"))
                {
                    tube = "Vimeo";
                }
                else if (valueUrl.Contains("xhamster"))
                {
                    tube = "xHamster";
                }

                var mediaUrl = string.Empty;

                switch (tube)
                {
                case "YouTube":
                    IEnumerable <VideoInfo> videoInfos = DownloadUrlResolver.GetDownloadUrls(valueUrl, false);

                    VideoInfo video = null;

                    if (isVideo)
                    {
                        video = videoInfos
                                .First(info => info.VideoType == VideoType.Mp4 && info.AudioBitrate == 96); // mp4 video

                        if (String.IsNullOrEmpty(video.DownloadUrl))                                        // Fallback
                        {
                            video = videoInfos
                                    .First(info => info.VideoType == VideoType.Mp4 && info.AudioBitrate == 96 && info.Resolution == 240); // mp4 video
                        }
                    }
                    else
                    {
                        video = videoInfos
                                .First(info => info.VideoType == VideoType.Mobile); // 3gp
                    }

                    if (video.RequiresDecryption)
                    {
                        DownloadUrlResolver.DecryptDownloadUrl(video);
                    }

                    mediaUrl = video.DownloadUrl;
                    break;

                case "ccMixter":
                    mediaUrl = ccMixterExtractor.DownloadUrl(valueUrl);
                    break;

                case "Dailymotion":
                    mediaUrl = DailymotionExtractor.DownloadUrl(valueUrl);
                    break;

                case "Eroprofile":
                    mediaUrl = EroprofileExtractor.DownloadUrl(valueUrl);
                    break;

                case "Pornhub":
                    var phitems = PornhubExtractor.Query(valueUrl);

                    foreach (var item in phitems)
                    {
                        if (!String.IsNullOrEmpty(item.getUrl()))
                        {
                            mediaUrl = item.getUrl();
                        }
                    }
                    break;

                case "Vimeo":
                    mediaUrl = VimeoExtractor.DownloadUrl(valueUrl);
                    break;

                case "xHamster":
                    var xhitmes = xHamsterExtractor.Query(valueUrl);

                    foreach (var item in xhitmes)
                    {
                        if (!String.IsNullOrEmpty(item.getUrl()))
                        {
                            mediaUrl = item.getUrl();
                        }
                    }
                    break;

                default:
                    return;
                }

#if DEBUG
                Console.WriteLine("Media url: " + mediaUrl);
#endif

                Log.println("Media url: " + mediaUrl);

                if (String.IsNullOrEmpty(mediaUrl))
                {
#if DEBUG
                    Console.WriteLine("File not found", title);
#endif

                    Log.println("File not found: " + title);

                    searchActivity_.publishnotification("File not found", title, searchActivity_.uniquenotificationID());
                }
                else
                {
                    if (isVideo)
                    {
                        var intent = new Intent(ActivityContext.mActivity, typeof(VideoPlayerActivity));
                        intent.PutExtra("url", mediaUrl);
                        intent.PutExtra("title", title);
                        ActivityContext.mActivity.StartActivity(intent);
                    }
                    else
                    {
                        mediaplayer(mediaUrl, position);
                    }
                }
            }
            catch (Exception ex)
            {
#if DEBUG
                Console.WriteLine(ex.ToString());
#endif
                Toast.MakeText(ActivityContext.mActivity, "Parsing error", ToastLength.Long).Show();

                Log.println(ex.ToString());
            }
        }
예제 #3
0
 internal VideoInfo(VideoInfo info)
     : this(info.FormatCode, info.VideoType, info.Resolution, info.Is3D, info.AudioType, info.AudioBitrate, info.AdaptiveType)
 {
 }