Как загрузить на YouTube с помощью API через прокси-сервер - PullRequest
2 голосов
/ 03 марта 2010

Я создаю приложение, которое позволит пользователям загружать видео на определенный аккаунт в вашей трубе.

Я следовал примерам http://code.google.com/apis/youtube/2.0/developers_guide_dotnet.html для прямой загрузки, однако теперь я получаю аутентификацию прокси-сервера 407, требуемую при вызове request.Upload(newVideo).

Я нашел пример для службы Календаря Google, использующей прокси (http://code.google.com/p/google-gdata/wiki/WebProxySetup), но, похоже, не могу решить, как его реорганизовать для YouTube.

Есть идеи?

Ответы [ 2 ]

5 голосов
/ 03 марта 2010

Похоже, ваш прокси-сервер требует учетных данных. Учетные данные должны быть предоставлены в коде; В настоящее время я пытаюсь найти источник для API Google, чтобы найти его, поскольку у них есть свои собственные объекты запросов.

В то же время вы можете заставить его работать, просто , а не , используя прокси по умолчанию. Измените ваш app.config или web.config, чтобы вставить его в правильное местоположение:

<configuration>
 <system.net>
  <defaultProxy>
   <proxy usesystemdefault="false"/>
  </defaultProxy>
 </system.net>
</configuration>

Edit:

Хорошо, после некоторого копания, вот как я думаю вы бы изменили инструкции, которые вы связали для своего конкретного запроса. Предполагая, что вы уже создали YouTubeRequest следующим образом:

YouTubeRequest request = new YouTubeRequest(settings);

Вот переделанные инструкции по вашей ссылке:

YouTubeRequest request = new YouTubeRequest(settings);
GDataRequestFactory f = (GDataRequestFactory) request.Service.RequestFactory;
IWebProxy iProxy = WebRequest.DefaultWebProxy;
WebProxy myProxy = new WebProxy(iProxy.GetProxy(query.Uri));
// potentially, setup credentials on the proxy here
myProxy.Credentials = CredentialsCache.DefaultCredentials;
myProxy.UseDefaultCredentials = true;
f.Proxy = myProxy;

Вот мои источники:

http://google -gdata.googlecode.com / SVN / Docs / folder56 / T_Google_YouTube_YouTubeRequest.htm

http://google -gdata.googlecode.com / SVN / Docs / folder53 / P_Google_GData_Client_FeedRequest_1_Service.htm

http://google -gdata.googlecode.com / СВН / Docs / folder19 / P_Google_GData_Client_Service_RequestFactory.htm

2 голосов
/ 04 марта 2010

Используя код, предоставленный Randolpho, мне удалось получить код для успешного вызова YouTube. Мне удалось упростить код еще до

YouTubeRequest request = new YouTubeRequest(settings);
GDataRequestFactory f = (GDataRequestFactory)request.Service.RequestFactory;
WebProxy myProxy = new WebProxy("http://proxy-server:port/", true);
myProxy.Credentials = CredentialCache.DefaultNetworkCredentials;
f.Proxy = myProxy;

Код будет работать с учетной записью службы с доступом к Интернету, поэтому мне не нужно указывать имя пользователя и пароль в коде.

...