API调用中的YouTube搜索运算符?布尔运算符AND,OR和NOT

问题描述 投票:0回答:1

我很难通过Youtube API发现运算符和函数如何用于研究。

在Youtube.Search我找到了方法setQ,它解释了运算符NOT和OR的逻辑,但没有解释运算符AND的逻辑。主要思想是进行一个包含两个参数的搜索,我可以使用OR逻辑。

示例:我希望2“鱼”和“海”应该是研究元数据的一部分。

我已经对前端调用进行了分析,它有这样的形式:fish + sea但是如果我尝试在java中实现它,它看起来它不能正常工作,因为我有其他结果。 PS:我已经按相关性排序了所有结果(通过将“相关性”值设置为youtube本身使用的逻辑)因此我想在youtube网站和我的本地应用程序中获得相同的结果。

youtube-data-api boolean-logic
1个回答
1
投票

我使用Google Data API Explorer测试了一些请求,我发现单词“AND”(大写)会给你带来稍微不同的结果:

例如,以下请求是针对使用查询“铃声”(没有双引号)的搜索视频 - 它将带来来自美国地区的前10个搜索结果:

https://www.googleapis.com/youtube/v3/search?part=snippet&maxResults=10&q=The+ring&regionCode=US&type=video&fields=items(id(channelId%2Ckind%2CvideoId)%2Csnippet(channelTitle%2Ctitle))%2CnextPageToken%2CpageInfo%2CprevPageToken%2CregionCode%2CtokenPagination&key={YOUR_API_KEY}

这些是结果:

{
 "nextPageToken": "CAoQAA",
 "regionCode": "US",
 "pageInfo": {
  "totalResults": 1000000,
  "resultsPerPage": 10
 },
 "items": [
  {
   "id": {
    "kind": "youtube#video",
    "videoId": "PFsl1cGHzp4"
   },
   "snippet": {
    "title": "The Ring (1/8) Movie CLIP - You Will Die in Seven Days (2002) HD",
    "channelTitle": "Movieclips"
   }
  },
  {
   "id": {
    "kind": "youtube#video",
    "videoId": "lbO9LhD9PsI"
   },
   "snippet": {
    "title": "The Ring- final scene!",
    "channelTitle": "prochys09"
   }
  },
  {
   "id": {
    "kind": "youtube#video",
    "videoId": "5bXpMRkwm_8"
   },
   "snippet": {
    "title": "SML Movie: The Ring",
    "channelTitle": "SuperMarioLogan"
   }
  },
  {
   "id": {
    "kind": "youtube#video",
    "videoId": "V3iJqH9-tQ8"
   },
   "snippet": {
    "title": "Everything Wrong With The Ring In 14 Minutes Or Less",
    "channelTitle": "CinemaSins"
   }
  },
  {
   "id": {
    "kind": "youtube#video",
    "videoId": "lm9AoNNWiPc"
   },
   "snippet": {
    "title": "The Ring Evolution in Movies & TV. (Sadako & Samara)",
    "channelTitle": "Darwin's Media"
   }
  },
  {
   "id": {
    "kind": "youtube#video",
    "videoId": "hpb2-ZOzc_o"
   },
   "snippet": {
    "title": "Samara Comes to You - The Ring (8/8) Movie CLIP (2002) HD",
    "channelTitle": "Movieclips"
   }
  },
  {
   "id": {
    "kind": "youtube#video",
    "videoId": "Baw98nsMvxU"
   },
   "snippet": {
    "title": "scary movie 3 brenda vs the ring lol",
    "channelTitle": "maltbydude"
   }
  },
  {
   "id": {
    "kind": "youtube#video",
    "videoId": "6YP1xg8G1o4"
   },
   "snippet": {
    "title": "RINGS behind the scenes",
    "channelTitle": "teu davidz"
   }
  },
  {
   "id": {
    "kind": "youtube#video",
    "videoId": "rroMPRc4flw"
   },
   "snippet": {
    "title": "The Ring Two (8/8) Movie CLIP - I'm Not Your Mommy (2005) HD",
    "channelTitle": "Movieclips"
   }
  },
  {
   "id": {
    "kind": "youtube#video",
    "videoId": "WcuRPzB4RNc"
   },
   "snippet": {
    "title": "Rings (2017) - TV Store Prank",
    "channelTitle": "Paramount Pictures"
   }
  }
 ]
}

这是前一个请求的demo

通过以下修改进行测试:

  • 双引号搜索词 - (即qazxsw poi,qazxsw poi)。
  • 添加“AND”运算符(不带双引号)。

我现在可以测试上一个请求的修改版本:

"the"

结果如下:

"ring"

这是前一个请求的https://www.googleapis.com/youtube/v3/search?part=snippet&maxResults=10&q=%22The%22+AND+%22ring%22&regionCode=US&type=video&fields=items(id(channelId%2Ckind%2CvideoId)%2Csnippet(channelTitle%2Ctitle))%2CnextPageToken%2CpageInfo%2CprevPageToken%2CregionCode%2CtokenPagination&key={YOUR_API_KEY}

如果比较两个结果,您会看到(使用AND运算符)不包含这些搜索结果:

N.B:我强调了搜索条件:

  • 恐怖电影3布伦达vs环lol
  • 幕后的RINGS
  • 戒指(2017) - 电视商店恶作剧

相反,新的结果是:

  • Cardi B - Ring(feat.Kehlani)[官方视频]
  • 萨马拉唱一首歌(The Ring Scary Halloween Parody)
  • 戒指|预告片#1 |派拉蒙影业国际

我认为结果没有太大的变化。

© www.soinside.com 2019 - 2024. All rights reserved.