YouTube API返回零结果

时间:2015-11-10 07:54:29

标签: python-2.7 youtube-api youtube-data-api

我使用YouTube API检索视频数据。我有一个视频ID列表。 对于某些视频,返回的结果是正常的,对于其中一些视频,API返回零结果。通过我的浏览器,所有结果都是有效的。 这是我的代码:

def getVideoDuration(self,videoId):
        try:
            content = urllib2.urlopen("https://www.googleapis.com/youtube/v3/videos?part=statistics%2C+contentDetails&id=" + videoId +"&key=" + self.DEVELOPER_KEY).read()
            jsonContent= json.loads(content)
            duration = jsonContent['items'][0].values()[0]['duration']
            if len(duration) == 7:
                minutes = jsonContent['items'][0].values()[0]['duration'][2]
                seconds = jsonContent['items'][0].values()[0]['duration'][4:6]
            if len(duration) == 5:
                minutes = 0
                seconds = jsonContent['items'][0].values()[0]['duration'][2:4]
            print minutes,seconds
            totalTime = str(minutes) + "." + str(seconds)
            return float(totalTime)
        except:
            return 0.0

对于ID:'fu5K2cOeD4M'我的代码返回零结果,但是通过我的浏览器结果是正常的(附带JSON响应):

{
 "kind": "youtube#videoListResponse",
 "etag": "\"0KG1mRN7bm3nResDPKHQZpg5-do/wTtZkXqw81l7Hq6-GrLwJ3wRQ5w\"",
 "pageInfo": {
  "totalResults": 1,
  "resultsPerPage": 1
 },
 "items": [
  {
   "kind": "youtube#video",
   "etag": "\"0KG1mRN7bm3nResDPKHQZpg5-do/jrxp-dHXG3s3ujaIjyq15GWV7V8\"",
   "id": "fu5K2cOeD4M",
   "contentDetails": {
    "duration": "PT8M15S",
    "dimension": "2d",
    "definition": "sd",
    "caption": "false",
    "licensedContent": false
   },
   "statistics": {
    "viewCount": "18358",
    "likeCount": "166",
    "dislikeCount": "1",
    "favoriteCount": "0",
    "commentCount": "33"
   }
  }
 ]
}

我尝试使用time.sleep()延迟我的请求,但它对我没有帮助。

1 个答案:

答案 0 :(得分:0)

问题是我发送了请求,我添加了一个额外的字符