桌面应用程序& Youtube搜索API auth,C ++

时间:2017-06-15 19:19:44

标签: authentication oauth youtube google-api

我用C ++编写玩具桌面应用程序。它需要在YouTube上搜索一首歌。目前,应用会使用key参数调用googleapis.com/youtube/v3/search。这很好,易于编写,但会导致身份验证问题。

我无法随应用程序一起分发密钥,因为它很容易受到配额失窃和其他因素的影响(作为解决方法,我目前需要生成您自己的API密钥并将它们放入您的配置中 - 它& #39;不方便,闻起来像一个肮脏的黑客)。 Google允许限制密钥,但仅限于:IP,HTTP引荐,特定的Android应用,特定的iOS应用。这些都不适用。因此,我必须将该数据存储在其他地方或使用其他一些auth方法。第一种需要某种服务器,它在某个地方全天候运行,并且有自己的配额限制,这有更多的问题而且很荒谬 - 必须有一个正确的方法。当我尝试使用Google Developer Console的凭据向导时,在询问了有关我的应用的一些事情后,它只告诉我应该使用API​​密钥。

我想要的是什么:

  • 应用应该直接连接到Google - 他们应该能够像浏览浏览器中的普通搜索一样来管理配额。
  • 不在应用代码中存储API密钥。这是一个非常简单而又诱人的解决方案,但没有。
  • 无需登录。即使没有帐号也可以搜索YouTube,因此应该可以通过API进行搜索。
  • 没有使用像Selenium这样的浏览器。编写和维护这些东西很慢,很痛苦。

我觉得我对这些东西真的不熟悉,而且某处有明显的解决方案;毕竟,您可以随时随地通过浏览器进行YouTube搜索。如何从桌面应用程序执行此操作?

2 个答案:

答案 0 :(得分:1)

您可以使用无头浏览器,如PhantomJS,Selenium webdriver或Headless Chromium等。您可以在无头模式下呈现网络搜索结果,然后可以像普通浏览器一样从中提取结果。我个人没有使用它们与C ++,但我很确定它们也有C ++绑定。

答案 1 :(得分:1)

免责声明:我不知道这是否符合法律使用Google服务的条件,请在使用前进行研究。

您可以使用其他提供商(如www.noembed.com)来为您完成肮脏的工作(我猜)。  示例查询请求看起来像

http://noembed.com/embed?url=http%3A//www.youtube.com/watch%3Fv%3DbDOYN-6gdRE&callback=my_embed_function

此示例直接取自其主页(上面链接)。

我知道这看起来并不干净(我不喜欢这样做),但这是你可以考虑的事情