Я использую curlpp on of curl lib для загрузки видео с youtube.
Мне удалось скачать FLV, но я не могу открыть его с помощью всех видов видеоплееров.
Я использовал другой загрузчик видео с YouTube и загружал точно такое же видео с точно таким же качеством, я заметил, что запросы одинаковы, а также размер файла почти идентичен - здесь, я думаю, проблема, например: MyVideo .flv - 4,55 МБ WorkingVideo.flv - 4,53 МБ
Вот код:
// Callback Function
size_t FileCallback(FILE <em>f, char</em> ptr, size_t size, size_t nmemb)
{
return fwrite(ptr, size, nmemb, f);
}</p>
<p>void GetVideo(std::wstring videoUrl)
{</p>
<pre><code> FILE * file = fopen("C:\\locatin\\b.flv", "w");
if (file)
{
curlpp::Cleanup cleaner;
curlpp::Easy request;
// Set the writer callback to enable cURL to write result in a memory area
curlpp::types::WriteFunctionFunctor functor(utilspp::BindFirst(utilspp::make_functor(&FileCallback), file));
curlpp::options::WriteFunction *getFileOpt = new curlpp::options::WriteFunction(functor);
request.setOpt(getFileOpt);
// Setting the URL to retrive.
request.setOpt(new curlpp::options::Url(videoUrl));
request.setOpt(new curlpp::options::Verbose(true));
request.setOpt(new Timeout(2000));
std::list<std::string> headers;
headers.push_back("Connection: keep-alive");
headers.push_back("Keep-Alive: 115");
headers.push_back("Accept-Encoding: gzip,deflate");
headers.push_back("Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7");
headers.push_back("User-Agent: Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US; rv:1.9.2.10) Gecko/20100914 Firefox/3.6.10");
headers.push_back("Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8");
headers.push_back("Accept-Language: en-us,en;q=0.5");
request.setOpt<HttpHeader>(headers);
request.perform();
fclose(file);
}
}
Любые идеи кто-нибудь ??
Спасибо.