我尝试将一些视频上传到youtube。在堆栈的某个地方,它归结为http.Client
。这部分表现得很奇怪。
请求和所有内容都在youtube包中创建。
最后完成我的请求后,它失败了:
Error uploading video: Post https://www.googleapis.com/upload/youtube/v3/videos?alt=json&part=snippet%2Cstatus&uploadType=multipart: Post : unsupported protocol scheme ""
我稍微调试了一下库并打印了URL.Scheme
内容。作为字符串,结果为https
并位于[]byte
[104 116 116 112 115]
https://golang.org/src/net/http/transport.go是抛出错误的位置。
https://godoc.org/google.golang.org/api/youtube/v3我使用的库
我准备/上传视频的代码:
//create video struct which holds info about the video
video := &yt3.Video{
//TODO: set all required video info
}
//create the insert call
insertCall := service.Videos.Insert("snippet,status", video)
//attach media data to the call
insertCall = insertCall.Media(tmp, googleapi.ChunkSize(1*1024*1024)) //1MB chunk
video, err = insertCall.Do()
if err != nil {
log.Printf("Error uploading video: %v", err)
return
//return errgo.Notef(err, "Failed to upload to youtube")
}
所以我不知道为什么架构检查失败。
答案 0 :(得分:7)
好的,我明白了。问题不在于对YouTube本身的调用。
图书馆试图在后台刷新令牌,但TokenURL
出现了问题。
确保有一个有效的URL修复了问题。
更好的错误信息会有很多帮助,但是...... [/ p>