【问题标题】:Uploading a video via Google Picasa API通过 Google Picasa API 上传视频
【发布时间】:2017-03-12 03:29:53
【问题描述】:

我们有一个有效的 Picasa 类来上传照片。

我们一直在尝试以相同的方式上传视频,但一直收到错误消息: 目前不支持直接在媒体上发布视频。

根据 https://developers.google.com/picasa-web/docs/3.0/developers_guide_protocol#PostVideo 可以使用支持的 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 = "视频/mp4" 这必须根据 Picasa 网络相册数据 API 指南得到支持。

任何帮助将不胜感激。

提前致谢 迈克尔

【问题讨论】:

    标签: c# api video picasa google-photos


    【解决方案1】:

    我写信是为了防止有人检查这个问题; Picasa API 已弃用,因此 Google Photos API 用于上传图片和视频。更多细节在这里:Google Photos Api

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-09-27
      • 2012-08-19
      • 1970-01-01
      • 2013-06-22
      • 2019-04-19
      • 2018-05-13
      • 1970-01-01
      相关资源
      最近更新 更多