【问题标题】:Swift - How to upload video to youtube unlisted?Swift - 如何将视频上传到未列出的 youtube?
【发布时间】:2018-07-24 16:41:47
【问题描述】:

我从我的应用程序将视频上​​传到 youtube。但是现在是公开的。

我的问题是如何上传不公开的视频?

这是我的上传功能

func postVideoToYT(videoUrl: URL, token: String,title:String,innoId:Int,videoTags:String,callback: @escaping (Bool) -> Void) {
        do {
            let headers = ["Authorization": "Bearer \(token)"]
            let videoData = try Data(contentsOf: videoUrl)
            upload(multipartFormData: { multipartFormData in
                multipartFormData.append("{'snippet':{'title' : '\(title)', 'description': ''}}".data(using: String.Encoding.utf8, allowLossyConversion: false)!, withName: "snippet", mimeType: "application/json")
                multipartFormData.append(videoData, withName: "video", fileName: "video.mp4", mimeType: "application/octet-stream")
            }, usingThreshold: 1, to: URL(string: "https://www.googleapis.com/upload/youtube/v3/videos?part=snippet")!, method: .post, headers: headers, encodingCompletion: { encodingResult in
                switch encodingResult {
                case .success(let upload, _, _):
                    upload.responseJSON { response in
                        print("Post video to url --->\(response)")
                        if let json = response.result.value as? [String : Any] {
                            let videoId = json["id"] as! String
                            self.delayWithSeconds(1, completion: {
                                self.addVideo(innoId: innoId, videoKey:videoId, shortDesc: title, tagIds: videoTags)
                            })
                        }

                        callback(true)
                    }
                    break
                case .failure(_):
                    callback(false)
                    break
                }
            })
        }

        catch {

        }
    }

【问题讨论】:

    标签: swift youtube upload swift4


    【解决方案1】:

    隐私必须与sn-p一起传递

    "{'snippet':{'title' : '\(title)', 'description':' \(description)', 'tags': \(keywords)},'status':{'privacyStatus' : '\(privacyStatus)'}}".data(using: .utf8, allowLossyConversion: false)!
    

    在下面的代码中添加了隐私。

    func postVideoToYT(videoUrl: URL, token: String,title:String,innoId:Int,videoTags:String,callback: @escaping (Bool) -> Void) {
        do {
            let headers = ["Authorization": "Bearer \(token)"]
            let videoData = try Data(contentsOf: videoUrl)
            upload(multipartFormData: { multipartFormData in
                multipartFormData.append("{'snippet':{'title' : '\(title)', 'description':' \(description)', 'tags': \(keywords)},'status':{'privacyStatus' : '\(privacyStatus)'}}".data(using: .utf8, allowLossyConversion: false)!, withName: "snippet", mimeType: "application/json")
                multipartFormData.append(videoData, withName: "video", fileName: "video.mp4", mimeType: "application/octet-stream")
            }, usingThreshold: 1, to: URL(string: "https://www.googleapis.com/upload/youtube/v3/videos?part=snippet")!, method: .post, headers: headers, encodingCompletion: { encodingResult in
                switch encodingResult {
                case .success(let upload, _, _):
                    upload.responseJSON { response in
                        print("Post video to url --->\(response)")
                        if let json = response.result.value as? [String : Any] {
                            let videoId = json["id"] as! String
                            self.delayWithSeconds(1, completion: {
                                self.addVideo(innoId: innoId, videoKey:videoId, shortDesc: title, tagIds: videoTags)
                            })
                        }
    
                        callback(true)
                    }
                    break
                case .failure(_):
                    callback(false)
                    break
                }
            })
        }
    
        catch {
    
        }
    }
    

    【讨论】:

      猜你喜欢
      • 2016-05-05
      • 2011-09-20
      • 2014-01-26
      • 1970-01-01
      • 2014-11-02
      • 2011-07-24
      • 2011-10-29
      • 2017-07-25
      • 2012-10-07
      相关资源
      最近更新 更多