Я пытался загрузить видео с помощью Internet Download Manager, но он не удался

624
Optimistic Sythapilla

Я хочу скачать это видео - http://animax.mn:12000/?media=rencoded/op/one_piece503.mp4

Вот ссылка на страницу с похожими видео . Я пытался загрузить видео с помощью Internet Download Manager, но это не удалось, как показано на этом скриншоте

Internet Download Manager Failed Screenshot

Можно ли сохранить это видео для просмотра в автономном режиме? Пожалуйста, помогите мне. Благодарю.

-6

1 ответ на вопрос

1
Anaksunaman

Проблема, с которой вы, вероятно, сталкиваетесь, заключается в том, что сайт использует специальные файлы cookie, которые Internet Download Manager, вероятно, не отправляет. В частности, они включают в себя токен CSRF для защиты от атак подделки межсайтовых запросов и идентификатор сеанса Laravel PHP Framework . Они должны быть переданы с запросом на файл, или запрос будет отклонен.

Чтобы скачать видео, вы можете:

  • Посмотрите, есть ли возможность включить эти или иным образом добавить куки в Internet Download Manager.

  • Используйте другой инструмент, который может загружать файлы, а также обрабатывать файлы cookie (например, cURL ).

Предполагая, что Internet Download Manager не поддерживает какие-либо дополнительные параметры, помогающие загрузить это видео, вы можете попробовать основные инструкции для cURL, которые я приведу ниже.


Получение CURL

cURL можно скачать с его официальной страницы загрузки . Сборки Windows находятся в самом низу. Синие номера версий указывают на соответствующие файлы для загрузки. Синие личные имена обычно приводят в другом месте.

В качестве предложения вы можете использовать одну из текущих (на момент написания статьи) сборок v7.59.0 Виктора Шакаца (либо версию Win32, либо Win64, в зависимости от ситуации).

После загрузки просто разархивируйте файл и поместите содержимое в постоянную папку по вашему выбору. Чтобы избежать необходимости использовать полный путь при curl.exeкаждом использовании cURL, вы, вероятно, захотите зарегистрироваться curl.exeв своей Windows Path( curl.exeнаходится в binпапке для сборок Szakats).

Получение Cookies

Скорее всего, вы можете использовать свой браузер, чтобы получить необходимый токен CSRF и идентификатор сеанса Laravel для использования с cURL (или любой другой программой, которую вы выберете) через консоль разработчика, включенную в современные браузеры в стиле Chromium (Firefox, Chrome, Opera и т. Д.). В качестве дополнительного преимущества, следуя приведенным ниже инструкциям, вы также можете получить основную команду cURL ...

"Копировать как cURL" Шаги:

  1. Войдите на сайт как обычно.

  2. Перейдите на страницу видео ( например, одну из перечисленных в этой ссылке из вашего вопроса ).

  3. Нажмите F12(или Ctrl+ Shift+ Iв Opera), чтобы открыть консоль разработчика и выбрать опцию « Сеть» справа. Для удобства использования я бы также предложил вам щелкнуть небольшой значок Показать в отдельных окнах (справа), чтобы отделить консоль от основного окна браузера.

    ех. Сетевая опция и отдельная консоль Developer's Console Network And Docking Options

  4. Перезагрузите страницу видео, но не закрывайте консоль. Консоль будет захватывать сетевой трафик, связанный со страницей, включая HTTP- запрос GET, например, для http://animax.mn:12000/?media=rencoded/op/one_piece503.mp4 (который будет отображаться как GET /?media=rencoded/op/one_piece503.mp4).

  5. Будет большое количество GETзапросов, поэтому вы, вероятно, захотите отфильтровать их с помощью субопции Media . Вы можете просмотреть куки, выбрав опцию CookiesGET запроса.

    ех. Фильтрация медиа и предварительный просмотр cookie Developer's Console Media Filter and Cookie Options

  6. Щелкните правой кнопкой мыши соответствующий GETзапрос и выберите пункт меню « Копировать как cURL» (скорее всего « Копировать как cURL (cmd)» в Chrome). Вставьте полученную команду в Блокнот или аналогичный (она не будет отображаться заранее).

    ех. Копировать как cURL - Firefox Developer's Console Copying GET Request As Curl

С предоставленными ссылками на видео у меня не было никаких проблем с GETзапросами, появляющимися немедленно. Однако, если параметр « Фильтр мультимедиа» не задан, следует использовать значок « Очистить» (Trashcan) на консоли слева, а затем нажать кнопку «Воспроизвести» на медиаплеере в главном окне (где видео отображается нормально). Это должно сделать любой соответствующий GETзапрос (ы) для рассматриваемого медиа файла (ов).

Проверка запроса cURL

Скопированный текст должен выглядеть примерно так:

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" Принять: видео / вебм, видео / ogg, видео / ; q = 0,9, приложение / ogg; q = 0,7, аудио / ; q = 0,6, /; Д = 0,5" -H "Accept-Language: EN-US, еп; Q = 0,5" -h "Диапазон: байт = 0." -H «Cookie: XSRF-ЗНАК = eyJpdiI6IkE0WlRudGtmdUlhQWRUTUFndkFPelE9PSIsInZhbHVlIjoiXC95dmFPeGdkWTN6QmZTamNXTUF0MFJOSitHWXdxOE1kRHRQeGVHWURmbVRuWG4zU0lFSW5IZEVpcFwvYzlQandDeUd4cGlkUzVtZk1PaEs2dzRoaDlRUT09IiwibWFjIjoiMDdjNjNmYTFhOWM5MzhlYmFjNTk5ZmRmNzNiN2IxYTc2ZWJlOWM3MjVlZDM5YWY4ZDQxYTdmMjNjNzNjOWI3MCJ9; laravel_session = eyJpdiI6IjN0VTlEQStvdyt0NXdMeDdTaUhJOUE9PSIsInZhbHVlIjoibXhMQ1dLMFl3M0FUSTlIKzVxcjRqTnpncFFJRGhrZktCaThKeHZxRXRmU1M5VXFWSjR0bjJIKzRHWE1VWFpxNUp3QTNZSW1ZXC9vaW1DaEdGU0k2dCtRPT0iLCJtYWMiOiI0YzYxOTI3ZjRiZTYzZGNkZmZkZmY1YjhjOWMzZGJmM2I1N2EyMjE4ODU1ODkwMGRmYjFhOThjOWZlNmRiZDhkIn0 3D "%"; wh-widget-cookie = 1 "-H" DNT: 1 "-H" Соединение: keep-alive "

Если вам нужен только токен CSRF и идентификатор сеанса Laravel, вы можете удалить большую часть скопированной команды, оставив только, например:

"XSRF-ЗНАК = eyJpdiI6IkE0WlRudGtmdUlhQWRUTUFndkFPelE9PSIsInZhbHVlIjoiXC95dmFPeGdkWTN6QmZTamNXTUF0MFJOSitHWXdxOE1kRHRQeGVHWURmbVRuWG4zU0lFSW5IZEVpcFwvYzlQandDeUd4cGlkUzVtZk1PaEs2dzRoaDlRUT09IiwibWFjIjoiMDdjNjNmYTFhOWM5MzhlYmFjNTk5ZmRmNzNiN2IxYTc2ZWJlOWM3MjVlZDM5YWY4ZDQxYTdmMjNjNzNjOWI3MCJ9; laravel_session = eyJpdiI6IjN0VTlEQStvdyt0NXdMeDdTaUhJOUE9PSIsInZhbHVlIjoibXhMQ1dLMFl3M0FUSTlIKzVxcjRqTnpncFFJRGhrZktCaThKeHZxRXRmU1M5VXFWSjR0bjJIKzRHWE1VWFpxNUp3QTNZSW1ZXC9vaW1DaEdGU0k2dCtRPT0iLCJtYWMiOiI0YzYxOTI3ZjRiZTYzZGNkZmZkZmY1YjhjOWMzZGJmM2I1N2EyMjE4ODU1ODkwMGRmYjFhOThjOWZlNmRiZDhkIn0" % "3D"

Обратите внимание, что вы должны иметь возможность безопасно удалить ; wh-widget-cookie=1"часть в конце файлов cookie, как показано выше (этот последний файл cookie не требуется для соединений через cURL). Однако будьте внимательны и сохраняйте двойные кавычки вокруг файлов cookie, если только вы не решите, что они на самом деле не нужны.

Загрузка с помощью cURL

Таким образом, команда, которую вы изначально скопировали, содержит (почти) все данные, необходимые для запроса, например, http://animax.mn:12000/?media=rencoded/op/one_piece503.mp4 . Вам просто нужно добавить -Oопцию вывода (captial oh) сразу после curlи правильный URL (при необходимости), например:

curl -O " http://animax.mn:12000/?media=rencoded/op/one_piece503.mp4 " -H "Хост: animax.mn:12000" [...] -H "Соединение: поддерживать связь"

(Для ясности, эллипсы [...]- это просто мое сокращение - вы бы включили полный оставшийся текст скопированной команды, показанный ранее).

Затем можно (надеюсь) запустить эту команду cURL из командной строки, чтобы загрузить видео.

Сокращение команды

В этом случае команда cURL по умолчанию имеет много посторонних частей. Если вы чувствуете необходимость, команду cURL можно сократить, например, до:

локон -O http://animax.mn:12000/?media=rencoded/op/one_piece503.mp4 -r 0- --cookie "XSRF-ЗНАК = eyJpdiI6IkE0WlRudGtmdUlhQWRUTUFndkFPelE9PSIsInZhbHVlIjoiXC95dmFPeGdkWTN6QmZTamNXTUF0MFJOSitHWXdxOE1kRHRQeGVHWURmbVRuWG4zU0lFSW5IZEVpcFwvYzlQandDeUd4cGlkUzVtZk1PaEs2dzRoaDlRUT09IiwibWFjIjoiMDdjNjNmYTFhOWM5MzhlYmFjNTk5ZmRmNzNiN2IxYTc2ZWJlOWM3MjVlZDM5YWY4ZDQxYTdmMjNjNzNjOWI3MCJ9; laravel_session = eyJpdiI6IjN0VTlEQStvdyt0NXdMeDdTaUhJOUE9PSIsInZhbHVlIjoibXhMQ1dLMFl3M0FUSTlIKzVxcjRqTnpncFFJRGhrZktCaThKeHZxRXRmU1M5VXFWSjR0bjJIKzRHWE1VWFpxNUp3QTNZSW1ZXC9vaW1DaEdGU0k2dCtRPT0iLCJtYWMiOiI0YzYxOTI3ZjRiZTYzZGNkZmZkZmY1YjhjOWMzZGJmM2I1N2EyMjE4ODU1ODkwMGRmYjFhOThjOWZlNmRiZDhkIn0" % "3D" -H «соединения: держать-жив»

В качестве быстрого пункта, он -r 0-занимает место -H "Range: bytes=0-(в данном случае, Range:заголовок является единственным другим компонентом исходного URL, необходимого для cURL, помимо данных файлов cookie).

Заметки

  • Я не обнаружил ошибок, связанных с повторным использованием одних и тех же файлов cookie для нескольких видео в течение одного сеанса. Однако учтите, что выход из системы / вход в систему изменит куки-файлы, и вам придется выполнять описанные мной шаги, чтобы собирать их каждый раз, когда вы это делаете.

  • Вы можете отключить антивирус и т. Д. (Временно) для загрузки

  • Вероятно, нет необходимости держать окно браузера https://animax.mn открытым, но я бы просто хотел выйти из системы после этого (или, возможно, повторно войти в систему). В противном случае неясно, каковы критерии обработки сеанса для сайта.

  • Вы можете (почти?) Взять те же куки-файлы из первоначального POSTзапроса на вход в систему, но, возможно, с этим возникли небольшие, неподтвержденные проблемы (поэтому я рекомендую брать их непосредственно из GETзапроса).

  • Вы, вероятно, захотите быть осторожным с копированием файлов cookie. Они могут быть немного громоздкими при обычных операциях вырезания / вставки.


Оптимизм против пессимизма

«Оптимист заявляет, что мы живем в лучшем из всех возможных миров, и пессимист опасается, что это правда».

К сожалению, во время тестирования этого ответа мне не удалось полностью загрузить любое видео (хотя частичная загрузка работала до того момента, когда они были сломаны). Я подозреваю, что плохое сетевое соединение и (возможно) плохой дизайн сайта привели к прерванным загрузкам (случайным образом я столкнулся с несколькими ошибками PHP, не связанными с cURL, только просматривая сайт).

Таким образом, ваш пробег в cURL и выбранный вами сайт могут отличаться ...