我想下载这个视频 -http://animax.mn:12000/?media=rencoded/op/one_piece503.mp4
以下是包含类似视频的页面链接。我尝试使用网络下载管理器,但失败了,如下图所示
是否可以保存此视频以供离线观看?请帮帮我。谢谢。
答案1
请注意,该网站(http://animax.mn
)似乎自 2021 年 6 月起已停止运营)
您可能遇到的问题是该网站使用特殊的 cookie,而 Internet Download Manager 可能不会发送这些 cookie。具体来说,这些 cookie 包括一个 CSRF 令牌,用于防止跨站请求伪造 袭击和Laravel PHP 框架会话 ID。这些需要与文件请求一起传输,否则请求将被拒绝。
要下载视频,您可以:
看看是否有选项可以包含这些内容,或者以其他方式将 cookie 添加到 Internet Download Manager。
使用其他可以下载文件并处理 Cookie 的工具(例如卷曲)。
假设 Internet Download Manager 不支持任何其他选项来帮助下载此视频,您可以尝试下面给出的 cURL 基本说明。
获取 cURL
cURL 可以从其官方下载页面。Windows 版本位于最底部附近。蓝色版本号链接到要下载的相应文件。蓝色个人姓名通常会引导您前往其他地方。
建议您使用 Viktor Szakats 当前版本(撰写本文时)v7.59.0 之一(Win32 或 Win64 版本,视情况而定)。
更新:
Viktor Szakats 的构建显然已被取代cURL 的官方 Windows 版本(仍然推荐并可用于 32 位/64 位版本)。
下载后,只需解压文件并将内容放在您选择的永久文件夹中。为了避免curl.exe
每次使用 cURL 时都必须使用完整路径,您可能需要curl.exe
在 Windows 中注册Path
(curl.exe
位于官方 Windows 版本的Szakats 版本bin
文件夹中)。
获取 Cookies
您可以使用浏览器通过现代 Chromium 风格浏览器(Firefox、Chrome、Opera 等)附带的开发人员控制台获取必要的 CSRF 令牌和 Laravel 会话 ID,以便与 cURL(或您选择的任何程序)一起使用。作为额外的好处,通过执行以下步骤,您还可以获得基本的 cURL 命令...
“复制为 cURL”步骤:
正常登录网站。
转至视频页面 (比如你问题中这个链接里列出的其中一个)。
按F12(或Opera 中的Ctrl+ Shift+ I)打开开发者控制台并选择网络选项。为了方便使用,我还建议您单击小在单独的窗口中显示图标(最右边)将控制台与主浏览器窗口分开。
重新加载视频页面,但不要关闭控制台。控制台将捕获与页面相关的网络流量,包括 HTTP得到请求例如http://animax.mn:12000/?media=rencoded/op/one_piece503.mp4 (显示为
GET /?media=rencoded/op/one_piece503.mp4
)。将会有大量的
GET
请求,因此你可能需要使用媒体子选项。您可以通过选择饼干请求的选项GET
。
- 右键单击相应的
GET
请求并选择复制为 cURL菜单选项(可能复制为 cURL (cmd)在 Chrome 中)。将生成的命令粘贴到记事本或类似程序中(它将不是提前显示)。
有了视频链接,我并没有遇到任何GET
请求立即出现的问题。但是,如果媒体过滤选项为空,您应该使用控制台清除(垃圾桶)图标,然后按主窗口(视频正常显示的位置)中媒体播放器的“播放”按钮。这样应该会GET
出现针对相关媒体文件的任何适当请求。
检查 cURL 请求
您复制的文本应类似于以下内容:
卷曲http://animax.mn:12000/?media=rencoded/op/one_piece001.mp4-H“主机:animax.mn:12000”-H“用户代理:Mozilla/5.0 (Windows NT 6.1; WOW64; rv:54.0) Gecko/20100101 Firefox/54.0”-H“接受:video/webm、video/ogg、video/;q=0.9,应用程序/ogg;q=0.7,音频/;q=0.6,/;q=0.5" -H "接受语言: en-US,en;q=0.5" -H "范围: bytes=0-" -H "Cookie: XSRF-TOKEN=eyJpdiI6IkE0WlRudGtmdUlhQWRUTUFndkFPelE9PSIsInZhbHVlIjoiXC95dmFPeGdkWTN6QmZTamNXTUF0MFJOSitHWXdxOE1kRHRQeGVHWURmbVRuWG4zU0lFSW5IZEVpcFwvYzlQandDeUd4cGlkUzVtZk1PaEs2dzRoaDlRUT09IiwibWFjIjoiMDdjNjNmYTFhOWM5MzhlYmFjNTk5ZmRmNzNiN2IxYTc2ZWJlOWM3MjVlZDM5YWY4ZDQxYTdmMjNjNzNjOWI3MCJ9; laravel_session=eyJpdiI6IjN0VTlEQStvdyt0NXdMeDdTaUhJOUE9PSIsInZhbHVlIjoibXhMQ1dLMFl3M0FUSTlIKzVxcjRqTnpncFFJRGhrZktCaThKeHZxRXRmU1M5VXFWSjR0bjJIKzRHWE1VWFpxNUp3QTNZSW1ZXC9vaW1DaEdGU0k2dCtRPT0iLCJtYWMiOiI0YzYxOTI3ZjRiZTYzZGNkZmZkZmY1YjhjOWMzZGJmM2I1N2EyMjE4ODU1ODkwMGRmYjFhOThjOWZlNmRiZDhkIn0"%"3D; wh-widget-cookie=1” -H “DNT:1” -H “连接:保持活动”
如果您只需要 CSRF 令牌和 Laravel 会话 ID,则可以消除大部分复制的命令,只留下例如:
“XSRF-TOKEN=eyJpdiI6IkE0WlRudGtmdUlhQWRUTUFndkFPelE9PSIsInZhbHVlIjoiXC95dmFPeGdkWTN6QmZTamNXTUF0MFJOSitHWXdxOE1kRHRQeGVHWURmbVRuWG4zU0lFSW5IZEVpcFwvYzlQandDeUd4cGlkUzVtZk1PaEs2dzRoaDlRUT09IiwibWFjIjoiMDdjNjNmYTFhOWM5MzhlYmFjNTk5ZmRmNzNiN2IxYTc2ZWJlOWM3MjVlZDM5YWY4ZDQxYTdmMjNjNzNjOWI3MCJ9; laravel_session=eyJpdiI6IjN0VTlEQStvdyt0NXdMeDdTaUhJOUE9PSIsInZhbHVlIjoibXhMQ1dLMFl3M0FUSTlIKzVxcjRqTnpncFFJRGhrZktCaThKeHZxRXRmU1M5VXFWSjR0bjJIKzRHWE1VWFpxNUp3QTNZSW1ZXC9vaW1DaEdGU0k2dCtRPT0iLCJtYWMiOiI0YzYxOTI3ZjRiZTYzZGNkZmZkZmY1YjhjOWMzZGJmM2I1N2EyMjE4ODU1ODkwMGRmYjFhOThjOWZlNmRiZDhkIn0"%"3D"
请注意,您应该能够安全地删除; wh-widget-cookie=1"
cookie 末尾的部分,如上所示(对于通过 cURL 进行的连接,最后一个 cookie 似乎不是必需的)。但请注意,除非您确定它们实际上不需要,否则请保留 cookie 周围的双引号。
使用 cURL 下载
照原样,您最初复制的命令几乎包含发出请求所需的所有数据,例如http://animax.mn:12000/?media=rencoded/op/one_piece503.mp4。您只需要-O
在后面添加(大写哦)输出选项curl
和正确的 URL(根据需要)例如:
curl -O "http://animax.mn:12000/?media=rencoded/op/one_piece503.mp4" -H "主机:animax.mn:12000" [...] -H "连接:保持活动"
(需要明确的是,省略号[...]
只是我的简写——您可以包括前面显示的复制命令的完整剩余文本)。
然后您可以(希望)从命令行运行此 cURL 命令来下载视频。
缩短命令
在这种情况下,默认的 cURL 命令有很多多余的部分。如果您觉得有必要,可以将 cURL 命令缩短为例如:
卷曲-Ohttp://animax.mn:12000/?media=rencoded/op/one_piece503.mp4-r 0- --cookie “XSRF-TOKEN=eyJpdiI6IkE0WlRudGtmdUlhQWRUTUFndkFPelE9PSIsInZhbHVlIjoiXC95dmFPeGdkWTN6QmZTamNXTUF0MFJOSitHWXdxOE1kRHRQeGVHWURmbVRuWG4zU0lFSW5IZEVpcFwvYzlQandDeUd4cGlkUzVtZk1PaEs2dzRoaDlRUT09IiwibWFjIjoiMDdjNjNmYTFhOWM5MzhlYmFjNTk5ZmRmNzNiN2IxYTc2ZWJlOWM3MjVlZDM5YWY4ZDQxYTdmMjNjNzNjOWI3MCJ9; laravel_session=eyJpdiI6IjN0VTlEQStvdyt0NXdMeDdTaUhJOUE9PSIsInZhbHVlIjoibXhMQ1dLMFl3M0FUSTlIKzVxcjRqTnpncFFJRGhrZktCaThKeHZxRXRmU1M5VXFWSjR0bjJIKzRHWE1VWFpxNUp3QTNZSW1ZXC9vaW1DaEdGU0k2dCtRPT0iLCJtYWMiOiI0YzYxOTI3ZjRiZTYzZGNkZmZkZmY1YjhjOWMzZGJmM2I1N2EyMjE4ODU1ODkwMGRmYjFhOThjOWZlNmRiZDhkIn0"%"3D" -H "连接:保持活动"
简单来说,-r 0-
取代-H "Range: bytes=0-
(在这种情况下,Range:
除了给定的 cookie 之外,标题是 cURL 所需的原始 URL 的唯一其他组件)。
笔记
我没有遇到在同一会话中对多个视频重复使用相同 cookie 的错误。但是,请注意,注销/登录将更改 cookie,每次执行这些操作时,您都必须执行我概述的步骤来重新收集它们。
您可能需要暂时禁用防病毒软件等以进行下载
也许没有必要保留https://animax.mn浏览器窗口打开,但我只是想在完成后注销(或可能重新登录)。否则,似乎不清楚该站点的会话处理标准通常是什么。
您可以从初始登录请求中获取(几乎?)相同的 cookie
POST
,但似乎可能存在一些未经证实的小问题(这就是我建议直接从请求中获取它们的原因GET
)。复制 cookie 时可能需要小心谨慎。使用常规剪切/粘贴操作可能会有点麻烦。
乐观与悲观
“乐观主义者宣称我们生活在最好的世界中;而悲观主义者担心这是真的。”
不幸的是,在测试这个答案时,我无法完全地下载任何视频(尽管部分下载在中断之前确实可以正常工作)。我怀疑网络连接不良和(可能)网站设计不良导致下载中断(据传,我在浏览网站时遇到了几个与 cURL 无关的 PHP 错误)。
因此,您使用 cURL 和您选择的站点的里程可能会有所不同......