2017-03-11 17 views
0

Qt FrameWork를 사용하여 vimeo 또는 dailymotion에서 비디오를 다운로드하는 방법. 여기 내 코드입니다,하지만이 작동하지 :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/x5e553p.mp4?auth=1489424955-2562-4nmhj8lt-a840543181f17a50d614a6ff23ad5c07는 HTTP 리디렉션을 처리하지 않습니다 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

답변

1

QNetworkAccessManager로 리디렉션. 새로운 QNetworkRequest를 보내어 직접 처리해야합니다.

새 URL은 HTTP Location 헤더에 있어야합니다. 그것을 얻으려면 QNetworkReply::header(QNetworkRequest::LocationHeader)을 사용할 수 있습니다. 나는 QUrl에 QVariant를 변환하는 QVariant::toUrl()을 사용했지만, 당신이 QUrl에 다음 QString에 QVariant를 변환해야 할 수도 있습니다

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

참고.

+0

몇 가지 예제 코드를 제공해 줄 수 있습니까 –

+0

시도해 보셨습니까? 새 URL을 사용하여 "downloadManager-> get()"을 호출하는 것만으로 문제가됩니다. –

+0

예.하지만 QT에서 새 URL을 가져올 수 없습니다. –