我正在写一个脚本,它与youtube上的广告视频有关,人们必须先看这些视频,然后才能看到实际的视频。(这些广告一开始只是该品牌频道上简单的youtube视频),我搜索了所有的源代码和脚本,但我在任何地方都找不到这些广告的视频id。它肯定在某个地方,但它似乎隐藏得很好。
有人知道去哪找吗?
发布于 2015-01-19 13:19:37
我对你的案子做了调查。
广告视频的视频id绝对不是初始源代码的一部分,正如您已经知道的那样。Youtube向http://googleads.g.doubleclick.net/ API发出ajax请求,以获取有关广告视频的信息。
如果您查看源代码,您可以看到大量与google部分相关的javascript。通过查看代码,您可以找到指向API的URL路由。请看截图,这只是一段节选:

但不幸的是,您不能简单地复制url并对其进行远程调用。这样做,您将得到一个400坏的请求响应。
据我所知,有一些缺失的参数,由youtube的javascript动态添加。
如果您比较一下youtube发出的请求,就会发现发送的params更多:

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

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

我尝试了几种方法来使无效的API请求工作,但没有找到一种方法。调试javascript并不那么容易,因为它被混淆和缩小了。但是另外,变量在函数中的作用域。所以无论如何,你都无法接触到它们。
如果在XHR请求之前设置javascript断点,则可以看到实际的API请求:

但它在本地范围内,无法访问它。
稍后,还会向youtube数据API第二次请求获取有关广告视频的信息。

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

https://stackoverflow.com/questions/27908964
复制相似问题