2014-12-05 16:26:01 +00:00
|
|
|
"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") {
|
2014-12-05 16:34:26 +00:00
|
|
|
query = data.artist.name + data.name;
|
2014-12-05 16:26:01 +00:00
|
|
|
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;
|
|
|
|
};
|