我正在尝试通过Swift将YouTube视频上传到YouTube的REST API,但我很难搞清楚要做什么.我目前有一个工作的GET请求.
我对如何构造POST请求URL以及文件位置在请求中的位置感到困惑.另外我想我应该使用可重新上传的协议?
我已经在各种API和文档中苦苦挣扎了2天,感到绝望.
这是我的GET请求的工作代码.
func getRequestVIDeoInfo(){ // Set up your URL let youtubeAPI = "https://www.GoogleAPIs.com/youtube/v3/vIDeos?part=contentDetails%2C+snippet%2C+statistics&ID=AKiIEkaEHhI&key=" + APIKey let url = NSURL(string: youtubeAPI) // Create your request let task = NSURLSession.sharedSession().dataTaskWithURL(url!,completionHandler: { (data,response,error) -> VoID in do { if let JsonResult = try NSJsONSerialization.JsONObjectWithData(data!,options: NSJsONReadingOptions.AllowFragments) as? [String : AnyObject] { print("Response from YouTube: \(JsonResult)") } } catch { print("Json error: \(error)") } }) // Start the request task.resume()}是的,您需要在YouTube中创建应用/项目,并使用OAuth 2.0 Flow将视频发布/插入您获得授权访问权限的频道.
一旦你从Google获得了访问权限
使用Alamofire如下:
func postVIDeoToYouTube(token: String,callback: Bool -> VoID){ let headers = ["Authorization": "Bearer \(token)"] let path = NSBundle.mainBundle().pathForResource("vIDeo",ofType: "mp4") let vIDeodata: NSData = NSData.dataWithContentsOfMappedfile(path!)! as! NSData upload( .POST,"https://www.GoogleAPIs.com/upload/youtube/v3/vIDeos?part=ID",headers: headers,multipartFormData: { multipartFormData in multipartFormData.appendBodyPart(data: vIDeodata,name: "vIDeo",filename: "vIDeo.mp4",mimeType: "application/octet-stream") },enCodingCompletion: { enCodingResult in switch enCodingResult { case .Success(let upload,_,_): upload.responseJsON { request,error in print(response) callback(true) } case .Failure(_): callback(false) } })}
像这样调用post函数:
postVIDeoToYouTube(accesstoken,callback: { success inif success { }})总结
以上是内存溢出为你收集整理的在Swift中将视频上传到YouTube全部内容,希望文章能够帮你解决在Swift中将视频上传到YouTube所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)