使用wget下载包含视频的整个网站

时间:2017-03-22 21:53:34

标签: linux video wget vimeo

我一直在使用wget下载网站,但如果网站上有来自youtube,vimeo或其他网站的视频,我会遇到一些麻烦。

我似乎也无法摆脱这些广告。

我目前想要获得的网站是: https://www.ctrlpaint.com

我只是暂时需要它,因为我必须在没有互联网的地方工作。因此,我不想轻而易举地从vimeo下载所有视频。

感谢您的帮助,如果您需要更高的精确度,或者您希望我尝试任何事情,请告诉我。

我正在使用gentoo。

我使用的命令是:

$ wget \ --recursive \ --no-clobber \ --page-requisites \ --html-extension \ --convert-links \ --restrict-file-names=windows \ --domains website.org \ --no-parent \ website_to download

它给我留下了完整的网站,但看起来要连接到互联网上播放视频。

2 个答案:

答案 0 :(得分:1)

视频未下载的原因是因为它们不是单个文件,而是多个文件或块的流。

Vimeo或YouTube等网站最有可能使用DASH或HLS,这些都是HTTP视频流。这要求您与其中一个玩家一起打开视频。在向服务器发出视频的初始请求后,服务器会发回一个清单文件,其中包含电影块的所有链接列表。从那里播放器将发送对每个电影块的后续请求。

使用wget或curl时,服务器拒绝您访问清单或块,因为您需要一些要求和auth才能访问这些文件。玩家会照顾所有这些,这就是为什么你必须使用他们的一个玩家。

您可能需要可以下载YouTube视频的应用。我很确定你能找到一些选择。

祝你好运!

答案 1 :(得分:0)

这是因为视频是在不同的主机上,我想。

工作

wget -H -r --level=1 -k -p --no-clobber https://www.ctrlpaint.com/

-H选项包括其他主机。话虽这么说,这里的视频主机是vimeo,当我尝试它时,他们检测到wget用户代理并拒绝实际发送视频。

顺便说一句,这种事情通常被认为是不好的形式,因为你镜像的主机必须为带宽付费。 (事实上​​可能拒绝满足某些请求,发送过多请求错误响应。)