如何检查 YouTube 上是否存在某个频道?

2024-04-07

如果我做一个curl请求此网址:

https://www.googleapis.com/youtube/v3/channels?part=snippet%2CcontentDetails%2Cstatistics&id=UC_x5XG1OVP6uZZ5FSM9Ttw&key=...

我将得到的输出为:

    {
      "kind": "youtube#channelListResponse",
      "etag": "J801W-IQ15sDpy3GjDfjlUgoVxA",
      "pageInfo": {
        "resultsPerPage": 0
      }
    }

这是否意味着 YouTube 频道不存在? 我没有收到任何错误;如何判断这是否是一个有效的频道?

同样,我想要给定频道的视频列表。如果我做一个curl使用此 URL 请求:

https://www.googleapis.com/youtube/v3/search?part=snippet&channelId=UCIJIhBwx4XjNUtQGZTGSVnA&maxResults=20&order=date&key=[YOUR_API_KEY]

我将得到的输出为:

    {
      "kind": "youtube#searchListResponse",
      "etag": "q5r0QewUnrg2C7BdwuxbJxb9b8c",
      "regionCode": "IN",
      "pageInfo": {
        "totalResults": 0,
        "resultsPerPage": 20
      },
      "items": []
    }

这是一个有效的通道 ID,但我得到的是空结果,而不是错误;如何知道搜索是否有效?


问题号。 1

对于您的第一个问题:

给定一个频道 ID——$CHANNEL_ID--,测试相应通道是否存在。

我建议调用curl在以下网址上:

https://www.googleapis.com/youtube/v3/channels?part=id&fields=items/id&id=$CHANNEL_ID&key=$APP_KEY

请注意,调用Channels.list https://developers.google.com/youtube/v3/docs/channels/list通过上面的 URL 的端点——其中包含参数part=id and fields=items/id- 将返回only频道的 ID。

尽管没有明确记录,但测试表明您将从端点返回您传递给它的 ID,当且仅当该频道确实存在。

例如,如果您的频道 ID 是上面的 --UC_x5XG1OVP6uZZ5FSM9Ttw--,API 响应几乎是空的:

{}

因为这个频道不存在(只需点击这个link https://www.youtube.com/channel/UC_x5XG1OVP6uZZ5FSM9Ttw自己看看)。

另一方面,就 NBCNews 频道而言——UCeY0bbntWzzVIaj2z3QigXg-- 响应是:

{
  "items": [
    {
      "id": "UCeY0bbntWzzVIaj2z3QigXg"
    }
  ]
}

表明这个频道确实是活跃的。

问题号。 2

关于您帖子的第二个问题:

通过 ID 指定频道$CHANNEL_ID,请列出该频道的视频。

建议您咨询一下我最近对这个问题给出的答案 https://stackoverflow.com/a/63811627/8327971.

按照curl,您必须调用以下 URL:

https://www.googleapis.com/youtube/v3/channels?part=contentDetails&fields=items/contentDetails/relatedPlaylists/uploads&id=$CHANNEL_ID&key=$APP_KEY

用于获取该频道的上传播放列表ID。例如,对于 NBCNews 频道,API 响应为:

{
  "items": [
    {
      "contentDetails": {
        "relatedPlaylists": {
          "uploads": "UUeY0bbntWzzVIaj2z3QigXg"
        }
      }
    }
  ]
}

然后从 JSON 响应中取出该 ID,如下所示$PLAYLIST_ID并调用curl在以下网址上反复, 实现分页 https://developers.google.com/youtube/v3/guides/implementation/pagination:

https://www.googleapis.com/youtube/v3/playlistItems?part=id,snippet,contentDetails,status&maxResults=50&playlistId=$PLAYLIST_ID&key=$APP_KEY.

对于 NBCNews 的上传播放列表,第一页的输出看起来像:

{
  "kind": "youtube#playlistItemListResponse",
  "etag": "5DW9uT73DWmJtDoJ-rSw3AqHKpc",
  "nextPageToken": "CAUQAA",
  "items": [
    {
      "kind": "youtube#playlistItem",
      "etag": "_X3LvLIRvEBM3RetizOGtB03ja0",
      "id": "VVVlWTBiYm50V3p6VklhajJ6M1FpZ1hnLjE5NjU4N0NGQkY5M0M3MjI=",
      "snippet": {
        "publishedAt": "2020-09-12T06:11:59Z",
        "channelId": "UCeY0bbntWzzVIaj2z3QigXg",
        "title": "Watch NBC News NOW Live - September 11",
        "description": "NBC News NOW is live, reporting breaking news and ...",
        "thumbnails": {
          ...
        },
        "channelTitle": "NBC News",
        "playlistId": "UUeY0bbntWzzVIaj2z3QigXg",
        "position": 0,
        "resourceId": {
          "kind": "youtube#video",
          "videoId": "yXO2hQXC5Dw"
        }
      },
      "contentDetails": {
        "videoId": "yXO2hQXC5Dw",
        "videoPublishedAt": "2020-09-12T06:11:59Z"
      },
      "status": {
        "privacyStatus": "public"
      }
    },
    {
      "kind": "youtube#playlistItem",
      "etag": "PGyhZonOjiRzqHu7DKDPk6gcMTo",
      "id": "VVVlWTBiYm50V3p6VklhajJ6M1FpZ1hnLjY2RTJFNDA4MDA0NDREQTU=",
      "snippet": {
        "publishedAt": "2020-09-12T02:48:48Z",
        "channelId": "UCeY0bbntWzzVIaj2z3QigXg",
        "title": "Gaza Sees Spike In Coronavirus Cases, Severe Shortage Of Supplies | NBC News NOW",
        "description": "NBC News’ Kelly Cobiella reports on the surge in Gaza ...",
        "thumbnails": {
          ...
        },
        "channelTitle": "NBC News",
        "playlistId": "UUeY0bbntWzzVIaj2z3QigXg",
        "position": 1,
        "resourceId": {
          "kind": "youtube#video",
          "videoId": "I0lHV0ZVPAs"
        }
      },
      "contentDetails": {
        "videoId": "I0lHV0ZVPAs",
        "videoPublishedAt": "2020-09-12T02:48:48Z"
      },
      "status": {
        "privacyStatus": "public"
      }
    },
    ...
  ],
  "pageInfo": {
    "totalResults": 20000,
    "resultsPerPage": 50
  }
}

请注意该属性nextPageToken在上面的 JSON 响应文本中;该房产的价值——CAUQAA-- 必须作为参数传递给端点的第二次调用pageToken=CAUQAA添加到上面的初始 URL。

为了获得n-第页,您将提取以下值nextPageToken来自n-1-第页,用于将该值传递给n-th URL 为pageToken=....

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何检查 YouTube 上是否存在某个频道? 的相关文章

随机推荐

  • 如何使用 knp 实验室可翻译学说行为访问翻译属性

    我正在使用可翻译的学说 并且我有一个具有可翻译属性的实体 这看起来像这样 class Scaleitem Must be defined for translating this entity use ORMBehaviors Transl
  • Ubuntu 中的 Eclipse:悬停背景颜色属性在哪里?

    我更改了悬停代码时可见的背景颜色 黑色 例如 当您将鼠标悬停在某个方法上时 您会在一个框中看到其签名 我的意思是那个盒子的背景颜色 我想更改它 但我在任何地方都找不到该属性 你知道它是什么财产吗 它应该是一个全球财产 因为其他框使用相同的背
  • 检查三个布尔值中是否至少有两个为 true

    最近一位面试官问了我这个问题 给定三个布尔变量 a b 和 c 如果三个中至少有两个为 true 则返回 true 我的解决方案如下 boolean atLeastTwo boolean a boolean b boolean c if a
  • Array.prototype.sort() 时间复杂度是多少?

    根据 Mozilla 文档 无法保证排序的时间复杂度和空间复杂度 取决于实施 至少可以安全地假设它不是O n 2 有没有关于它如何实施的更详细的数据 谢谢 火狐使用归并排序 https medium com nandodrw merge s
  • Magento Mage::getUrl 带后缀

    当 url 具有 html 后缀时 在 magento 中处理生成 url 的正确方法是什么 例如 获取以下产品 url 类别 产品 html 你不能简单地做Mage getUrl mycategory myproduct html or
  • 通过填充 UIImageView 图层边框宽度的颜色来动画进度

    我有 UIImageView 我把它做成了带有宽度层的圆形 如下图所示 用户可以更新图像并上传新图像 上传图像时我有一个进度回调 我想要的是在上传图像时用颜色对边框进行动画处理 例如 当用户单击上传时 边框从顶部开始为绿色 并根据进度填充宽
  • 自定义函数缺少参数 2

    因此 我尝试在保存更改后将原始的 post title 替换为同一篇文章右侧的自定义字段 但是 我在帖子页面上收到以下错误 警告 第 113 行 PATH public html wp content themes THEME functi
  • Chocolatey的正确使用(包更新/版本管理)

    注意 这个问题对于 Chocolatey 0 9 8 及以下版本有效 后来的版本从PowerShell脚本完全重写为C 应用程序 并且包管理的整个过程得到了很大的改进 我一直在使用巧克力味一段时间了 一开始我很兴奋 但过了一段时间我不确定它
  • 收到无效的 JSON 负载。未知名称 click_action

    所以我目前正在开发一个 PWA 我现在正在与推送通知我已经能够使用以下非常简单的 JSON 结构接收后台和前台通知 message token aValidToken notification title New Content body
  • 拦截MEF中的依赖关系

    是否可以在 MEF 处理依赖项请求之前拦截 MEF 中的依赖项请求 这对于实现装饰器和高级生命周期管理非常有用 就像是 catalogue AddInterceptor
  • 如何区分“消息”更新和“回调查询”更新? (电报机器人 API)

    抱歉 如果我的问题太混乱了 我是新来的 所以欢迎任何建议 如何区分 消息 更新和 回调查询 更新 我已经成功制作了一个内联键盘 但是当我使用它时 机器人只是挂起 他没有回复任何内容 我做了一些研究发现这个问题 https stackover
  • 错误:解析 XML 时出错:格式不正确(令牌无效)...?

    我正在开发一个具有以下 XML 的应用程序 但是当我尝试清理 构建我的项目时 会发生以下错误 错误 解析 XML 时出错 格式不正确 令牌无效
  • 检测控制台应用程序中的按键?

    我需要在控制台应用程序中检测按键 而不提示用户 基本上 我的应用程序通常是一个监听特殊输入设备的守护进程 但我需要在交互模式下使用键盘在开发盒上模拟它 我怎样才能做到这一点 我在 Linux 系统上 如果您在等待输入时无法阻塞 那么您可以使
  • 如何识别 Openoffice Calc 中两列中的重复值

    我有两列 其中有数字 当另一个人有重复的数字时 另一个人只拥有一次该数字 这些列中的数字不匹配 我需要找到 B 列中与 A 列中匹配的所有数字 这可能更好地解释了它 A B 1 2 2 2 4 5 6 5 7 6 8 6 我想得到这样的结果
  • 防止对 Web 应用程序的字典攻击

    防止字典攻击的最佳方法是什么 我已经想到了几种实现方式 但它们似乎都存在一些缺陷 X 次登录尝试失败后锁定用户 问题 很容易变成拒绝服务攻击 在短时间内锁定许多用户 逐渐增加用户名每次登录尝试失败的响应时间 问题 字典攻击可能使用相同的密码
  • 如何从指令获取角度视图层次结构?

    角度版本 6 我正在研究一个可以放置在任何元素上的指令 以用于一般使用日志记录 对于上下文 它看起来类似于以下内容 Directive selector log export class LogDirective Input log str
  • 替换 Woocommerce 3.4 中的 woocommerce_add_order_item_meta 挂钩

    我有自定义代码使用 woocommerce add order item meta 挂钩 但 woocommerce 3 4 0 显示错误日志 自版本 3 0 0 起 woocommerce add order item meta 已弃用
  • StoreKit 的 SKStoreProductViewController 在导航栏和视图之间留有空间?

    我有 UIViewController 的子类 它显示SKStoreProductViewController 该视图控制器最初是为 iOS 5 创建的 不使用自动布局 我的问题是 当SKStoreProductViewController
  • Phonegap:在 Android 中调整键盘显示上的 webview 大小

    我有一个类似的模态 有固定定位 Facebook 在最新的 Android 版本中对 Messenger 中的 feed chat 中的评论有何评论 我想要的看起来类似于 因此 当您专注于输入时 键盘会打开并缩小网络视图 默认情况下它不起作
  • 如何检查 YouTube 上是否存在某个频道?

    如果我做一个curl请求此网址 https www googleapis com youtube v3 channels part snippet 2CcontentDetails 2Cstatistics id UC x5XG1OVP6u