title: Downloading flv from youtube using curlpp on top of curl - video not playing
body: <p>I"m using curlpp on to of curl lib in order to download videos from youtube.</p>
  
  <p>I have managed to download the flv but unable to open it using all sorts of video players.</p>
  
  <p>I used another youtube video downloader and download the exactly same video with the exactly same quality, I've noticed the requests are the same and also the file size is almost identical - here I think is the problem, For example: MyVideo.flv - 4.55MB WorkingVideo.flv - 4.53MB</p>
  
  <p>Here is the code:</p>
  
  <p><code>
  // 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(&amp;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&lt;std::string&gt; 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&lt;HttpHeader&gt;(headers);
      request.perform();
  
      fclose(file);
  }
  </code></pre>
  
  <p>}
  </code></p>
  
  <p>Any ideas anyone??</p>
  
  <p>Thanks.</p>