提取前面的 youtube 广告的视频 ID

Extract video id of preceding youtube advertisement

我正在编写一个脚本,用于处理人们必须在观看实际视频之前观看的 YouTube 广告视频。 (开头的这些广告视频只是来自该品牌频道的简单 youtube 视频) 我已经搜索了整个源代码和脚本,但在任何地方都找不到这些广告的视频 ID。肯定在什么地方,不过好像隐藏的不错

有人知道去哪里看吗?

我对你的案例做了一些研究。

如您所知,广告视频的视频 ID 绝对不是初始源代码的一部分。 Youtube 向 http://googleads.g.doubleclick.net/ API 发送 ajax-Request 以获取有关相关广告视频的信息。

如果查看源代码,您会发现很多 javascript 与 google 广告部分相关。通过查看代码,您可以找到 URL 到 API 的路由。看截图,只是摘录:

但不幸的是,您不能简单地复制 url 并向其创建 remote-call。通过这样做,您会收到 400 Bad Request 响应。

据我所知,缺少参数,由 youtube 的 javascript 动态添加。

如果你对比请求,实际上是由youtube发出的,你可以看到发送的参数更多:

相对于请求,即直接从源代码复制:

工作请求的结果如下所示:

我尝试了几种方法来使无效的 API 请求生效,但还没有找到方法。调试 javascript 并不是那么容易,因为它被混淆和缩小了。但另外,变量在函数范围内。所以无论如何,您将无法访问它们。

如果你在 XHR 请求之前创建一个 javascript 断点,你可以看到实际的 API 请求:

但在本地范围内,无法访问。

稍后,甚至还有对 youtube 数据的第二次请求 API 以获取有关广告视频的信息

在我看来,获取视频只有两种方式,都需要javascript到运行。

  1. 在 Javascript 有 运行 之后查看源代码。然后你可以直接从你的标记中获取 id:

  1. 挂钩 Ajax 请求并直接从您的网络流量中获取数据。