2017-03-11 16 views
0

vimeoまたはdailymotionからQt FrameWorkを使用してビデオをダウンロードする方法。ここに私のコードですが、そのは動作していない: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-a840543181f17a50d614a6ff23ad5c07https://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にリダイレクトHTTPリダイレクトを処理しません。新しいQNetworkRequestを送信して、自分で処理する必要があります。

新しいURLは、HTTP Locationヘッダーにある必要があります。それを得るにはQNetworkReply::header(QNetworkRequest::LocationHeader)を使用することができます。

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

私はQUrlにQVariantを変換するQVariant::toUrl()を使用していたが、あなたはQStringのにして、QUrlにQVariantを変換する必要がある場合があります注意してください。

+0

いくつかのコード例を挙げることができます –

+0

何か試しましたか?新しいURLを使って "downloadManager-> get()"を呼び出すだけです。 –

+0

はい、QTで新しいURLを取得できません –

関連する問題