使用 YouTube API 检查视频是否可嵌入

2024-05-25

我试图弄清楚 YouTube 视频是否可以使用 YouTube Data API v3 嵌入,从类似问题的答案中我注意到视频的 status.embeddable 属性,对于这样的请求:

https://www.googleapis.com/youtube/v3/videos?id=63flkf3S1bE&part=contentDetails,status&key={MY_API_KEY}

响应如下

{
    "kind": "youtube#videoListResponse",
    "etag": "\"ksCrgYQhtFrXgbHAhi9Fo5t0C2I/ctZQYtBcOuMdnQXh8-Fv1EbS_VA\"",
    "pageInfo": {
        "totalResults": 1,
        "resultsPerPage": 1
    },
    "items": [
        {
            "kind": "youtube#video",
            "etag": "\"ksCrgYQhtFrXgbHAhi9Fo5t0C2I/Cd8aGZD09NPuGYNumIEozZs2S90\"",
            "id": "63flkf3S1bE",
            "contentDetails": {
                "duration": "PT8M23S",
                "dimension": "2d",
                "definition": "hd",
                "caption": "false",
                "licensedContent": false,
                "projection": "rectangular"
            },
            "status": {
                "uploadStatus": "processed",
                "privacyStatus": "public",
                "license": "youtube",
                "embeddable": true,
                "publicStatsViewable": true,
                "madeForKids": false
            }
        }
    ]
}

The embeddable参数下status返回 true,但是该视频实际上不可嵌入,如您所见here https://www.youtube.com/embed/63flkf3S1bE.

当实际使用 iframe API 嵌入视频时,还有更详细的错误消息:

视频不可用 该视频包含来自国际奥委会的内容,该委员会已阻止其在本网站或应用程序上显示。 在 YouTube 上观看

我不明白如何从 YouTube 数据 API 检测到这种情况 - 有人可以帮忙吗?


我有答案了。从输出的文件https://www.youtube.com/get_video_info?video_id= https://www.youtube.com/get_video_info?video_id=只不过是一个 URLENCODED 的标准文本文件。

要正确查看它,您首先必须使用 URLDECODER 对其进行解码,然后必须将 json 部分与 URL 查询字符串部分分开。要查看 JSON 部分,您可以使用 json 格式,要查看 URL 部分,您可以使用 PrettyPrint URL。

执行此操作后,您会注意到您正在寻找的用于验证视频是否可以播放的标签是其他用户在此处提到的标签。它位于名为“player_response”的 URL 参数上,在对文件进行解码后,您将轻松找到它。此参数保存一个较长的 JSON 文件,该文件在 playabilityStatus.Status 下具有可玩性状态。

要在 Javascript 上操作它,只需将文件的这一部分解析为 JSON 文件并访问您选择的节点,或者将其解析为文本并搜索 playabilityStatus 节点,如果您不想解码它,则该节点必须未编码(没什么好担心的) ,只有一些 %2D 和 %7B 而不是空格和大括号)。

祝你好运!

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

使用 YouTube API 检查视频是否可嵌入 的相关文章

随机推荐

  • 终止处理程序可以抛出异常吗?

    以下程序的定义行为是什么 如果有 include
  • 配置文件与应用程序标识符不匹配

    我刚刚为应用程序 ID 49776ZQRBG com gfeed ride 创建了一个 AdHoc 分发配置文件 我在 info plist 中将 Bundle ID 设置为此 但项目设置中的此配置文件显示为灰色并显示 配置文件与应用程序标
  • Django 教程 - ImproperlyConfigured 异常(未安装 pytz)

    我目前正在 OSX 上使用 1 6 1 版和 2 7 5 版的 python 来完成官方 Django 教程 我正在研究第二部分 即管理界面 当我尝试访问 admin polls poll 时 收到以下错误报告 ImproperlyConf
  • getpaths() 多边形 谷歌地图 API

    我正在尝试检索折线和多边形的纬度坐标 完成任一对象的绘制后 我想将经纬度存储在数据库中 但现在我只是尝试在文本区域中显示经纬度 我已经很容易地完成了标记 矩形和圆形的操作 但是折线和多边形的术语让我感到困惑 当我完成绘图时 我使用 addD
  • 如果元素 id 与搜索参数匹配,如何从 std::vector 中删除元素

    我正在尝试编写一种算法 如果项目 ID 与参数匹配 该算法将搜索项目向量并从项目向量中删除项目 请参阅下面的示例代码 struct item item int newID id newID bool operator const item
  • 如何关闭某些 .py 文件的 Pydev 缩进警告

    我的项目中有一些来自外部源的文件 我从不编辑这些文件 但有时会逐步执行 这些文件使用与我的默认缩进样式不同的缩进样式 2 个空格与 4 个空格 并且我目前对它们发出了许多缩进警告 是否有一种简单的方法可以逐个文件地抑制这些警告 或者指定缩进
  • 我怎样才能拦截从 Java 到 Groovy 的调用——或者轻松地模拟它

    我本来希望使用 groovy 的 invokeMethod 来做到这一点 但事实证明 当您从 Java 调用 Groovy 时 不会调用 invokeMethod 但否则它会完美地工作 我有一个案例 我将 Groovy 类提交给 Java
  • 仅忽略 JSF 中的无效查询参数

    我在用f viewparam捕获 JSF 页面的 GET 请求参数
  • 是否可以自定义区域形状?核心位置

    例如 至少我想要一个正方形 矩形 道路的形状作为我的区域 不它不是 根据文档 目前唯一的区域类是 CLCircularRegion 显然是圆形 和 CLBeaconRegion 基于与 iBeacon 的接近度 未来苹果可能会添加对自定义形
  • 解析没有标记名的 xml

    我有一个 xml 文件
  • 在maven项目之间共享测试资源

    有一个明确的解决方案可以使用以下命令在 Maven 项目之间共享公共测试代码test jar的目标maven jar plugin插件 参见here https stackoverflow com questions 174560 shar
  • 以编程方式缩放 UIWebView,无需手势 - 中心点计算不正确

    问题 我的 iPad 应用程序中有一个 UIWebView 我需要以编程方式缩放它 但不使用手势 点击 该应用程序 有一个 和一个 按钮 用于以用户定义的增量放大和缩小 这是一个针对视障人士的应用程序 以前 当我的应用程序运行时 此 缩放按
  • 将 UTC 日期转换为 PHP 本地时间

    我使用以下方法将 UTC 日期存储到数据库中 utc gmdate M d Y h i s A 然后我想将保存的 UTC 日期转换为客户端的本地时间 我怎样才能做到这一点 Thanks 如果客户端指的是浏览器 那么您首先需要从浏览器将时区名
  • 在 Jenkins 管道脚本中找不到文件

    我正在尝试让当前在 Jenkins master 上运行的管道脚本在远程 Jenkins 节点上执行 但我有一个奇怪的现象FileNotFound例外 我能够重现该问题的最基本版本的管道是这样的 node remoteNode env SE
  • WiX 属性引用另一个属性

    我正在尝试为我的应用程序创建多个快捷方式 通过使用在命令行上传递不同的参数Arguments的属性Shortcut http wix sourceforge net manual wix2 wix xsd shortcut htm元素 我希
  • 如何在 Jetty 中配置 webapps 部署目录

    这一定是一个非常简单的答案 但我似乎找不到 我刚刚开始使用码头7 0 2 on CentOS 5 5并部署了一个webapp使用默认设置 只需将我的 WAR 文件放入 webapps目录 当 Jetty 启动时 它将战争提取到 tmp je
  • 是否可以向 Google Home 设备发送语音通知

    当我们收到一些特定事件但不确定是否支持 可能时 我们希望通过我们的服务向 Google Home 设备发送语音通知 例如 当厨师快准备好时 我们会通知用户 如下所示 嘿 安德 你的饭菜将在 5 分钟内准备好 别忘了把它拿出来 有一些脚本声称
  • 检查包含 URL 的字符串“http://”

    我正在尝试检查用户输入的 URL 但我正在与一些错误和警告作斗争 BOOL textFieldShouldReturn UITextField textField check http NSString check textField te
  • 引起原因:java.lang.NumberFormatException:无效的双精度:“”带有空白值

    当我遇到错误时JSON字符串有一些空白值 从服务器获取 如何处理空白值 这是 JSON status success data id 1 name ABC address ABC QWE lat 16 799999 lng 96 15000
  • 使用 YouTube API 检查视频是否可嵌入

    我试图弄清楚 YouTube 视频是否可以使用 YouTube Data API v3 嵌入 从类似问题的答案中我注意到视频的 status embeddable 属性 对于这样的请求 https www googleapis com yo