скачать видео на YouTube в C ++ - PullRequest
2 голосов
/ 12 января 2011

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

Вот мой код:

    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 просто получает текст между двумя параметрами. Неважно, если я использую "t1" или "t2", он все равно не работает!

Дайте мне знать, что я делаю не так?

Спасибо

1 Ответ

0 голосов
/ 12 января 2011

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

...