YouTube Data API v.3.0无法从播放列表中添加/删除视频- InsufficientPermissio

本文关键字:添加 删除 视频 InsufficientPermissio 播放列表 API Data YouTube | 更新日期: 2023-09-27 18:02:05

我整天都在尝试删除/添加视频到我的YouTube播放列表。我正在使用YouTube数据API v.3.0。用于。net c#。我已经在谷歌开发者控制台创建了一个项目,并得到了我的客户端秘密JSON文件。此外,我用于获取列表项的代码工作正常,这意味着只有PUT操作没有按预期工作。我已经使用了几乎相同的代码在谷歌开发人员网站的代码示例。

身份验证方法:

 private async Task<YouTubeService> GetYouTubeService(string userEmail)
    {
        UserCredential credential;
        using (var stream = new FileStream("client_secrets.json", FileMode.Open, FileAccess.Read))
        {
            credential = await GoogleWebAuthorizationBroker.AuthorizeAsync(
                GoogleClientSecrets.Load(stream).Secrets,
                new[]
                { 
                    YouTubeService.Scope.Youtube,
                    YouTubeService.Scope.Youtubepartner,
                    YouTubeService.Scope.YoutubeUpload,
                    YouTubeService.Scope.YoutubepartnerChannelAudit, 
                    YouTubeService.Scope.YoutubeReadonly 
                },
                userEmail,
                CancellationToken.None,
                new FileDataStore(this.GetType().ToString()));
        }
        var youtubeService = new YouTubeService(new BaseClientService.Initializer()
        {
            HttpClientInitializer = credential,
            ApplicationName = this.GetType().ToString()
        });
        return youtubeService;
    }

添加视频到播放列表代码:

  private async Task AddSongToPlaylistAsync(string userEmail, string songId, string playlistId)
    {
        var youtubeService = await this.GetYouTubeService(userEmail);
        var newPlaylistItem = new PlaylistItem();
        newPlaylistItem.Snippet = new PlaylistItemSnippet();
        newPlaylistItem.Snippet.PlaylistId = playlistId;
        newPlaylistItem.Snippet.ResourceId = new ResourceId();
        newPlaylistItem.Snippet.ResourceId.Kind = "youtube#video";
        newPlaylistItem.Snippet.ResourceId.VideoId = songId;
        newPlaylistItem = await youtubeService.PlaylistItems.Insert(newPlaylistItem, "snippet").ExecuteAsync();
    }

这是当我尝试将新视频添加到指定播放列表时收到的消息:

Google.Apis.Requests.RequestError许可不足[403]错误(消息[权限不足]位置[-]原因[insufficientPermissions]域[global])

我真的很感激任何可用的帮助,因为我没有找到任何有用的谷歌。提前感谢!

YouTube Data API v.3.0无法从播放列表中添加/删除视频- InsufficientPermissio

我遇到了同样的问题,但如果有人在将视频添加到播放列表时遇到低效的权限问题,您将需要拥有YouTubeService.Scope.Youtube(看起来您已经拥有)。

var scopes = new[]
{
    YouTubeService.Scope.Youtube
};

但是,如果您在已经授予权限之后添加了范围,则需要通过转到此页面管理权限来撤销客户端。你必须寻找你的特定客户。完成后,你可以重新运行应用程序并再次请求权限。

另一个选择是再次创建一个新的clientId和clientSecret,并确保您有正确的范围开始。