Add youtube to results, persist to mongo
This commit is contained in:
parent
d675ac4e9f
commit
f20fecf0d0
7 changed files with 125 additions and 31 deletions
50
lib/services/youtube.js
Normal file
50
lib/services/youtube.js
Normal file
|
@ -0,0 +1,50 @@
|
|||
"use strict";
|
||||
var parse = require('url').parse;
|
||||
var request = require('superagent');
|
||||
var Q = require('q');
|
||||
|
||||
module.exports.id = "youtube";
|
||||
|
||||
if (!process.env.YOUTUBE_KEY) {
|
||||
console.warn("YOUTUBE_KEY environment variable not found, deactivating Youtube.");
|
||||
return;
|
||||
}
|
||||
|
||||
var credentials = {
|
||||
key: process.env.YOUTUBE_KEY,
|
||||
};
|
||||
|
||||
var apiRoot = "https://www.googleapis.com/youtube/v3";
|
||||
|
||||
module.exports.match = function(url, type) {
|
||||
return false;
|
||||
};
|
||||
|
||||
module.exports.search = function(data) {
|
||||
var deferred = Q.defer();
|
||||
var query, album;
|
||||
var type = data.type;
|
||||
|
||||
if (type == "album") {
|
||||
query = data.artist.name + " " + data.name;
|
||||
album = data.name;
|
||||
} else if (type == "track") {
|
||||
query = data.artist.name + " " + data.album.name + " " + data.name;
|
||||
album = data.album.name
|
||||
}
|
||||
|
||||
var path = "/search?part=snippet&q=" + encodeURIComponent(query) + "&type=video&videoCaption=any&key=" + credentials.key;
|
||||
request.get(apiRoot + path, function(res) {
|
||||
var result = res.body.items[0];
|
||||
deferred.resolve({
|
||||
service: "youtube",
|
||||
type: "video",
|
||||
id: result.id.videoId,
|
||||
name: result.snippet.title,
|
||||
streamUrl: "https://www.youtube.com/watch?v=" + result.id.videoId,
|
||||
purchaseUrl: null,
|
||||
artwork: result.snippet.thumbnails.medium.url,
|
||||
});
|
||||
});
|
||||
return deferred.promise;
|
||||
};
|
Loading…
Add table
Add a link
Reference in a new issue