使用 Python 获取 Youtube 数据

Posted

技术标签:

【中文标题】使用 Python 获取 Youtube 数据【英文标题】:Getting Youtube data using Python 【发布时间】:2015-08-29 09:20:48 【问题描述】:

我正在尝试学习如何分析网络上可用的社交媒体数据,我从 Youtube 开始。

from apiclient.errors import HttpError
from outh2client.tools import argparser
from apiclient.discovery import build
import pandas as pd
DEVELOPER_KEY = "AIzaSyB_F1mCrDydEbGUosnZES-NW-mg1CaOyjI"
YOUTUBE_API_SERVICE_NAME = "youtube"
YOUTUBE_API_VERSION = "v3"
argparser.add_argument("--q", help="Search term", default="apple product")
argparser.add_argument("--max-results", help="Max results", default=50)
args = argparser.parse_args()
options = args

我得到了这个错误。

ArgumentError                             Traceback (most recent call last)
<ipython-input-37-ebbf58549b73> in <module>()
----> 1 argparser.add_argument("--q", help="Search term", default="apple product")
  2 argparser.add_argument("--max-results", help="Max results", default=50)
  3 args = argparser.parse_args()
  4 options = args

/usr/lib/python2.7/argparse.py in add_argument(self, *args, **kwargs)
   1306                 raise ValueError("length of metavar tuple does not match nargs")
   1307 
-> 1308         return self._add_action(action)
   1309 
   1310     def add_argument_group(self, *args, **kwargs):

/usr/lib/python2.7/argparse.py in _add_action(self, action)
   1680     def _add_action(self, action):
   1681         if action.option_strings:
-> 1682             self._optionals._add_action(action)
   1683         else:
   1684             self._positionals._add_action(action)

/usr/lib/python2.7/argparse.py in _add_action(self, action)
   1507 
   1508     def _add_action(self, action):
-> 1509         action = super(_ArgumentGroup, self)._add_action(action)
   1510         self._group_actions.append(action)
   1511         return action
/usr/lib/python2.7/argparse.py in _add_action(self, action)
   1320     def _add_action(self, action):
   1321         # resolve any conflicts
-> 1322         self._check_conflict(action)
   1323 
   1324         # add to actions list

/usr/lib/python2.7/argparse.py in _check_conflict(self, action)
   1458         if confl_optionals:
   1459             conflict_handler = self._get_handler()
-> 1460             conflict_handler(action, confl_optionals)
   1461 
   1462     def _handle_conflict_error(self, action, conflicting_actions):

/usr/lib/python2.7/argparse.py in _handle_conflict_error(self, action, conflicting_actions)
   1465                                      for option_string, action
   1466                                      in conflicting_actions])
-> 1467         raise ArgumentError(action, message % conflict_string)
   1468 
   1469     def _handle_conflict_resolve(self, action, conflicting_actions):

ArgumentError: argument --q: conflicting option string(s): --q

我正在为此使用教程,但出现错误。

【问题讨论】:

您可以添加您正在使用的教程以及代码中的哪一行会引发错误。 @julka 我正在使用本教程analyticsvidhya.com/blog/2014/09/…,错误出现在第 8 行。谢谢 【参考方案1】:

看起来像你导入的解析器

from outh2client.tools import argparser

已经定义了一个-q 参数。您可以通过查看其代码或通过argparser.print_help()(在您自己添加任何内容之前)进行检查。

因此,最简单的解决方案是为您的论点选择另一个名称。

相关文档是

https://docs.python.org/3.4/library/argparse.html#conflict-handler

通过在该页面上查找“冲突”找到。

https://github.com/google/oauth2client/blob/master/oauth2client/tools.py 上定义的解析器没有 -q 参数。这是你的来源吗?我认为缺少的a 是拼写错误。

【讨论】:

以上是关于使用 Python 获取 Youtube 数据的主要内容,如果未能解决你的问题,请参考以下文章

如何运行 Youtube Api 视频:插入 (python)

PHP - 在 OAuth 之后获取频道 ID - YouTube API

在搜索 youtube api 3 中获取号码订阅频道

如何使用 python 获取 Youtube 视频的时长?

从 JSON 文件中获取数据到 jQuery 数据表中

KeyError: 'commentCount' 在 Python 中使用 Youtube API