2017-03-11 5 views
0

Wie kann ich Videos von Vimeo oder Dailymotion mit Qt FrameWork herunterladen. Hier ist mein Code, aber es funktioniert nicht:Qt FrameWork - Video von vimeo, dailymotion herunterladen

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); 

Diese URL https://www.dailymotion.com/cdn/H264-1280x720/video/x5e553p.mp4?auth=1489424955-2562-4nmhj8lt-a840543181f17a50d614a6ff23ad5c07 Umleitung zu https://proxy-058.dc3.dailymotion.com/video/793/580/326085397_mp4_h264_aac_hd.mp4?auth=1489259396-6658-s68i24c0-6b97977318a7dbd81ef264afc469ffa1#cell=core&hls_heuristic=1&hls_startFragPrefetch=1

Antwort

1

QNetworkAccessManager nicht HTTP-Umleitung behandeln. Sie müssen es selbst behandeln, indem Sie eine neue QNetworkRequest senden.

Die neue URL sollte im Header HTTP Location sein. Um es zu bekommen, können Sie QNetworkReply::header(QNetworkRequest::LocationHeader) verwenden.

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

Bitte beachte, dass ich QVariant::toUrl() verwendet habe den QVariant zu einem QUrl zu konvertieren, aber Sie könnten die QVariant zu einem QString und dann zu einem QUrl konvertieren müssen.

+0

Können Sie ein Beispielcode geben –

+0

Haben Sie etwas versucht? Es ist nur eine Frage des Aufrufs von "downloadManager-> get()" mit der neuen URL. –

+0

ja, aber ich kann nicht die neue URL in QT bekommen –