如何在没有用户操作的情况下从YouTube Analytics API检索数据?

时间:2013-12-18 09:21:11

标签: youtube google-api oauth-2.0 google-oauth youtube-analytics

我想创建一个由cron作业启动的脚本,该脚本定期将关于我的频道的数据存储在文件中。这些数据是通过YouTube Analytics API(不是普通的YouTube API)检索的。

我如何实现这一结果? 服务访问是否与这些API兼容?

1 个答案:

答案 0 :(得分:1)

如果这只是一次性 - 对于您的帐户 - 在您信任的服务器/桌面上运行,我认为最好的机制将是:

  1. 为“已安装的应用程序”创建OAuth客户端ID。创建Google Cloud Console项目,启用您需要的API,注册您的应用程序(在“API& Auth”下)。
  2. 手动浏览已安装的应用程序流程以授予自己刷新令牌 - 这将要求您打开浏览器并单击同意屏幕。
  3. 保留刷新令牌。
  4. 在随后的无人值守运行中,使用刷新令牌获取新的访问令牌以代表您拨打电话。
  5. 如果您使用的是Python - 并且安装了Google API Python客户端,则以下代码将为您执行步骤2 - 4(假设您已完成步骤1并保存了client_secrets.json文件):

    import httplib2
    from oauth2client.file import Storage
    from oauth2client.client import flow_from_clientsecrets
    from oauth2client.tools import run
    from apiclient.discovery import build
    
    storage = Storage("/path/to/saved_user_creds.dat")
    credentials = storage.get()
    if credentials is None or credentials.invalid:
      credentials = run(flow_from_clientsecrets("/path/to/client_secrets.json", scope="https://www.googleapis.com/auth/yt-analytics.readonly"), storage)
    http = credentials.authorize(httplib2.Http())
    
    # Do your stuff - remember to pass the authenticated http object to execute methods
    service = build("youtubeAnalytics", "v1")
    result = service.object().method(name=value).execute(http=http)