setnicka / ulozto-downloader

EOL - end of life | Uloz.to quick multiple sessions downloader
MIT License
279 stars 46 forks source link

ulozto-captcha-breaker #28

Closed EETagent closed 3 years ago

EETagent commented 4 years ago

Zdravím,

díky skvělé práci Jana Paláška máme k dispozici vytrénovaný Tensorflow model, který louská Ulož.to captchy raz dva. https://github.com/JanPalasek/ulozto-captcha-breaker

Pokorný to do svého Vžumu nedávno integroval a funguje to krásně. Zkusil jsem vytvořit hrubý nástřel integrace do ulozto_downloader a funguje to. Stahování filmu z Ulož.to na 101 instancí je nyní možné i na macOS ( Ač se u toho i5 T480 docela zapotil ) :D Otestoval jsem to také na headless Ubuntu 20.04 kontejneru a řeší to #19 Nevýhoda je, že se musí nainstalovat docela objemný Tensorflow package a nefunguje to bez AVX instrukcí. Pokouším se zkompilovat custom verzi s podporou Core2 nebo alespoň Nehalemu, ale moc se mi to nedaří.

stinovlas commented 4 years ago

Skoro si říkám, že by dávalo smysl mít samostatnou službu ulozto-captcha-breaker, která by mohla běžet někde na serveru a přes REST rozhraní poskytovat luštění captcha kódů. Pak by se na tuhle instanci mohlo připojit i více ulozto_downloader instancí bez toho, aby člověk musel lokálně instalovat Tensorflow a jeho závislosti.

Samozřejmě tak, aby si každý mohl rozchodit svou vlastní instanci "louskače", pokud o to stojí. A vzhledem k ulozto_downloader by to pak byla volitelná externí služba, kterou může a nemusí využívat (nastavitelné přes přepínač nebo konfigurační soubor).

EETagent commented 4 years ago

@stinovlas Ano, to je nejlepší volba. V originálním Vžumu to je určitě řešené podobně. Není možné aby se do pár MB aplikace vešel TensorFlow a vytrénovaný model.

stinovlas commented 4 years ago

@stinovlas Ano, to je nejlepší volba. V originálním Vžumu to je určitě řešené podobně. Není možné aby se do pár MB aplikace vešel TensorFlow a vytrénovaný model.

Pokud tomu tak je, tak by možná šlo použít už existující řešení. Co na to @JanPokorny?

JanPokorny commented 4 years ago

@stinovlas Ano, je to přes API spuštěné na Heroku. To není v mojí kompetenci, provozuje ho @JanPalasek.

JanPalasek commented 4 years ago

@EETagent @stinovlas Slo by pravdepodobne pouzit TF Lite nebo jiz zmineny REST API endpoint. Ten svuj zverejnovat nechci.

EETagent commented 4 years ago

@JanPalasek Ano, TF Lite je dobrý nápad, snad to pojede. Online přes API to je lepší, bohužel mě nenapadá jak to vyřešit u open source projektu, aby přístupy nebyly zneužity.

Koticka commented 3 years ago

@EETagent @stinovlas @setnicka Ahoj, tak zprovoznil jsem automatické čtení captcha přes TF Lite, vytvořil jsem pull request #32. TF Lite model je, pokud to je potřeba, automaticky stáhnut z releasu ulozto-captcha-breakeru.

Výhodou TF Lite je, že je malé. Jeho problémem je, že se instaluje pro konkrétní verzi Pythonu a operačního systému. Je teda v současnosti potřeba z https://www.tensorflow.org/lite/guide/python manuálně najít správnou verzi. Toto by se dalo případně vypodmínkovat v nějakém instalačním skriptu, do toho se mi nechtělo.

setnicka commented 3 years ago

Solved by #32