Youtube api YouTube 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:

我有一个脚本,它使用YouTube API(v3)从艺术家的名字和音乐的名字中查找音乐的视频

然而,在某些情况下,第一选择(按相关性排序)不是官方视频VEVO

我尝试在我的查询中添加VEVO(在艺术家姓名和音乐名称之后),但是当没有视频VEVO时,API不会返回任何结果

是否可以强制选择VEVO视频(如果存在)

多谢各位

文森特

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;
  }