2017-09-15 1 views
0

wir müssen Video auf youtube hochladen. Ich habe meine asp.net Web API verwendet, um Videos hochzuladen. also bitte, jeder kann mir helfen. Ich habe Youtube API und OAuth verwendet, kann aber jetzt nicht arbeiten. Also bitte hilf mir.Hochladen von Video auf Youtube mit asp.net Web API

+0

können Sie Ihren Code schreiben, damit wir helfen können? –

+0

Sie können das Uploads-Protokoll für Google Api https://developers.google.com/youtube/v3/guides/using_resumable_upload_protocol verwenden, um Ihre Videos hochzuladen. Dadurch können Sie den Rest-Service anrufen, um Ihr Video hochzuladen. Sie können es mit HttpClient aufrufen . –

Antwort

1

Ich konnte Ihnen nicht alle Prozesse in wenigen Worten erzählen. Youtube hat ein sehr gutes Beispiel in docs Look here. .Net video upload

Sie können Video-Datei in Controler über retreive:

[HttpPost] 
public IHttpActionResult PostVideo(HttpPostedFileBase file){ 
    //here convert to streame described in docs, and send request to youtube. 
} 
0
using System; 
using System.IO; 
using System.Reflection; 
using System.Threading; 
using System.Threading.Tasks; 

using Google.Apis.Auth.OAuth2; 
using Google.Apis.Services; 
using Google.Apis.Upload; 
using Google.Apis.Util.Store; 
using Google.Apis.YouTube.v3; 
using Google.Apis.YouTube.v3.Data; 

namespace YouTube 
{ 
    internal class UploadVideo 
    { 
     [STAThread] 
     static void Main(string[] args) 
     { 
      Console.WriteLine("YouTube Data API: Upload Video"); 
      Console.WriteLine("=============================="); 

      try 
      { 
       new UploadVideo().Run().Wait(); 
      } 
      catch (AggregateException ex) 
      { 
       foreach (var e in ex.InnerExceptions) 
       { 
        Console.WriteLine("Error: " + e.Message); 
       } 
      } 

      Console.WriteLine("Press any key to continue..."); 
      Console.ReadKey(); 
     } 


     private async Task Run() 
     { 
      UserCredential credential; 
      using (var stream = new FileStream("client_secrets.json", FileMode.Open, FileAccess.Read)) 
      { 
       credential = await GoogleWebAuthorizationBroker.AuthorizeAsync(
        GoogleClientSecrets.Load(stream).Secrets, 
        // This OAuth 2.0 access scope allows an application to upload files to the 
        // authenticated user's YouTube channel, but doesn't allow other types of access. 
        new[] { YouTubeService.Scope.YoutubeUpload }, 
        "user", 
        CancellationToken.None 
       ); 
      } 

      var youtubeService = new YouTubeService(new BaseClientService.Initializer() 
      { 
       HttpClientInitializer = credential, 
       ApplicationName = "Youtube Uploader" // Assembly.GetExecutingAssembly().GetName().Name 
      }); 

      var video = new Video(); 
      video.Snippet = new VideoSnippet(); 
      video.Snippet.Title = "Default Video Title"; 
      video.Snippet.Description = "Default Video Description"; 
      video.Snippet.Tags = new string[] { "tag1", "tag2" }; 
      video.Snippet.CategoryId = "UCycmrK4RRMNY6CTn58r6gNA"; // See https://developers.google.com/youtube/v3/docs/videoCategories/list 
      video.Status = new VideoStatus(); 
      video.Status.PrivacyStatus = "public"; // or "private" or "public" 
      var filePath = @"D:\1.mp4"; // Replace with path to actual movie file. 

      using (var fileStream = new FileStream(filePath, FileMode.Open)) 
      { 
       var videosInsertRequest = youtubeService.Videos.Insert(video, "snippet,status", fileStream, "video/*"); 
       videosInsertRequest.ProgressChanged += videosInsertRequest_ProgressChanged; 
       videosInsertRequest.ResponseReceived += videosInsertRequest_ResponseReceived; 

       await videosInsertRequest.UploadAsync(); 
      } 
     } 

     void videosInsertRequest_ProgressChanged(Google.Apis.Upload.IUploadProgress progress) 
     { 
      switch (progress.Status) 
      { 
       case UploadStatus.Uploading: 
        Console.WriteLine("{0} bytes sent.", progress.BytesSent); 
        break; 

       case UploadStatus.Failed: 
        Console.WriteLine("An error prevented the upload from completing.\n{0}", progress.Exception); 
        break; 
      } 
     } 

     void videosInsertRequest_ResponseReceived(Video video) 
     { 
      Console.WriteLine("Video id '{0}' was successfully uploaded.", video.Id); 
     } 
    } 
} 
Verwandte Themen