QT框架 - 从Dailymotion Vimeo下载视频



如何使用QT Framework从Vimeo或Dailymotion下载视频。这是我的代码,但它不起作用:

downloadManager = new QNetworkAccessManager(this);
QNetworkRequest request;
request.setUrl(QUrl("https://www.dailymotion.com/cdn/H264-1280x720/video/x5e553p.mp4?auth=1489424955-2562-4nmhj8lt-a840543181f17a50d614a6ff23ad5c07")); 
QSslConfiguration configSsl = QSslConfiguration::defaultConfiguration();    
configSsl.setProtocol(QSsl::AnyProtocol);
request.setSslConfiguration(configSsl);
replyn = downloadManager->get(request);

此URL https://www.dailymotion.com/cdn/h264-1280x720/video/x5e5553p.mp4?auth = 148942495562-2562-2562-4NMHJ8MHJ8LT-A840543171717AD5614F.17AD56.AD36AD56AD56AD56AD56AD56AD56AD56AD56AD56AD56AD56AD56AD56AD56AD56AD56AD56AD56AD56AD56AD56AD56AD56AD56AD56AD56AD56AD56AD56AD26AD26AD56AD56AD56AD56AD56AD26代理-058.dc3.dailymotion。COM/VIDEO/793/580/326085397_MP4_H264_AAC_HD.MP4?auth = 1489259396-6658-S68I24C0-6B9B9797977737777777DBDBDBD81EF264AF264AF264AFC4699FFA1 fragprefetch = 1

QNetworkAccessManager不处理http重定向。您将必须通过发送新的QnetworkRequest来自己处理。

新的URL应在HTTP Location标头中。为了获得它,您可以使用QNetworkReply::header(QNetworkRequest::LocationHeader)

QUrl newUrl = replyn->header(QNetworkRequest::LocationHeader).toUrl();
QNetworkRequest request;
request.setUrl(newUrl);
...

请注意,我已经使用QVariant::toUrl()将QVariant转换为Qurl,但是您可能需要将QVariant转换为QString,然后转换为Qurl。

最新更新