2011-01-12 2 views
2

Я пишу метод, который должен скачать .flv видео с youtube и сохранить его на жесткий диск. Я читал все вокруг, исходный код, форумы, но я не могу заставить свой код работать. Я думаю, youtube удалил эту функцию, и больше невозможно скачать видео. Но затем возникает вопрос: как делают некоторые программы бесплатно и коммерческие?загрузить youtube video в C++

Вот мой код:

WebClient^ client = gcnew WebClient(); 

String^ page = client->DownloadString(URL); 

    String^ videoId = innerValue(URL, "v=", "&"); 

    String^ details = client->DownloadString("http://www.youtube.com/get_video_info?&video_id=" + videoId); 

    String^ t1 = innerValue(page, "&t=", "&"); 

    String^ t2 = HttpUtility::UrlDecode(innerValue(details, "&token=", "&")); 

    String^ videoUrl = String::Format("http://www.youtube.com/get_video?video_id={0}&t={1}&fmt={2}", videoId, t2, fmt); 

    client->DownloadFile(videoUrl, gcnew String(file)); 

метод InnerValue просто получает текст между двумя Params. Независимо от того, использую ли я «t1» или «t2», он все равно не работает!

Дайте мне знать, что я делаю неправильно?

Благодаря

ответ

0

Попытка загрузить URL вы образующую с помощью браузера. Если это работает, возможно, вам придется обманывать настройки агента пользователя при отправке запроса.

+0

Это не работает. Говорит тот же 404 не найден. – oaksoft

+0

Тогда, очевидно, это не будет работать в вашем приложении. Попробуйте найти способ генерации URL-адресов flv. –