Вход в API YouTube - PullRequest
       3

Вход в API YouTube

1 голос
/ 14 августа 2011

Я получаю ProfileEntry для вошедшего в систему пользователя. Мне удалось получить имя пользователя и тому подобное, но у меня возникают трудности с получением изображения профиля пользователя. Я вижу его в своем браузере, когда иду на http://gdata.youtube.com/feeds/api/users/iamryancoke под элементом, но я не уверен, как получить к нему доступ с помощью реализации C #.

EDIT: Я использую OAuth, и вот код, который я пытаюсь выяснить, как получить миниатюру из этого:

// Prepare YouTube request settings.
var settings = new YouTubeRequestSettings(youtubeSettings.AppName, youtubeSettings.DeveloperKey,
    consumer.ConsumerKey, consumer.TokenManager.ConsumerSecret, accessToken, consumer.TokenManager.GetTokenSecret(accessToken),
    youtubeSettings.User, MessagingUtilities.GetRequestUrlFromContext().StripQueryArgumentsWithPrefix("oauth_").ToString());

// Prepare YouTube request.
var youtubeRequest = new YouTubeRequest(settings);
var entry = youtubeRequest.Service.Get("http://gdata.youtube.com/feeds/api/users/default");;

return (ProfileEntry)entry;

1 Ответ

1 голос
/ 14 августа 2011

Полагаю, вы используете клиентскую библиотеку Google Data API .NET.

http://code.google.com/p/google-gdata/

Мне потребовалось некоторое время, чтобы выяснить, где был спрятан эскиз.Они похоронили его довольно хорошо, но вы можете получить изображение профиля следующим образом:

var service = new YouTubeService("My YouTube Application");

service.setUserCredentials("your_email_address@gmail.com", "yourpassword");
var token = service.QueryClientLoginToken();
service.SetAuthenticationToken(token);

string feedUrl = "http://gdata.youtube.com/feeds/api/users/yourusername";

var profile = (ProfileEntry) service.Get(feedUrl);
var thumbnail = (from e in profile.ExtensionElements
                 where e.XmlName == "thumbnail"
                 select (XmlExtension) e).SingleOrDefault();
if (thumbnail != null)
{
    var thumbnailUrl = thumbnail.Node.Attributes["url"].Value;
}

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

Пример:

string thumbnailUrl = 
    "http://i4.ytimg.com/i/sIb6065PuhCXorT1WfbJAw/1.jpg?v=bf5482";
WebRequest request = WebRequest.Create(thumbnailUrl);
WebResponse response = request.GetResponse();
Image image = Image.FromStream(response.GetResponseStream());
var extension = Path.GetExtension(thumbnailUrl).Substring(0, 4);
image.Save(@"c:\me" + extension);
...