1 (изменено: john_dease, 2023-03-13 00:10:27)

Тема: AHK: WinHTTPRequest

Привет! По какой причине страница с содержимым Ютуб-канала не скачивается, хотя указаны все заголовки запроса? В браузере ссылка открывается, как JSON.

*Сайт Piped — это веб-фронтенд для сайта YouTube, который позволяет смотреть видео без подключения к серверам Google и иметь подписки на каналы без учетной записи компании.

;WinHTTP := ComObjCreate("Msxml2.XMLHTTP.6.0")
WinHTTP := ComObjCreate("WinHTTP.WinHttpRequest.5.1")

WinHTTP.Open("GET", "https://pipedapi.kavin.rocks/channel/UC5OrDvL9DscpcAstz7JnQGA", 1)
WinHTTP.SetRequestHeader("User-Agent", "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.198 Safari/537.36")
WinHTTP.SetRequestHeader("path", "https://pipedapi.kavin.rocks/channel/UC5OrDvL9DscpcAstz7JnQGA")
WinHTTP.SetRequestHeader("authority", "pipedapi.kavin.rocks")
WinHTTP.SetRequestHeader("scheme", "https")
WinHTTP.SetRequestHeader("accept", "*/*")
WinHTTP.SetRequestHeader("origin", "https://piped.video")
WinHTTP.SetRequestHeader("sec-fetch-site", "cross-site")
WinHTTP.SetRequestHeader("sec-fetch-mode", "cors")
WinHTTP.SetRequestHeader("sec-fetch-dest", "empty")
WinHTTP.SetRequestHeader("referer", "https://pipedapi.kavin.rocks")
;WinHTTP.SetRequestHeader("accept-encoding", "gzip, deflate, br")
WinHTTP.SetRequestHeader("accept-language", "ru-RU,ru;q=0.9,en-US;q=0.8,en;q=0.7")
;WinHTTP.SetRequestHeader("if-modified-since", "Sun, 12 Mar 2023 19:06:57 GMT")

WinHTTP.SetRequestHeader("Content-Type", "application/json")
WinHTTP.Send()
WinHTTP.WaitForResponse()
MsgBox % WinHTTP.ResponseText

2

Re: AHK: WinHTTPRequest

Может, так:

url := "https://pipedapi.kavin.rocks/channel/UC5OrDvL9DscpcAstz7JnQGA"
Whr := ComObjCreate("WinHttp.WinHttpRequest.5.1")
Whr.Open("GET", url, true)
Whr.Send()
Whr.WaitForResponse()
MsgBox % Whr.ResponseText

?

Разработка AHK-скриптов:
e-mail dfiveg@mail.ru
Telegram jollycoder

3

Re: AHK: WinHTTPRequest

Спасибо! А как вы поняли, что все заголовки надо убрать?

4 (изменено: Malcev, 2023-03-13 11:40:44)

Re: AHK: WinHTTPRequest

Необязательно все заголовки надо убрать.
Просто там тупой cloudflare по-тупому блокирует ботов (определяя chrome из User-Agent).
Например заменив на этот заголовок уже прокатит:

WinHTTP.SetRequestHeader("User-Agent", "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrom/86.0.4240.198 Safari/537.36")

5

Re: AHK: WinHTTPRequest

Malcev пишет:

Необязательно все заголовки надо убрать

А они там нужны? По опыту, если адрес ссылается на json или txt, то если не нужна авторизация, никакие заголовки не требуются.

Разработка AHK-скриптов:
e-mail dfiveg@mail.ru
Telegram jollycoder

6

Re: AHK: WinHTTPRequest

Думаю, что не нужны, я просто написал в чем конкретно причина на этом сайте.