Ejemplo n.º 1
0
        public static async Task <VideoDetail> PostVideo(VideoSummary videoPost)
        {
            using (var client = new HttpClient())
            {
                VideoDetail video = null;
                client.BaseAddress = new Uri(baseAddress);
                client.DefaultRequestHeaders.Add("X-api-username", userName);
                client.DefaultRequestHeaders.Add("X-api-key", apiKey);
                client.DefaultRequestHeaders.Accept.Clear();
                client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
                HttpResponseMessage response = await client.PostAsJsonAsync("videos/", videoPost);

                if (response.IsSuccessStatusCode)
                {
                    video = await response.Content.ReadAsAsync <VideoDetail>();

                    Console.WriteLine("Post Video Success: " + video);
                }
                else
                {
                    Console.WriteLine("Post Video failure: " + response.StatusCode);
                }
                return(video);
            }
        }
 public SubtitleInfo PostVideo(VideoJob vj)
 {
     VideoSummary vs = new VideoSummary()
     {
         VideoUrl = vj.VideoUrl//"http://www.youtube.com/watch?v=cJs7obmEABE"//"https://www.youtube.com/watch?v=RdKAVE0frIM&ab_channel=BBC"
     };
     SubtitleInfo si = vcc.RequestVideoSubtitle(vs, vj.SubtitleLangauge, vj.SubtitleFormat);
     //switch (si.Status)
     //{
     //    case VideoSubtitleStatus.Complete:
     //        break;
     //    case VideoSubtitleStatus.SubtitleRequested:
     //        //Console.WriteLine("Video exists, but subtitle does not, request for subtitle is made.");
     //        break;
     //    case VideoSubtitleStatus.Error:
     //        //Console.WriteLine("Error happened!");
     //        break;
     //    case VideoSubtitleStatus.Exists:
     //        byte[] res = vcc.GetVideoSubtitle(si.VideoId, vj.SubtitleLangauge, vj.SubtitleFormat).SubtitleData;
     //        //Console.WriteLine("Result: " + Encoding.Default.GetString(res));
     //        break;
     //    case VideoSubtitleStatus.NotComplete: break;
     //    case VideoSubtitleStatus.Submitted:
     //        //Console.WriteLine("Video with id {1} has been submitted for manual subtitling. You'll get notified when it's ready by pigeon!", si.VideoId);
     //        break;
     //    default: break;
     //}
     return si;
 }
Ejemplo n.º 3
0
 public SubtitleInfo RequestVideoSubtitle(VideoSummary videoSummary, string requestedLanguageCode, string outputFormat)
 {
     try
     {
         //step 1) check if subtitle already exists for the request => if yes => return subtitle
         List <VideoDetail> videoDetailList = AmaraApiController.ListVideosWithFilter("video_url", videoSummary.VideoUrl).Result;
         if (videoDetailList.Count > 0)
         {
             VideoDetail resultVD = videoDetailList[0];
             //check if video contains requested language
             Language resultLanguage = (from vdl in resultVD.Languages where vdl.Code == requestedLanguageCode select vdl).FirstOrDefault();
             //check information from resourceUri and then download from subtitle uri
             if (resultLanguage != null)
             {
                 var resourceUri = resultLanguage.VideoLanguageUri;
                 if (resourceUri != null)
                 {
                     //get resurceUri info
                     VideoLanguageDetail vLangDetail = AmaraApiController.GetLanguageDetails(resourceUri).Result;
                     //check if it is completed, then if it is a translation, if it fits continue
                     var subUri = resultLanguage.SubtitleUri;
                     if (subUri != null && vLangDetail.AreSubsComplete && vLangDetail.SubtitleCount > 0)
                     {
                         //all is validated return the subtitle in the desired format
                         return(new SubtitleInfo(resultVD.Id, VideoSubtitleStatus.Exists));//GetVideoSubtitle(resultVD.Id, requestedLanguageCode, outputFormat).SubtitleData;
                     }
                     else
                     {
                         return(new SubtitleInfo(resultVD.Id, VideoSubtitleStatus.NotComplete));
                     }
                 }
             }
             else
             {
                 //submit request for translation to non-existent language
                 VideoLanguageDetail vLangDetail = AmaraApiController.PostNewSubtitleRequest(resultVD.Id, requestedLanguageCode).Result;
                 return(new SubtitleInfo(resultVD.Id, VideoSubtitleStatus.SubtitleRequested));
             }
         }
         else
         {
             //step 2) else => submit request to subtitle video towards amara (optional use tweeter/facebook to notify community of a subtitle request)
             VideoDetail videoDetail = AmaraApiController.PostVideo(videoSummary).Result;
             //step 3) return videoId and video information relevant to later check for a completed subtitle
             return(new SubtitleInfo(videoDetail.Id, VideoSubtitleStatus.Submitted));
         }
     }
     catch
     {
         return(new SubtitleInfo(null, VideoSubtitleStatus.Error));
     }
     return(new SubtitleInfo(null, VideoSubtitleStatus.Error));
 }
 public static async Task<VideoDetail> PostVideo(VideoSummary videoPost)
 {
     using (var client = new HttpClient())
     {
         VideoDetail video = null;
         client.BaseAddress = new Uri(baseAddress);
         client.DefaultRequestHeaders.Add("X-api-username", userName);
         client.DefaultRequestHeaders.Add("X-api-key", apiKey);
         client.DefaultRequestHeaders.Accept.Clear();
         client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
         HttpResponseMessage response = await client.PostAsJsonAsync("videos/", videoPost);
         if (response.IsSuccessStatusCode)
         {
             video = await response.Content.ReadAsAsync<VideoDetail>();
             Console.WriteLine("Post Video Success: " + video);
         }
         else Console.WriteLine("Post Video failure: " + response.StatusCode);
         return video;
     }
 }