public static string PrepareUrl(JGN_Videos entity)
        {
            string _title = "";

            if (entity.title == null)
            {
                entity.title = "";
            }
            int maxium_length = Jugnoon.Settings.Configs.GeneralSettings.maximum_dynamic_link_length;

            if (entity.title.Length > maxium_length && maxium_length > 0)
            {
                _title = entity.title.Substring(0, maxium_length);
            }
            else if (entity.title.Length < 3)
            {
                _title = "preview-video";
            }
            else
            {
                _title = entity.title;
            }

            _title = UtilityBLL.ReplaceSpaceWithHyphin_v2(_title.Trim().ToLower());

            return(Config.GetUrl("media/" + entity.id + "/" + _title));
        }
        // Main function used to process core video thumb stored on local server, remote server, cloud storage or third party storage e.g youtube video thumbs
        public static string ProcessVideoThumb(string url, JGN_Videos vd, bool isaudio, ListItems attr)
        {
            // media thumb section
            var str     = new StringBuilder();
            var img_str = new StringBuilder();

            // isExternal = 3; // Default Value for Query Processing. If 3 is set then use default option
            if (vd.isexternal == 0 || vd.isexternal == 3)
            {
                if (vd.ispublished == 0 || vd.errorcode > 0 || vd.thumbfilename == "" || vd.thumbfilename == "none")
                {
                    // video is not yet published
                    // or published failed - any level of error raised
                    // or thumbfilename is empty
                    vd.thumb_url = SiteConfiguration.URL + Videos.Configs.GeneralSettings.default_path;
                    str.Append(Process_Embed_Video_Thumb(img_str, vd.thumb_url, attr));
                }
                else
                {
                    // normal video upload
                    str.Append(Process_Normal_Video_Thumb(img_str, vd.userid, vd.thumbfilename, vd.thumb_url, attr));
                }
            }
            else if (vd.isexternal == 1)
            {
                // embed video upload
                str.Append(Process_Embed_Video_Thumb(img_str, vd.thumb_url, attr));
            }
            else if (vd.isexternal == 2)
            {
                // process both embed and upload thumb
                if (vd.embed_script != "")
                {
                    str.Append(Process_Embed_Video_Thumb(img_str, vd.thumb_url, attr));
                }
                else
                {
                    if (vd.ispublished == 0 || vd.errorcode > 0 || vd.thumbfilename == "" || vd.thumbfilename == "none")
                    {
                        // video is not yet published
                        // or published failed - any level of error raised
                        // or thumbfilename is empty
                        vd.thumb_url = SiteConfiguration.URL + Videos.Configs.GeneralSettings.default_path;
                        str.Append(Process_Embed_Video_Thumb(img_str, vd.thumb_url, attr));
                    }
                    else
                    {
                        str.Append(Process_Normal_Video_Thumb(img_str, vd.userid, vd.thumbfilename, vd.thumb_url, attr));
                    }
                }
            }
            return(str.ToString().Replace("\n", "").Replace("\r", ""));
        }
        private string Return_Content_Url(JGN_Videos vd)
        {
            string url = "";

            /*if (vd.pub_url == "Amazon")
             * {
             *  // cloud storage
             *  if (vd.type == 0)
             *  {
             *      // video content
             *      url = "http://s3.amazonaws.com/" + CloudSettings.VideoBucketName + "/" + vd.videofilename;
             *  }
             *  else
             *  {
             *      // audio content
             *      url = "http://s3.amazonaws.com/" + CloudSettings.AudioBuketName + "/" + vd.videofilename;
             *  }
             * }
             * else
             * { */
            // normal
            int ctype = 1;     // published video

            if (vd.type == 0)
            {
                ctype = 1;     // published video file
            }
            else
            {
                ctype = 2;     // audio file
            }
            url = VideoUrlConfig.Return_Video_physicalPath(vd.pub_url, vd.userid, vd.videofilename, ctype);

            // validate content on url
            if (!System.IO.File.Exists(url))
            {
                url = "";
            }
            // }
            return(url);
        }
Exemple #4
0
        /* multiple youtube video fetcher */
        public object yt_multiple_proc(ApplicationDbContext context, YoutubeEntity entity)
        {
            var _youtubeService = new YouTubeService(new BaseClientService.Initializer()
            {
                ApiKey          = Configs.YoutubeSettings.key,
                ApplicationName = this.GetType().ToString()
            });

            var model = new List <JGN_Videos>();

            var searchListRequest = _youtubeService.Search.List("snippet");

            searchListRequest.Q = entity.term;
            // order date
            switch (entity.order)
            {
            case 0:
                searchListRequest.Order = SearchResource.ListRequest.OrderEnum.Date;
                break;

            case 1:
                searchListRequest.Order = SearchResource.ListRequest.OrderEnum.Rating;
                break;

            case 2:
                searchListRequest.Order = SearchResource.ListRequest.OrderEnum.Relevance;
                break;

            case 3:
                searchListRequest.Order = SearchResource.ListRequest.OrderEnum.Title;
                break;

            case 4:
                searchListRequest.Order = SearchResource.ListRequest.OrderEnum.VideoCount;
                break;

            case 5:
                searchListRequest.Order = SearchResource.ListRequest.OrderEnum.ViewCount;
                break;
            }

            if (entity.youtubecategory != null && entity.youtubecategory != "")
            {
                searchListRequest.VideoCategoryId = entity.youtubecategory;
                searchListRequest.Type            = "video";
            }

            // upload date
            if (entity.uploaddate != 3)
            {
                switch (entity.uploaddate)
                {
                case 0:
                    searchListRequest.PublishedAfter = DateTime.Now.AddDays(-1);
                    break;

                case 1:
                    searchListRequest.PublishedAfter = DateTime.Now.AddDays(-7);
                    break;

                case 2:
                    searchListRequest.PublishedAfter = DateTime.Now.AddDays(-31);
                    break;
                }
            }

            var ChannelID    = "";
            var ChannelTitle = "";

            if (entity.userid != null && entity.userid != "")
            {
                var channeListRequest = _youtubeService.Channels.List("snippet");
                channeListRequest.ForUsername = entity.userid;
                try
                {
                    var channeListResponse = searchListRequest.Execute();
                    foreach (var searchResult in channeListResponse.Items)
                    {
                        var data = searchResult;
                        ChannelID    = searchResult.Snippet.ChannelId;
                        ChannelTitle = searchResult.Snippet.ChannelTitle;
                    }
                }
                catch (Exception ex)
                {
                    ErrorLgBLL.Add(context, "Exception Youtube Service - Fetch Channels", "", ex.Message);
                }
            }

            // Replace with your search term.
            //searchListRequest.ChannelId = ""; // Search Channel ID
            //searchListRequest.Order = SearchResource.ListRequest.OrderEnum.Date; //
            // searchListRequest.RelatedToVideoId = "";
            // searchListRequest.VideoCategoryId = "";
            //searchListRequest.VideoDuration = SearchResource.ListRequest.VideoDurationEnum.Any;
            // searchListRequest.VideoLicense = SearchResource.ListRequest.VideoLicenseEnum.Any;
            /* Note that you must set the type parameter to video if you set a value for the eventType, videoCaption, videoCategoryId, videoDefinition, videoDimension, videoDuration, videoEmbeddable, videoLicense, videoSyndicated, or videoType parameters. */
            searchListRequest.MaxResults = 50;
            // searchListRequest.Type = "video";
            if (ChannelID != null && ChannelID != "")
            {
                searchListRequest.ChannelId = ChannelID;
            }

            //searchListRequest.ChannelId = "mediasoftpro1";
            try
            {
                var searchListResponse = searchListRequest.Execute();

                var videos = new List <string>();
                //List<string> channels = new List<string>();
                //List<string> playlists = new List<string>();

                // Add each result to the appropriate list, and then display the lists of
                // matching videos, channels, and playlists.
                foreach (var searchResult in searchListResponse.Items)
                {
                    switch (searchResult.Id.Kind)
                    {
                    case "youtube#video":
                        // add youtube video functionality

                        string videoid = searchResult.Id.VideoId;
                        if (videoid.Contains(":"))
                        {
                            videoid = videoid.Remove(0, videoid.LastIndexOf(":") + 1);
                        }

                        string video_watch_id = "/watch?v=" + videoid;
                        if (!VideoBLL.Check_YOUTUBE_ID(context, video_watch_id))
                        {
                            string title       = searchResult.Snippet.Title;
                            string description = searchResult.Snippet.Description;

                            string    thumburl   = "";
                            ArrayList thumb_urls = new ArrayList();
                            if (searchResult.Snippet.Thumbnails.Maxres != null)
                            {
                                thumb_urls.Add(searchResult.Snippet.Thumbnails.Maxres.Url);
                            }
                            else if (searchResult.Snippet.Thumbnails.High != null)
                            {
                                thumb_urls.Add(searchResult.Snippet.Thumbnails.High.Url);
                            }
                            else if (searchResult.Snippet.Thumbnails.Standard != null)
                            {
                                thumb_urls.Add(searchResult.Snippet.Thumbnails.Standard.Url);
                            }
                            //else if (searchResult.Snippet.Thumbnails.Default != null)
                            //   thumb_urls.Add(searchResult.Snippet.Thumbnails.Default.Url);


                            if (thumb_urls.Count > 1)
                            {
                                int count = Convert.ToInt32(thumb_urls.Count / 2);
                                thumburl = thumb_urls[count].ToString();
                            }
                            else
                            {
                                thumburl = thumb_urls[0].ToString();
                            }

                            // process and add video
                            string flv_filename      = "";
                            string original_filename = "";
                            string thumb_filename    = "";
                            string duration          = "";
                            int    isapproved        = 1;

                            /*if (model.isapproved)
                             *  isapproved = 1;*/
                            // set video actions : 1 -> on, 0 -> off
                            int isenabled   = 1;
                            int ispublished = 1;
                            //int isapproved = 1;
                            int isprivate = 0;

                            int    isexternal = 1;
                            string pub_url    = "none";
                            string _embed     = "";

                            string ipaddress = "";
                            //string username = "";
                            //username = Site_Settings.Yt_UserName;

                            // remove <a tags from description
                            if (description != null && description != "")
                            {
                                Regex _href    = new Regex(@"<a[^<]+?>", RegexOptions.Singleline); // remove <a href.....>
                                Regex _hrefend = new Regex(@"</a>", RegexOptions.Singleline);      // remove </a>
                                description = _href.Replace(description, string.Empty);
                                description = _hrefend.Replace(description, string.Empty);

                                if (description.Length > 2000)
                                {
                                    description = description.Substring(0, 2000);
                                }
                            }

                            var vd = new JGN_Videos();
                            vd.userid = entity.userid;
                            vd.title  = title;
                            if (description != null)
                            {
                                vd.description = description;
                            }
                            vd.tags                  = "";
                            vd.duration              = duration;
                            vd.duration_sec          = 0; // Convert.ToInt32(duration_sec);
                            vd.originalvideofilename = original_filename;
                            vd.videofilename         = flv_filename;
                            vd.thumbfilename         = thumb_filename;
                            vd.isprivate             = (byte)isprivate;
                            vd.isenabled             = (byte)isenabled;

                            vd.ispublished  = (byte)ispublished;
                            vd.isapproved   = (byte)isapproved;
                            vd.pub_url      = pub_url;
                            vd.preview_url  = thumburl;
                            vd.embed_script = _embed;
                            vd.isexternal   = (byte)isexternal;
                            vd.ipaddress    = ipaddress;
                            vd.type         = 0;
                            vd.youtubeid    = video_watch_id;

                            model.Add(vd);
                        }

                        break;

                    case "youtube#channel":
                        //channels.Add(String.Format("{0} ({1})", searchResult.Snippet.Title, searchResult.Id.ChannelId));
                        break;

                    case "youtube#playlist":
                        //playlists.Add(String.Format("{0} ({1})", searchResult.Snippet.Title, searchResult.Id.PlaylistId));
                        break;
                    }
                }
            }
            catch (Exception ex)
            {
                ErrorLgBLL.Add(context, "Exception Youtube Service - Process Videos", "", ex.Message);
                return(new { status = "success", posts = ex.Message });
            }

            return(new { status = "success", posts = model });
        }
Exemple #5
0
        /* single youtbue video fetcher */
        public object yt_single_proc(ApplicationDbContext context, YoutubeEntity query)
        {
            var    model = new JGN_Videos();
            string ytid  = Fetch_YoutubeID(query.term);

            if (ytid == "")
            {
                return(new { status = "error", message = "Youtube video url failed to validate, please enter proper youtube id" });
            }

            string DeveloperID = Configs.YoutubeSettings.key; // SiteConfiguration.YoutubeDeveloperKey;

            try
            {
                var youtubeService = new YouTubeService(new BaseClientService.Initializer()
                {
                    ApiKey          = DeveloperID,
                    ApplicationName = this.GetType().ToString()
                });
                var searchListRequest = youtubeService.Videos.List("snippet,contentDetails");
                searchListRequest.Id = ytid;

                var searchListResponse = searchListRequest.Execute();

                List <string> videos = new List <string>();

                foreach (var searchResult in searchListResponse.Items)
                {
                    string videoid = searchResult.Id;
                    if (videoid.Contains(":"))
                    {
                        videoid = videoid.Remove(0, videoid.LastIndexOf(":") + 1);
                    }

                    string video_watch_id = "/watch?v=" + videoid;
                    model.title       = searchResult.Snippet.Title;
                    model.description = searchResult.Snippet.Description;
                    model.duration    = ""; // searchResult.ContentDetails.Duration.ToString();

                    ArrayList thumb_urls = new ArrayList();

                    /* foreach (MediaThumbnail thumbnail in video.Thumbnails)
                     * {
                     *  thumb_urls.Add(thumbnail.Url);
                     *  // str.AppendLine("\tThumbnail URL: " + thumbnail.Url + "<br />");
                     *  // str.AppendLine("\tThumbnail time index: " + thumbnail.Time + "<br />");
                     * }*/
                    if (searchResult.Snippet.Thumbnails.High != null)
                    {
                        thumb_urls.Add(searchResult.Snippet.Thumbnails.High.Url);
                    }
                    else if (searchResult.Snippet.Thumbnails.Medium != null)
                    {
                        thumb_urls.Add(searchResult.Snippet.Thumbnails.Medium.Url);
                    }
                    else if (searchResult.Snippet.Thumbnails.Standard != null)
                    {
                        thumb_urls.Add(searchResult.Snippet.Thumbnails.Standard.Url);
                    }
                    //else if (searchResult.Snippet.Thumbnails.Default != null)
                    //    thumb_urls.Add(searchResult.Snippet.Thumbnails.Default.Url);

                    if (thumb_urls.Count > 1)
                    {
                        int count = Convert.ToInt32(thumb_urls.Count / 2);
                        model.preview_url = thumb_urls[count].ToString();
                    }
                    else
                    {
                        model.preview_url = thumb_urls[0].ToString();
                    }

                    /*foreach (Google.GData.YouTube.MediaContent mediaContent in searchResult.Snippet.contents)
                     * {
                     * // str.AppendLine("\tMedia Location: " + mediaContent.Url + "<br />");
                     * // str.AppendLine("\tMedia Type: " + mediaContent.Format + "<br />");
                     * this.duration = mediaContent.duration;
                     * }*/

                    model.youtubeid = video_watch_id;
                }
            }
            catch (Exception ex)
            {
                ErrorLgBLL.Add(context, "Embed Video - Fetch Error", "", ex.Message);
                return(new { status = "error", message = ex.Message });
            }


            /*YouTubeQuery query = new YouTubeQuery("http://gdata.youtube.com/feeds/api/videos/" + ytid);
             * //Feed<Video> videoFeed = req.Get<Video>(query);
             * Video video = req.Retrieve<Video>(query);
             * ProcessVideoEntry(video); */
            var lst = new List <JGN_Videos>();

            lst.Add(model);
            return(new { status = "success", posts = lst });
        }