【问题标题】:How to delete a video from youtube using youtube v3 api and C#如何使用 youtube v3 api 和 C# 从 youtube 中删除视频
【发布时间】:2015-12-11 14:18:21
【问题描述】:

好吧,我可以在 Youtube 上上传视频,但我没有找到从 Youtube 删除视频/视频的方法或相关代码。

这是我试图删除 youtube 视频的代码。

private async Task Run()
    {
      UserCredential credential;
      using (var stream = new FileStream("client_secret.json", FileMode.Open, FileAccess.Read))
      {
        credential = await GoogleWebAuthorizationBroker.AuthorizeAsync(
            GoogleClientSecrets.Load(stream).Secrets,
            new[] { YouTubeService.Scope.Youtube },
            "user",
            CancellationToken.None
        );
      }
      var youtubeService = new YouTubeService(new BaseClientService.Initializer()
      {
        HttpClientInitializer = credential,
        ApplicationName = Assembly.GetExecutingAssembly().GetName().Name
      });

      var videosDeleteRequest = youtubeService.Videos.Delete("Video ID");
      await videosDeleteRequest.ExecuteAsync();
    }

但是得到 403 响应

Error: Google.Apis.Requests.RequestError
Insufficient Permission [403]
Errors [
        Message[Insufficient Permission] Location[ - ] Reason[insufficientPermis
sions] Domain[global]
]

一点帮助或任何可能的解决方案都将非常受欢迎。

【问题讨论】:

  • 您的身份验证看起来正确,这也是正确的范围您确定您通过身份验证的用户/频道具有该视频 ID?尝试先做一个视频列表以确保。
  • 我们可以使用相同的连接上传视频,但是当我们尝试获取视频列表或删除视频时,此连接不起作用。它给了我们 403 响应。
  • 感谢@DaImTo 的帮助。现在我们可以使用带有访问令牌的谷歌删除 API 删除视频了。
  • 出了什么问题?
  • @JyotishSingh 您如何在上述代码中使用该不记名令牌,我只是想不通?

标签: c#-4.0 google-api youtube-api google-oauth google-api-dotnet-client


【解决方案1】:

错误转化为:

您尝试删除的视频无法删除。请求 可能没有得到适当的授权。

https://developers.google.com/youtube/v3/docs/videos/delete

您是否成功获取了拥有该视频的用户的令牌?

【讨论】:

    【解决方案2】:

    videos.delete 方法是对私人用户数据执行的。为了删除数据,您必须获得用户的许可或同意才能访问他们的帐户。他们必须已授予您以下范围之一的权限。

    错误信息

    Message[Insufficient Permission] Location[ - ] Reason[insufficientPermis
    sions] Domain[global]
    

    表示用户未授予您足够大范围的权限。例如,如果您要求仅使用只读范围进行授权,那么您将没有足够的权限来删除视频。

    但是,如果我们检查您的代码,我们可以看到您实际上正在使用 YouTubeService.Scope.Youtube。但是,如果您以前运行过您的应用程序,则客户端库会存储用户的同意。如果您随后更改了范围并且没有强制用户再次同意授权。那么你仍然在旧的同意上运行。

    在这种情况下的解决方案是将“用户”更改为其他内容,这将迫使它再次请求授权。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-11-30
      • 2015-01-03
      • 2015-02-16
      • 2016-11-13
      • 2016-08-25
      • 2018-06-28
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多