2017-03-11 1 views
0

Comment puis-je télécharger des vidéos de vimeo ou dailymotion en utilisant Qt FrameWork. Voici mon code, mais sa ne fonctionne pas:Qt FrameWork - Télécharger la vidéo de 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); 

Cette URL https://www.dailymotion.com/cdn/H264-1280x720/video/x5e553p.mp4?auth=1489424955-2562-4nmhj8lt-a840543181f17a50d614a6ff23ad5c07 rediriger vers 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

Répondre

1

QNetworkAccessManager ne gère pas la redirection HTTP. Vous devrez le gérer vous-même en envoyant un nouveau QNetworkRequest.

La nouvelle URL doit se trouver dans l'en-tête HTTP Location. Pour l'obtenir, vous pouvez utiliser QNetworkReply::header(QNetworkRequest::LocationHeader).

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

Notez que je l'ai utilisé QVariant::toUrl() pour convertir le QVariant à un qurl, mais vous pourriez avoir besoin de convertir le QVariant à un QString puis à un qurl.

+0

Pouvez-vous donner un exemple de code –

+0

Avez-vous essayé quelque chose? Il suffit d'appeler "downloadManager-> get()" avec la nouvelle URL. –

+0

oui mais je ne peux pas obtenir la nouvelle URL dans QT –