首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >使用YouTube和Google.Apis.YouTube.v3列出C#视频

使用YouTube和Google.Apis.YouTube.v3列出C#视频
EN

Stack Overflow用户
提问于 2014-01-15 08:35:52
回答 1查看 18.4K关注 0票数 6

我正在尝试使用最新版本的YouTube (截至2014年1月15日)执行一些Google.Apis.YouTube.v3视频交互。

我在以下方面做了一个NuGet:

  • Google.Apis.YouTube.v3
  • Google.Apis.Authentication
  • Google.Apis.Drive.v2 (没有必要,但无论如何都得到了)

然后,我尝试运行在:https://developers.google.com/youtube/v3/docs/playlistItems/list上找到的代码

但是,代码中有以下引用,我似乎在任何最新的NuGet下载中都找不到.

  • using Google.Apis.Auth.OAuth2.DotNetOpenAuth;
  • using Google.Apis.Samples.Helper;

然后在代码的顶部有下面的注释,但是链接让我找不到任何有用的东西。

/* External dependencies, OAuth 2.0 support, and core client libraries are at: */ /* https://code.google.com/p/google-api-dotnet-client/wiki/APIs#YouTube_Data_API */ /* Also see the Samples.zip file for the Google.Apis.Samples.Helper classes at: */ /* https://code.google.com/p/google-api-dotnet-client/wiki/Downloads */

我开始相信使用YouTube使用C#的最好方法是使用YouTube.v3代码库的旧版本,这些版本与人们似乎已经开始使用的例子相吻合。

任何帮助(尤指来自佩莱亚尔的)将不胜感激。也许我错过了一些显而易见的东西,需要被打在头上.

顺便说一下,我已经下载了我的客户端秘密json文件,并成功地运行了包含在google-api-dotnet-client-1.7.0-beta.samples.zip文件中的几个示例。然而,奇怪的是,在这个示例zip文件中缺少的是任何YouTube示例。这个zip文件中也缺少Google.Apis.Samples.Helper类。

到2014年1月14日,是否有人有使用最新的YouTube代码与NuGet交互的有用示例代码?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-01-21 04:36:11

因此,经过大量的研究,挖掘和少一点头发,我想出了一些事情。

首先,登录到"Google控制台“。如果您使用的是GAE (Google ),然后单击GAE项目并启用"YouTube Data v3",您肯定不会得到任何位置!相反,退出GAE项目,创建一个名为“”的新项目。

然后在这个项目中,启用您想要的API,您将开始获得更好的结果。结果要好得多。首先尝试YouTube搜索。这允许您只插入您的API键,并且您不需要处理OAuth2,而且它需要更少的dll,所以它是一个很好的起点。尝试如下所示:

代码语言:javascript
运行
复制
YouTubeService youtube = new YouTubeService(new BaseClientService.Initializer() {
    ApplicationName = "{yourAppName}",
    ApiKey = "{yourApiKey}",
});
SearchResource.ListRequest listRequest = youtube.Search.List("snippet");
listRequest.Q = "Loeb Pikes Peak";
listRequest.MaxResults = 5;
listRequest.Type = "video";
SearchListResponse resp = listRequest.Execute();
foreach (SearchResult result in resp.Items) {
    CommandLine.WriteLine(result.Snippet.Title);
}

请随意用常规控制台打印stmts替换CommandLine。

接下来,继续使用OAuth 2.0,并尝试在不出错的情况下获得凭据。您需要从“凭据”部分下的"Google控制台“下载OAuth JSON文件。拥有该文件后,将名为"client_secrets.json“的任何文件替换为下载的json文件的内容。为了使授权工作,我发现我缺少了Microsoft.Threading.Tasks.Extensions.Desktop.dll,它是允许浏览器打开窗口的dll,允许本机应用程序使用YouTube acct访问muck。因此,如果您在授权部分中有一些错误,请检查内部异常,这可能也是您的问题。

免责声明:下面所示代码的下半部分来自: github.com/youtube/api-samples/blob/master/dotnet

代码语言:javascript
运行
复制
UserCredential credential;
using (FileStream stream = new FileStream("client_secrets.json", FileMode.Open, FileAccess.Read))
{
    credential = GoogleWebAuthorizationBroker.AuthorizeAsync(
        GoogleClientSecrets.Load(stream).Secrets,
        new[] { YouTubeService.Scope.Youtube, YouTubeService.Scope.YoutubeUpload },
        "user",
        CancellationToken.None,
        new FileDataStore("YouTube.Auth.Store")).Result;
}
var youtubeService = new YouTubeService(new BaseClientService.Initializer() 
{
    HttpClientInitializer = credential,
    ApplicationName = Assembly.GetExecutingAssembly().GetName().Name
});
var video = new Video();
video.Snippet = new VideoSnippet();
video.Snippet.Title = "Default Video Title";
video.Snippet.Description = "Default Video Description";
video.Snippet.Tags = new string[] { "tag1", "tag2" };
video.Snippet.CategoryId = "22"; // See https://developers.google.com/youtube/v3/docs/videoCategories/list
video.Status = new VideoStatus();
video.Status.PrivacyStatus = "unlisted"; // or "private" or "public"
var filePath = @"REPLACE_ME.mp4"; // Replace with path to actual movie file.
using (var fileStream = new FileStream(filePath, FileMode.Open))
{
    var videosInsertRequest = youtubeService.Videos.Insert(video, "snippet,status", fileStream, "video/*");
    videosInsertRequest.ProgressChanged += videosInsertRequest_ProgressChanged;
    videosInsertRequest.ResponseReceived += videosInsertRequest_ResponseReceived;
    videosInsertRequest.UploadAsync();
}

这是我的两分钱。此外,您还需要在NuGet上执行DotNetOpenAuth,在代码中,将对Google.Apis.Auth.OAuth2.DotNetOpenAuth的任何“使用”调用替换为“使用DotNetOpenAuth”。

希望这能帮到其他人。最重要的是找出GAE和一个新项目的对比。一旦我发现,正常数量的研究开始产生结果,而不是纯粹的挫折!!

票数 19
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21132531

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档