提取前一个youtube广告的视频ID

时间:2015-01-12 19:03:49

标签: youtube youtube-api ads

我正在编写一个脚本,其中包含人们在实际视频之前必须观看的YouTube广告视频。 (这些广告一开始只是来自品牌频道的简单YouTube视频) 我搜索了整个源代码和脚本,但我无法在任何地方找到这些广告的视频ID。它必须在某个地方,但似乎隐藏得很好。

任何人都知道在哪里看?

1 个答案:

答案 0 :(得分:1)

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

广告视频的视频ID绝对不是初始源代码的一部分,正如您已经想到的那样。 Youtube向http://googleads.g.doubleclick.net/ API发出ajax请求,以获取有关相关广告视频的信息。

如果您查看源代码,可以看到许多与Google广告部分相关的JavaScript。通过查看代码,您可以找到API的URL路由。看截图,它只是一个摘录:

enter image description here

但遗憾的是,你不能简单地复制网址并对其进行远程调用。通过这样做,您将获得400 Bad Request响应。

正如我所知,有缺失的参数,由youtube的javascript动态添加。

如果您比较请求,实际上是由youtube进行的,您可以看到发送了更多参数:

enter image description here

与请求相比,直接从源代码复制:

enter image description here

工作请求的结果如下所示: enter image description here

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

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

enter image description here

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

稍后,甚至会向youtube数据API发送第二个请求以获取有关广告视频的信息

enter image description here

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

  1. 查看Javascript运行后的源代码。然后,您可以直接从您的标记中获取ID:
  2. enter image description here

    1. 连接到Ajax请求并直接从网络流量中获取数据。