docs: function(username) {
          var result = q.defer();
          this.robot.http('https://gdata.youtube.com/feeds/api/users/' + username + '/uploads?alt=json')
              .header('Accept', 'application/json')
              .get()(function (err, res, body) {
              if (err) {
                  result.reject(err);
                  return;
              }
  
              if(res.statusCode >= 400) {
                  result.reject(body);
                  return;
              }
  
              var parsed;
              try {
                  parsed = JSON.parse(body);
              } catch (e) {
                  result.reject(e);
              }
  
              if(!parsed.feed || !parsed.feed.entry) {
                  result.reject('invalid format of youtube data');
                  return;
              }
  
              var videos = parsed.feed.entry.map(function(element) {
                  return {
                      id: element.id.$t,
                      link: element.link[0].href
                  }
              });
  
              result.resolve(videos);
          });
          return result.promise;
      }