Youtube api YouTube API搜索-VEVO视频优先
我有一个脚本,它使用YouTube API(v3)从艺术家的名字和音乐的名字中查找音乐的视频 然而,在某些情况下,第一选择(按相关性排序)不是官方视频VEVO 我尝试在我的查询中添加VEVO(在艺术家姓名和音乐名称之后),但是当没有视频VEVO时,API不会返回任何结果 是否可以强制选择VEVO视频(如果存在) 多谢各位 文森特Youtube api YouTube API搜索-VEVO视频优先,youtube-api,Youtube Api,我有一个脚本,它使用YouTube API(v3)从艺术家的名字和音乐的名字中查找音乐的视频 然而,在某些情况下,第一选择(按相关性排序)不是官方视频VEVO 我尝试在我的查询中添加VEVO(在艺术家姓名和音乐名称之后),但是当没有视频VEVO时,API不会返回任何结果 是否可以强制选择VEVO视频(如果存在) 多谢各位 文森特 var request = gapi.client.youtube.search.list ({ q: artiste+' '+track, part:
var request = gapi.client.youtube.search.list
({
q: artiste+' '+track,
part: 'snippet',
order: 'relevance'
});
request.execute(function(response)
{
idVideo=response.result.items[0].id.videoId;
});
这是一个允许根据艺术家姓名和音乐名称选择视频id的部分更新:我不认为我在下面建议的辛迪加视频会很好地工作,但我会把它放在那里,以防万一你想探索它。可能效果更好,但也不能保证更准确,只是希望最好的方法是简单地按
viewCount
排序,而不是按相关性排序。。。一般来说,VEVO视频的浏览量最大
例如:
GEThttps://www.googleapis.com/youtube/v3/search?part=snippet&order=viewCount&q=nicki+minaj+anaconda&type=video&key={YOUR_API_key}
--
原始答案
我还没有能够测试它,它不一定只限于vevo视频,但你可以尝试辛迪加选项
如果没有返回任何内容,则在不使用辛迪加的情况下执行相同的搜索,并使用其中的第一个选项 这其实很容易。您需要做的是在搜索查询中添加“VEVO”。这将确保来自VEVO频道的任何内容都是第一个结果。应该是这样的
var request = gapi.client.youtube.search.list
({
q: artiste+' '+track + 'VEVO',
part: 'snippet',
order: 'relevance'
});
如果你不想确保你得到的是一个VEVO视频,最简单的方法就是解析频道标题,确保它包含单词“VEVO”。然后,代码看起来像这样
var request = gapi.client.youtube.search.list
({
q: artiste+' '+track + 'VEVO',
part: 'snippet',
order: 'relevance'
});
var obj = JSON.parse(result.content);
var findChannelTitle = obj.items[0].snippet.channelTitle;
var isVevo = findChannelTitle.match(/VEVO/g); //checks to see if this is VEVO content. We only wan't to use Vevo videos.
if (isVevo){ //returns true if VEVO is found in the channel title
var youtubeVideoId = obj.items[0].id.videoId; //finds the video ID
return youtubeVideoId;
}else{
return null;
}
var request = gapi.client.youtube.search.list
({
q: artiste+' '+track + 'VEVO',
part: 'snippet',
order: 'relevance'
});
var obj = JSON.parse(result.content);
var findChannelTitle = obj.items[0].snippet.channelTitle;
var isVevo = findChannelTitle.match(/VEVO/g); //checks to see if this is VEVO content. We only wan't to use Vevo videos.
if (isVevo){ //returns true if VEVO is found in the channel title
var youtubeVideoId = obj.items[0].id.videoId; //finds the video ID
return youtubeVideoId;
}else{
return null;
}