apis.js 782 B

123456789101112131415161718192021222324252627282930313233343536
  1. 'use strict';
  2. const request = require('request');
  3. module.exports = {
  4. /**
  5. * Fetches a list of songs from Youtubes API
  6. *
  7. * @param session
  8. * @param query - the query we'll pass to youtubes api
  9. * @param cb
  10. * @return {{ status: String, data: Object }}
  11. */
  12. searchYoutube: (session, query, cb) => {
  13. const params = [
  14. 'part=snippet',
  15. `q=${encodeURIComponent(query)}`,
  16. `key=${config.get('apis.youtube.key')}`,
  17. 'type=video',
  18. 'maxResults=15'
  19. ].join('&');
  20. request(`https://www.googleapis.com/youtube/v3/search?${params}`, (err, res, body) => {
  21. if (err) {
  22. console.error(err);
  23. return cb({ status: 'error', message: 'Failed to search youtube with the requested query' });
  24. }
  25. cb({ status: 'success', data: JSON.parse(body) });
  26. });
  27. }
  28. };