Python YouTube Gdata 播放器错误

标签 python youtube gdata

我正在尝试一些非常简单的事情:从 youtube gdata 模块获取播放器网址列表,

def getlist():
  index = 1
  prev = 0
  urls = []
  while True:
    uri = "http://gdata.youtube.com/feeds/api/playlists/E005D335B57338D1?start-index=%i&max-results=50" % index
    feed = yt_service.GetYouTubeVideoFeed(uri)
    for entry in feed.entry:
      urls.append(entry.media.player.url)
    if prev == len(urls): break
    prev = len(urls)
    index += 50
  return urls

但是调用getlist时会出现如下错误:
>>> urls = getlist()
Traceback (most recent call last):
  File "<pyshell#2>", line 1, in <module>
    getlist()
  File "<pyshell#1>", line 9, in getlist
    urls.append(entry.media.player.url)
AttributeError: 'NoneType' object has no attribute 'url'

我不知道为什么会这样,它在几周前就起作用了......
有任何想法吗?

最佳答案

您应该添加一个检查以保证播放器不为空:

...
for entry in feed.entry:
  if entry.media.player is not None:
    urls.append(entry.media.player.url)
...

关于Python YouTube Gdata 播放器错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3938703/

相关文章:

ios - YouTube WebUIViewDelegate - respondsToSelector : being sent to the wrong instance

api - Haskell REST/GDATA API 库

python - 如何将分隔值转换为one-hot编码列?

Python:模拟模块而不导入它或不需要它存在

python - Python Pandas 中因子变量的最接近等价物

javascript - 为什么我的视频没有留在盒子里?

html - Youtube Iframe Embed 是否已停止对某些视频工作?

bash - 从YouTube GData API检索随机视频

php - 使用 gdata API 获取 Youtube Private 视频

python - 检查 Python Boto SimpleDB 的结果集是否为空