Загрузка видео через Google Picasa API
У нас есть рабочий класс Picasa для загрузки фотографий.
Мы пытались загружать видео таким же образом, но получали ошибку: прямая публикация видео в СМИ в настоящее время не поддерживается.
Согласно https://developers.google.com/picasa-web/docs/3.0/developers_guide_protocol можно использовать поддерживаемый тип MIME и загружать видео так же, как фотографии.
Как вы можете видеть из этого метода, мы предоставляем правильный тип MIME: https://github.com/ShareX/ShareX/blob/master/ShareX.UploadersLib/ImageUploaders/Picasa.cs#L190
public override UploadResult Upload(Stream stream, string fileName)
{
if (!CheckAuthorization()) return null;
if (string.IsNullOrEmpty(AlbumID))
{
AlbumID = "default";
}
UploadResult ur = new UploadResult();
string url = string.Format("https://picasaweb.google.com/data/feed/api/user/default/albumid/" + AlbumID);
string contentType = Helpers.GetMimeType(fileName);
NameValueCollection headers = GetAuthHeaders();
headers.Add("Slug", URLHelpers.URLEncode(fileName));
ur.Response = SendRequest(HttpMethod.POST, url, stream, contentType, null, headers);
if (ur.Response != null)
{
XDocument xd = XDocument.Parse(ur.Response);
XElement entry_element = xd.Element(AtomNS + "entry");
if (entry_element != null)
{
XElement group_element = entry_element.Element(MediaNS + "group");
if (group_element != null)
{
XElement content_element = group_element.Element(MediaNS + "content");
if (content_element != null)
{
ur.ThumbnailURL = content_element.GetAttributeValue("url");
int last_slash_index = ur.ThumbnailURL.LastIndexOf(@"/");
ur.URL = ur.ThumbnailURL.Insert(last_slash_index, @"/s0");
}
}
}
}
return ur;
}
}
public class PicasaAlbumInfo
{
public string ID { get; set; }
public string Name { get; set; }
public string Summary { get; set; }
}
При отладке я вижу, что для файла mp4 у нас есть " contentType = "video/mp4". Это должно поддерживаться в соответствии с рекомендациями API данных Веб-альбомов Picasa.
Любая помощь приветствуется.
Заранее спасибо Майкл
0 ответов
Пишу, если еще кто-то проверяет этот вопрос; Picasa API устарел, поэтому для загрузки изображений и видео используется API Google Фото. Подробнее здесь: Google Photos Api