当我尝试在 Google 播放列表中搜索时,收到 403(禁止)错误。如果我删除 .Query 它工作正常。我知道这些凭据工作正常,因为我在应用程序的其他地方使用它们没有任何问题。
我是否以错误的方式处理这个问题,或者这是不可能的?我正在使用 1.8.0.0 版本的 api(新下载)。
void SearchPlaylistVideos(string playListId, string query)
{
YouTubeQuery videoQuery = new YouTubeQuery(String.Format("http://gdata.youtube.com/feeds/api/playlists/{0}", playListId));
videoQuery.Query = query;
Feed<Video> feed = CreateAuthenticatedRequest().Get<Video>(videoQuery);
foreach (Video entry in feed.Entries) {
//Response.Write("<br />" + entry.Title);
}
}
YouTubeRequest CreateAuthenticatedRequest()
{
YouTubeRequestSettings settings = new YouTubeRequestSettings
(
ConfigurationManager.AppSettings["GData.AppName"],
ConfigurationManager.AppSettings["GData.DeveloperKey"],
ConfigurationManager.AppSettings["GData.Email"],
ConfigurationManager.AppSettings["GData.Password"]
);
settings.Timeout = 1000000;
return new YouTubeRequest(settings);
}
最佳答案
我们曾经解决过一个有点类似的问题:我们的客户在“应用程序”中输入 YouTube 查询词,返回整个查询的结果,然后客户端选择视频保存到应用程序的数据库中。然后,我们可以让应用程序将自定义播放列表发送到客户端的站点。然后,该网站的访问者可以使用搜索词搜索视频。我们使用Lucene.net对这些自定义“应用程序”列表运行查询。根据您的情况,您可以:
- 使用播放列表 ID 查询 YouTube。
- 保留或缓存结果(网址、标题、长度等)
- 使用 Lucene 对此集执行查询。
这肯定会占用更多资源(存储、周期),并且您可能需要加快使用 Lucene 的 API,但我同意 Данаил 的观点,即快速简便的方法(YouTube 允许对播放列表进行自定义查询)行不通.
关于.net - Youtube .net api - 在播放列表中搜索,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6335170/