2015-11-10 1 views
0

Я использую API YouTube для извлечения видеоданных. У меня есть список идентификаторов видео. Для некоторых из видео результаты, которые возвращаются, являются нормальными, а для некоторых из них API возвращает нулевые результаты. Через мой браузер все результаты действительны. Вот мой код:API YouTube возвращает нулевые результаты

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(), но это мне не помогло.

ответ

0

Проблема заключалась в том, что я послал запрос я добавил дополнительный характер

+0

вы должны использовать регулярные выражения для разбора 'duration', или вы должны быть уверены на 100% о продолжительности видео (менее 10 минут) – frank