如何使用qnetworkauth将视频上传到YouTube
How to upload video to Youtube with QNetworkAuth
使用QOAuth2AuthorizationCodeFlow
使用Google的OAuth2授权。授权成功以及使用GET
请求(例如,从YouTube频道获取视频列表)。但是,尽管QNetworkAccessManager
为用户提供了一堆post
方法过载:
QNetworkReply * post(const QNetworkRequest &request, QIODevice *data)
QNetworkReply * post(const QNetworkRequest &request, const QByteArray &data)
QNetworkReply * post(const QNetworkRequest &request, QHttpMultiPart *multiPart)
QOAuth2AuthorizationCodeFlow
只有:
QNetworkReply *post(const QUrl &url, const QVariantMap ¶meters = QVariantMap());
使用QHttpMultiPart
&QHttpPart::setBodyDevice()
。但是我不确定如何将QVariantMap
用于视频/文件上传。
此外,尝试使用:QOAuth2AuthorizationCodeFlow::networkAccessManager()
以访问底层网络管理器,但使用GET
提供202响应代码。而且,如果使用经过身份验证的URL(QOAuth2AuthorizationCodeFlow::createAuthenticatedUrl()
),则响应代码为200,但是回复内容为空(ReadAll()返回空的缓冲区)。也不适用于POST
。
使用QT第二天,因此我可能会误解一些概念。感谢您的帮助&想法。
能够解决它。但是,也许还有正确的解决方案。
QOAuth2AuthorizationCodeFlow youtube{};
...
// authorization
...
auto multi_part = new QHttpMultiPart{ QHttpMultiPart::MixedType };
auto video_part = new QHttpPart{};
auto video = new QFile{ video_path };
if (!video->open(QIODevice::ReadOnly)) { return nullptr; }
video_part->setHeader(QNetworkRequest::ContentTypeHeader, QVariant("video/*"));
video_part->setHeader(QNetworkRequest::ContentDispositionHeader, QVariant("Slug"));
video_part->setBodyDevice(video);
multi_part->append(*video_part);
QNetworkRequest req{youtube_videos_insert};
const QString bearer_format = QStringLiteral("Bearer %1");
const QString bearer = bearer_format.arg(youtube.token());
req.setRawHeader("Authorization", bearer.toUtf8());
youtube.networkAccessManager()->post(req, multi_part);
相关文章:
- 如何在c++中录制具有精确帧时间戳的视频
- 如何在QT中的自定义视频小工具t上绘制矩形
- 如何使用OpenCV-C++编写*.mp4视频?
- 开放 CV 中的动态内存分配,用于视频处理
- 错误:(-210:不支持的格式或格式组合)功能'create'中的硬件视频解码器不支持视频源
- OpenCV QT,显示视频的帧(不使用while循环)
- FFmpeg——使用硬件加速进行视频解码
- 在 openCV 中手动停止视频
- 强制Qt相机视频格式
- 在macOS Mojave上尝试OpenCV视频捕获时"Abort Trap: 6"
- 应用程序在打开的简历中捕获视频后没有响应
- 使用 IMFSinkWriter 编码的视频的播放速度会根据宽度而变化
- 如何在 c++ 中通过 http 发送大型视频文件?
- 在 QLabel 中显示视频
- OpenGL 调试上下文警告 -"将使用视频内存作为缓冲区异议的来源
- 这个工厂类在这个C++视频中的意义何在?
- 如何使用qnetworkauth将视频上传到YouTube
- YouTube API v3-上传视频
- 在MFC播放YouTube视频
- 获得youtube视频的签名