Как прорваться через 401 Unauthorized ошибку?

283
01 апреля 2018, 17:19

Пытаюсь скачать кусок трансляции по адресу Live

Получаю ошибку 401. Когда качаю с помощью ffmpeg то все ок, но ffmpeg очень медленный и требует чтоб файл сразу перекодировался. Хочу качать куски вот так:

var url = @"http://mlsh.co:2086/live/jake/jake1/26685.m3u8";
        WebClient webClient = new WebClient();
        webClient.DownloadFile(new Uri(url), @"c:\output.ts");

Как обойти эту ошибку?

Answer 1

Если у вас открывается что то и где то, то надо это приложение изучить, к примеру отловив все его запросы через какую либо программу, к примеру, Fiddler.

Допустим, открываем указанную ссылку в плеере (в моем случае это IP-TV Player), смотрим отправленный запрос (вы их не пропустите, обычно если это поток, то запросов летит куча):

Смотрим заголовки запроса:

GET http://178.132.6.125/live/jak....... HTTP/1.1
Host: 178.132.6.125
User-Agent: VLC/2.2.8 LibVLC/2.2.8
Range: bytes=0-
Connection: close
Icy-MetaData: 1

Обычно этого достаточно для того, что бы получить необходимый доступ, в некоторых случаях доступ может быть скрыт в Cookies, которые мы отправляем серверу.

Давайте попробуем отправить элементарный запрос с подменой User-Agent заголовка:

WebClient client = new WebClient();
client.Headers.Add("user-agent", "VLC/2.2.8 LibVLC/2.2.8");
client.DownloadFile("http://mlsh.co:2086/live/jake/jake1/26685.m3u8", "test.m3u8");

В Fiddler видим два запроса, отправленный нами со статусом 302 (редирект) и 2-ой запрос со статусом 200 (успешно). Проверяем наш скачанный файл и видим, что он успешно получен.

Вот собственно и все, простейшая подмена заголовков открыла нам доступ к необходимому адресу. Удачи!

READ ALSO
Подключение dash replacement service amazon к xamarin forms

Подключение dash replacement service amazon к xamarin forms

Можно ли dash replacement service подключить к проекту xamarin forms ?

202
Программа проходит не все тесты

Программа проходит не все тесты

Есть программа, которая, используя метод ConsoleReadLine(), вводит строку, содержащую три числа через пробел — сумму, процентную ставку (в процентах)...

259
unity общение сервер-клиент

unity общение сервер-клиент

Необходимо чтобы Клиент передавал данные(переменные) Серверу, а Сервер отвечал на запрос

276