Upload video on youtube from asp.net website

Download you-tube API dll from: Here. Add below code on upload button:

YouTubeRequestSettings setting = new YouTubeRequestSettings("app name anything u like", "Your Developer Key", "Your youtube username", "youtube a/c passowrd");
YouTubeRequest request = new YouTubeRequest(setting);

Video newVideo = new Video();

newVideo.Title = "My Test Movie";
newVideo.Tags.Add(new MediaCategory("Autos", YouTubeNameTable.CategorySchema));
newVideo.Keywords = "cars, funny";
newVideo.Description = "My description";
newVideo.YouTubeEntry.Private = false;
newVideo.Tags.Add(new MediaCategory("mydevtag, anotherdevtag",YouTubeNameTable.DeveloperTagSchema));

newVideo.YouTubeEntry.Location = new GeoRssWhere(37, -122);
// alternatively, you could just specify a descriptive string
// newVideo.YouTubeEntry.setYouTubeExtension("location", "Mountain View, CA");

newVideo.YouTubeEntry.MediaSource = new MediaFileSource("D:\\Demo\\YoutubeVideoUpload\\e3a6f15f-4a8c-40d5-9cc8-c45d30b7f9ed.mov", "video/quicktime");
Video createdVideo = request.Upload(newVideo);

Retrieve uploaded videos

videos.aspx.cs :

private string YouTubeChampionshipChannel;
        private string YouTubeClientID;
        private string YouTubeDeveloperKey;
        public string YouTubeMovieID;
        public DataTable dtVideoData = new DataTable();

        protected void Page_Load(object sender, EventArgs e)
        {
            //Pass User Name to the YouTube link
            YouTubeChampionshipChannel = "prakashrthd";

            //Add the YouTube Developer keys.
            //Register a Developer Key at: http://code.google.com/apis/youtube/dashboard
            YouTubeClientID = "prakashrthd@gmail.com";
            YouTubeDeveloperKey = "AI39si4EpdRFuvaGm8WNIBIHPmpSfiT7Qmy_WIfhDz3OrLmTwqS0lX_8lcCmBTKq-spys_TfQ8ysWRyg9kB5nFYCifmzgPlFKw";

            CreateVideoFeed();

            //Assign the first video details on page load.
            if (String.IsNullOrEmpty(YouTubeMovieID))
            {
                YouTubeMovieID = dtVideoData.Rows[0]["VideoID"].ToString();
                lblDescription.Text = dtVideoData.Rows[0]["Description"].ToString();
            }

        }

        private void CreateVideoFeed()
        {
            YouTubeRequestSettings settings = new YouTubeRequestSettings("prakashtest", "AI39si4EpdRFuvaGm8WNIBIHPmpSfiT7Qmy_WIfhDz3OrLmTwqS0lX_8lcCmBTKq-spys_TfQ8ysWRyg9kB5nFYCifmzgPlFKw", "prakashrthd@gmail.com", "!loveyougod");
            YouTubeRequest request = new YouTubeRequest(settings);

            //Link to the feed we wish to read from
            string feedUrl = String.Format("http://gdata.youtube.com/feeds/api/users/{0}/uploads?orderby=published", YouTubeChampionshipChannel); ;

            dtVideoData.Columns.Add("Title");
            dtVideoData.Columns.Add("Description");
            dtVideoData.Columns.Add("DateUploaded");
            dtVideoData.Columns.Add("Ratings");
            dtVideoData.Columns.Add("NoOfComments");
            dtVideoData.Columns.Add("VideoID");
            dtVideoData.Columns.Add("Duration");

            DataRow drVideoData;

            Feed videoFeed = request.Get(new Uri(feedUrl));

            //Iterate through each video entry and store details in DataTable
            foreach (Video videoEntry in videoFeed.Entries)
            {
                drVideoData = dtVideoData.NewRow();

                drVideoData["Title"] = videoEntry.Title;
                drVideoData["Description"] = videoEntry.Description;
                drVideoData["DateUploaded"] = videoEntry.Updated.ToShortDateString();
                drVideoData["Ratings"] = videoEntry.YouTubeEntry.Rating == null ? "0" : Convert.ToString(videoEntry.YouTubeEntry.Rating.Average);
                drVideoData["NoOfComments"] = Convert.ToString( videoEntry.CommmentCount);
                drVideoData["VideoID"] = videoEntry.YouTubeEntry.VideoId;
                drVideoData["Duration"] = Convert.ToString(videoEntry.YouTubeEntry.Duration.Seconds);

                dtVideoData.Rows.Add(drVideoData);
            }

            repVideoList.DataSource = dtVideoData;
            repVideoList.DataBind();
        }

        protected void repVideoList_ItemDataBound(object sender, RepeaterItemEventArgs e)
        {
            if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)
            {
                DataRowView drVideo = (DataRowView)e.Item.DataItem;

                LinkButton showVideo = (LinkButton)e.Item.FindControl("btnShowVideo");
                Literal title = (Literal)e.Item.FindControl("Title");
                Literal description = (Literal)e.Item.FindControl("Description");
                Literal ratings = (Literal)e.Item.FindControl("Ratings");
                Literal noOfComments = (Literal)e.Item.FindControl("NoOfComments");
                Literal duration = (Literal)e.Item.FindControl("Duration");

                showVideo.CommandArgument = drVideo["VideoID"].ToString();
                title.Text = drVideo["Title"].ToString();
                description.Text = drVideo["Description"].ToString();
                ratings.Text = drVideo["Ratings"].ToString();
                noOfComments.Text = drVideo["NoOfComments"].ToString();
                duration.Text = drVideo["Duration"].ToString();

            }
        }
        protected void repVideoList_ItemCommand(object source, RepeaterCommandEventArgs e)
        {
            // Pass the YouTube movie ID to flash
            YouTubeMovieID = e.CommandArgument.ToString();

            if (YouTubeMovieID == e.CommandArgument.ToString())
            {
                lblDescription.Text = ((Literal)e.Item.FindControl("Description")).Text;
            }

        }

Download full source code: here

Share