【问题标题】:YouTube API v3 - upload videoYouTube API v3 - 上传视频
【发布时间】:2013-08-21 08:45:05
【问题描述】:

我想用我的 Qt5 程序在 YouTube 上加载 myVideo.avi。我通过 OAuth 2.0 成功授权并获得无错误的 access_token。

但是当我尝试使用 API https://developers.google.com/youtube/v3/docs/videos/insert 我得到了一些错误!

QString googleApiUrl = "https://www.googleapis.com/upload/youtube/v3/videos?access_token="+authorisation->getAccessToken()+"&part=snippet";

    QNetworkRequest request;
    request.setUrl(QUrl(googleApiUrl));

    QHttpMultiPart *multiPart = new QHttpMultiPart(QHttpMultiPart::MixedType);

    QHttpPart videoPart;
    videoPart.setHeader(QNetworkRequest::ContentTypeHeader, QVariant("video/*"));
    videoPart.setHeader(QNetworkRequest::ContentDispositionHeader, QVariant("Slug"));

    m_video = new QFile(m_filePath);
    if (m_video->open(QIODevice::ReadOnly)) {
        videoPart.setBodyDevice(m_video);
    }
    multiPart->append(videoPart);


    m_networkManager = new QNetworkAccessManager();
    m_networkManager->post(request,multiPart);
    connect(m_networkManager, SIGNAL(finished(QNetworkReply*)), this, SLOT(handleNetworkReply(QNetworkReply*)));

响应-

"Host requires authentication"
"{
"error": {
 "errors": [
  {
   "domain": "youtube.header",
   "reason": "youtubeSignupRequired",
   "message": "Unauthorized",
   "locationType": "header",
   "location": "Authorization"
  }
 ],
 "code": 401,
 "message": "Unauthorized"
}
}
"

我做错了什么?

【问题讨论】:

  • 我看不到您如何通过 OAuth2 或将令牌应用到客户端。

标签: c++ qt youtube-api google-api-cpp-client


【解决方案1】:

youtubeSignupRequired 表示您正在通过 OAuth 2 流程并使用尚未关联 YouTube 频道的 Google 帐户授权访问。我建议您再次完成流程并确认您正在使用正确的帐户授权访问。

顺便说一句,我建议尝试一下https://github.com/google/google-api-cpp-client。它相当新,可以简化您的代码而不是自己进行原始 HTTP 调用。

【讨论】:

    【解决方案2】:

    【讨论】:

      猜你喜欢
      • 2012-10-07
      • 2017-06-14
      • 2014-10-13
      • 2014-11-03
      • 2014-12-30
      • 1970-01-01
      • 1970-01-01
      • 2012-12-23
      • 2015-06-27
      相关资源
      最近更新 更多