werwolfby / monitorrent

Automatic torrents downloader
Do What The F*ck You Want To Public License
504 stars 69 forks source link

Lostfilm not working #379

Closed makar0nin closed 1 year ago

makar0nin commented 1 year ago

С недавних пор стало сыпать на каждой попытке проверить `FAILED Failed while checking for lostfilm.tv Traceback (most recent call last): File "/var/www/monitorrent/monitorrent/plugins/trackers/init.py", line 363, in extract_cloudflare_credentials_and_headers raise CloudflareException('Exception should be thrown by scrapper, but this is not always happened') cloudscraper.exceptions.CloudflareException: Exception should be thrown by scrapper, but this is not always happened

During handling of the above exception, another exception occurred:

Traceback (most recent call last): File "/var/www/monitorrent/monitorrent/engine.py", line 124, in execute tracker.execute(topics, engine_tracker) File "/var/www/monitorrent/monitorrent/plugins/trackers/lostfilm.py", line 783, in execute if not self._execute_login(engine): File "/var/www/monitorrent/monitorrent/plugins/trackers/init.py", line 342, in _execute_login if not self.verify(): File "/var/www/monitorrent/monitorrent/plugins/trackers/lostfilm.py", line 775, in verify return self.tracker.verify() File "/var/www/monitorrent/monitorrent/plugins/trackers/lostfilm.py", line 502, in verify self._update_headers_and_cookies(my_settings_url) File "/var/www/monitorrent/monitorrent/plugins/trackers/lostfilm.py", line 618, in _update_headers_and_cookies headers, cookies = extract_cloudflare_credentials_and_headers(url, self.headers, self.cookies) File "/var/www/monitorrent/monitorrent/plugins/trackers/init.py", line 382, in extract_cloudflare_credentials_and_headers page.wait_for_selector('.left-side > .menu', timeout=timeout) File "/usr/local/lib/python3.9/site-packages/playwright/sync_api/_generated.py", line 6509, in wait_for_selector self._sync( File "/usr/local/lib/python3.9/site-packages/playwright/_impl/_sync_base.py", line 88, in _sync return task.result() File "/usr/local/lib/python3.9/site-packages/playwright/_impl/_page.py", line 360, in wait_for_selector return await self._main_frame.wait_for_selector(**locals_to_params(locals())) File "/usr/local/lib/python3.9/site-packages/playwright/_impl/_frame.py", line 293, in wait_for_selector await self._channel.send("waitForSelector", locals_to_params(locals())) File "/usr/local/lib/python3.9/site-packages/playwright/_impl/_connection.py", line 39, in send return await self.inner_send(method, params, False) File "/usr/local/lib/python3.9/site-packages/playwright/_impl/_connection.py", line 63, in inner_send result = next(iter(done)).result() playwright._impl._api_types.TimeoutError: Timeout 30000ms exceeded. =========================== logs =========================== waiting for selector ".left-side > .menu" to be visible ============================================================`

monitorrent in Docker

werwolfby commented 1 year ago

Аналогично, буду сегодня смотреть. Надеюсь фигня.

werwolfby commented 1 year ago

Не фигня :( На лосте снова clouflare защита от ДДОС. Я вроде как пофиксил, теперь скрипт в браузере нажимает кнопочку я не робот. Но полностью протестить не могу. У меня на распберях не работает :(, локально в Виндоус окей.

Буду пробовать дальше, текущий воркэраунд - это руками пофиксить куки в базе, UI для этого пока не сделан.

В общем посмотрю дальше чуть позже.

makar0nin commented 1 year ago

А подробней можно инструкцию как можно вручную пофиксить ?

werwolfby commented 1 year ago

Ну в принципе 1.2.2 докер справляется с проблемой на ура. Но иногда нужно несколько попыток, так что в конце концов должно быть все окейю

werwolfby commented 1 year ago

https://hub.docker.com/layers/werwolfby/monitorrent/1.2.2/images/sha256-535b85bb005fb0f7cd4d5bdd65ee96331a844abeff9bebd98033ae0f265c076f?context=explore

makar0nin commented 1 year ago

заменил latest на 1.2.2 вроде взлетело

makar0nin commented 1 year ago

кстати вопрос, а чего alpine версию забросили?

werwolfby commented 1 year ago

Потому что под нее не ставится браузер для обхода cloudflare ddos защиты. Все мои попытки были тщетными, проще взять официально поддерживаемый образ для playwright.

Vladikamira commented 1 year ago

у меня на Расберях таже ошибка что и раньше на версии 1.2.2 :( так и должно быть?

werwolfby commented 1 year ago

Возможно, я еще не релизнул полностью 1.2.2 и так как это защита от ДДОС никто не знает как учесть все кейсы, кроме разработчиков cloudflare.

Так что проблема может быть где угодно. Я работаю над этим :)

Скоро будет возможность скачивать видео того как проходил процес обхода защиты. И уже по нему можно будет пытаться решать эти частные случаи.

werwolfby commented 1 year ago

@Vladikamira что и раньше это как? Как тут в топике или что-то еще? У меня на расперях тоже не завелось с первого раза, не уверен в чем именно беда. Но в конце концов с Н попыток прошло. Просто взяло и заработало.

По видео видно странийа 60 секунд проверяет «мой браузер» на безопасность, а потом мы падаем.

Vladikamira commented 1 year ago

@Vladikamira что и раньше это как? Как тут в топике или что-то еще? У меня на расперях тоже не завелось с первого раза, не уверен в чем именно беда. Но в конце концов с Н попыток прошло. Просто взяло и заработало.

Ага, так же как в этом топике. У меня проверка lostfilm.tv каждый час происходит, обновился часов 20 назад - пока не было успешных запросов на образе 1.2.2

tops5 commented 1 year ago

@Vladikamira что и раньше это как? Как тут в топике или что-то еще? У меня на расперях тоже не завелось с первого раза, не уверен в чем именно беда. Но в конце концов с Н попыток прошло. Просто взяло и заработало.

Ага, так же как в этом топике. У меня проверка lostfilm.tv каждый час происходит, обновился часов 20 назад - пока не было успешных запросов на образе 1.2.2

У меня все работает.

iteterin commented 1 year ago

У меня со всеми трекерами беда :( Шлю запросы через прокси. Развернут https://hub.docker.com/layers/werwolfby/monitorrent/1.2.2/images/sha256-535b85bb005fb0f7cd4d5bdd65ee96331a844abeff9bebd98033ae0f265c076f?context=explore

tops5 commented 1 year ago

У меня со всеми трекерами беда :( Шлю запросы через прокси. Развернут https://hub.docker.com/layers/werwolfby/monitorrent/1.2.2/images/sha256-535b85bb005fb0f7cd4d5bdd65ee96331a844abeff9bebd98033ae0f265c076f?context=explore

lostfilm работает после добавления cf_clearance cookie, kinozal работает после исправления http на https в файле kinozal.py, rutracker работает. Другими не пользуюсь.

werwolfby commented 1 year ago

@Vladikamira попробуйте последнюю 1.2.2 теперь должно все быть окей. Как минимум у меня на распери сейчас работает. Плюс если проблема повторится то после включение developer settings в General. Появится новый пункт меню в настройках:

image

Можно скачать видео файл и посмотреть что же там не смогло пройти cloudflare защиту.

Опять же, это все ещё не релиз 1.2.2, но уже довольно близко к этому.

Ну и так же теперь cf_clearance можно руками выставить в настройках, если стащить куки напряму из браузера:

image
werwolfby commented 1 year ago

@iteterin с прокси могут быть проблемы, я это не тистировал на последней версии. Ну и в целом мало тестировал.

Vladikamira commented 1 year ago

@Vladikamira попробуйте последнюю 1.2.2 теперь должно все быть окей. Как минимум у меня на распери сейчас работает. Плюс если проблема повторится то после включение developer settings в General. Появится новый пункт меню в настройках:

image

Можно скачать видео файл и посмотреть что же там не смогло пройти cloudflare защиту.

Опять же, это все ещё не релиз 1.2.2, но уже довольно близко к этому.

Ну и так же теперь cf_clearance можно руками выставить в настройках, если стащить куки напряму из браузера:

image

в общем я не могу проверить наверняка на своем распбери, так как когда я нажимаю Execute lostfilm.tv в UI через минуту мой распбери замирает в IO к диску и я не могу ничего посмотреть что происходит дальше. Память похоже съедается вся (замирает на примерно 90% съеденной памяти)

Screenshot 2023-03-06 at 19 43 45

у меня Pi 3b+ с 1Gb ram, может этого не достаточно для эмуляции браузера и прохождения проверки cloudfalre? Все контейнеры кроме monitorrent я остановил - поидее ничего больше не конкурирует за ресурсы (раньше конечно было много запущено и проблем не было)

cf_clearance я пробовал выставлять - результат такой же: замирает

werwolfby commented 1 year ago

@Vladikamira как выставляли? Прям как написано в виде json?

Т.е. он должен выглядеть вот так вот:

{"cf_clearence": "kF7uXsxcw4aw.ZwkvMff1N0nOHfd1I_ubvZKNE.Qa.Y-1677829618-0-160"}

Я кажется вспомнил что нужно ещё и User-Agent выставлять. Вынесу его в настройки, взять можно из дев тулсов браузера.

werwolfby commented 1 year ago

Ну и для браузера советую включить своп, файрфокс в принципе не должен какпец как дофига есть, так что должно было бы прокатить.

Я могу попозже на своем 3 Пай поиграться.

werwolfby commented 1 year ago

В общем да, на Пай 3 1Гб все просто зависает, но выставление User-Agent и cf_clearence работает как часы:

image

Но поднятие свопа слегка улучшило ситуацию:

image

Хотя бы уже не так сильно зависает.... Своп конечно не резиновый..., но хотябы не намертво зависаем...

image

Пока не съели 2 гига...

werwolfby commented 1 year ago

На 4-м распери в кубике оно не съело больше чем 1.2Гб и все прошло на ура.

Я не думаю что могу сделать большего. Так что пока ишью закрываю, вместе с релизом 1.2.2

@Vladikamira теперь можно вытсавить и агент, как я написал выше. С такими настройками всё бегает просто прекрасно! Даже на Raspberry PI 3 с 1Гб. Если проставить руками все нужные настройки.

werwolfby commented 1 year ago

Я тут таки дождался когда распбери отвиснет, хз сколько часов прошло. Но по видосу ничего интересного не вижно.

Ну и тут я подумал, а может вообще проблема как раз в том что он видео и HAR файл собирает. HAR как бы не страшно, а вот видео может быть трудозатратным.

Потом попробую без видео проранать.

werwolfby commented 1 year ago

@Vladikamira без записи видео всё прошло на ура!

Сейчас пофикшу, чтобы видосы не писались по умолчанию, а только по требованию (если не лень будет).

В общем съело меньше 600Мб, при этом 227 сама система с ГУИ ест. Так что все должно быть хорошо в этот раз.

werwolfby commented 1 year ago

647 в пике было и 45Мб из 100Мб свопа, так что все будет хорошо!

Vladikamira commented 1 year ago

@werwolfby Спасибо за 1.2.3, все теперь проходит с гораздо меньшими ресурсами на pi3 🎉 А то я уже начал думать о покупке pi4 хотя их сейчас проблемно походу найти