我尝试使用 Internet Download Manager 下载视频,但失败了

我尝试使用 Internet Download Manager 下载视频,但失败了

我想下载这个视频 -http://animax.mn:12000/?media=rencoded/op/one_piece503.mp4

以下是包含类似视频的页面链接。我尝试使用网络下载管理器,但失败了,如下图所示

Internet Download Manager 失败截图

是否可以保存此视频以供离线观看?请帮帮我。谢谢。

答案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 中注册Pathcurl.exe位于官方 Windows 版本的Szakats 版本bin文件夹中)。

获取 Cookies

您可以使用浏览器通过现代 Chromium 风格浏览器(Firefox、Chrome、Opera 等)附带的开发人员控制台获取必要的 CSRF 令牌和 Laravel 会话 ID,以便与 cURL(或您选择的任何程序)一起使用。作为额外的好处,通过执行以下步骤,您还可以获得基本的 cURL 命令...

“复制为 cURL”步骤:

  1. 正常登录网站。

  2. 转至视频页面 (比如你问题中这个链接里列出的其中一个)。

  3. F12(或Opera 中的Ctrl+ Shift+ I)打开开发者控制台并选择网络选项。为了方便使用,我还建议您单击小在单独的窗口中显示图标(最右边)将控制台与主浏览器窗口分开。

前任。 网络选项和独立控制台 开发者控制台网络和对接选项

  1. 重新加载视频页面,但不要关闭控制台。控制台将捕获与页面相关的网络流量,包括 HTTP得到请求例如http://animax.mn:12000/?media=rencoded/op/one_piece503.mp4 (显示为GET /?media=rencoded/op/one_piece503.mp4)。

  2. 将会有大量的GET请求,因此你可能需要使用媒体子选项。您可以通过选择饼干请求的选项GET

前任。 媒体过滤和 Cookie 预览 开发者控制台媒体过滤器和 Cookie 选项

  1. 右键单击相应的GET请求并选择复制为 cURL菜单选项(可能复制为 cURL (cmd)在 Chrome 中)。将生成的命令粘贴到记事本或类似程序中(它将不是提前显示)。

前任。 复制为 cURL - Firefox 开发人员控制台将 GET 请求复制为 Curl

有了视频链接,我并没有遇到任何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 和您选择的站点的里程可能会有所不同......


相关内容