首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >YouTube接口搜索- VEVO视频优先

YouTube接口搜索- VEVO视频优先
EN

Stack Overflow用户
提问于 2015-03-31 21:03:46
回答 3查看 3K关注 0票数 2

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

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

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

是否可以强制选择VEVO视频,如果它们存在?

谢谢。

文森

EN

回答 3

Stack Overflow用户

发布于 2015-03-31 22:12:56

代码语言:javascript
复制
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的部分

票数 2
EN

Stack Overflow用户

发布于 2015-08-12 00:26:58

更新:我不认为我放在下面的辛迪加视频会很好地工作,但我会把它留在那里,以防你想要探索它。可能会更好地工作,同样不能保证,但应该更准确只是希望最好的是简单地按viewCount而不是相关性进行排序……一般来说,VEVO视频的浏览量最多。

示例:https://developers.google.com/apis-explorer/#p/youtube/v3/youtube.search.list?part=snippet&order=viewCount&q=nicki+minaj+anaconda&type=video&_h=3&

GET https://www.googleapis.com/youtube/v3/search?part=snippet&order=viewCount&q=nicki+minaj+anaconda&type=video&key={YOUR_API_KEY}

--

原始答案

我还不能测试它,它不一定只限于vevo视频,但你可以尝试联合选项https://developers.google.com/youtube/v3/docs/search/list#videoSyndicated

代码语言:javascript
复制
string
The videoSyndicated parameter lets you to restrict a search to only videos that can be played outside youtube.com. If you specify a value for this parameter, you must also set the type parameter's value to video.

Acceptable values are:
any – Return all videos, syndicated or not.
true – Only retrieve syndicated videos.

如果没有返回任何结果,则在没有辛迪加的情况下执行相同的搜索,并使用其中的第一个选项。

票数 0
EN

Stack Overflow用户

发布于 2015-10-23 06:37:34

这其实很简单。你需要做的是将'VEVO‘添加到你的搜索查询中。这将确保来自VEVO通道的任何内容都将是第一个结果。它应该看起来像这样。

代码语言:javascript
复制
var request = gapi.client.youtube.search.list
({
    q: artiste+' '+track + 'VEVO',
    part: 'snippet',
    order: 'relevance'
});

如果你不想确保你得到的是VEVO视频,最简单的事情是解析频道标题,以确保它包含单词"VEVO“。然后,代码看起来像这样

代码语言:javascript
复制
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;
  }
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29369368

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档