I "m avec curlpp sur de lib boucle afin de télécharger des vidéos de youtubeTélécharger flv à partir de YouTube en utilisant curlpp au-dessus de boucle - vidéo ne joue pas
J'ai réussi à télécharger le flv, mais incapable d'ouvrir. J'ai utilisé un autre téléchargeur vidéo YouTube et télécharger exactement la même vidéo avec exactement la même qualité, j'ai remarqué que les demandes sont les mêmes et la taille du fichier est presque identique - ici, je pense que c'est le problème, Par exemple: MyVideo.flv - 4.55MB WorkingVideo.flv - 4.53MB
Voici le code:
// Callback Function size_t FileCallback(FILE f, char ptr, size_t size, size_t nmemb) { return fwrite(ptr, size, nmemb, f); }
void GetVideo(std::wstring videoUrl) {
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);
}
}
Toute personne idées ??
Merci.
Salut, j'ai réussi à télécharger le FLV, mais ne peut pas changer le FMT en HD est-ce possible en quelque sorte? –
Oui, vous savez que c'est un 3 appels procédure depuis que vous avez réussi à télécharger une vidéo, Le premier vous donne le FMT, Dans le deuxième appel, vous passez le lien FMT approprié, Utilisez ce http://en.wikipedia.org/wiki/YouTube#Quality_and_codecs à choisissez la qualité tu veux. – YanivH