Code Monkey home page Code Monkey logo

ulozto-downloader's Introduction

Ulož.to downloader

Paralelní stahovač z Ulož.to inspirovaný Vžum (credits to Popcorn) s automatickým louskáním CAPTCHA kódů pomocí TensorFlow modelu z projektu ulozto-captcha-breaker (credits to Jan Palasek).

Narozdíl od originálního Vžum je tato verze napsaná v Pythonu, dá se provozovat jednoduše i na Linuxu a zdrojový kód je veřejně dostupný, což umožňuje další forky a rozšíření do budoucna. Například by mohla vzniknout "serverová" verze s webovým rozhraním.

Nápady na další vylepšení (případně rovnou pull requesty) vítány :-)

Klíčové vlastnosti

  • Sám pozná downloady, kde Ulož.to umožňuje stahovat bez CAPTCHA kódů
  • Dokáže přečíst sám CAPTCHA kódy díky projektu ulozto-captcha-breaker (thx Jan Palasek)
    • Louská kódy pomocí natrénovaného TensorFlow modelu
  • Download linky získává přes Tor, aby se vyhnul nové limitaci ze strany Uloz.to
  • Umí opakovaně využít stejný stahovací link pro více částí
    • Ulož.to nyní (podzim 2020) umožňuje získat jen dva stahovací linky za minutu, ale stejný link je možné používat po dostahování původní části opakovaně pro stahování dalších částí
  • Umí navazovat přerušená stahování (pokud se zachová stejný počet částí)
  • Nyní stahuje přímo do jednoho souboru, místo dělení na části a potom spojování
  • Konzolový status panel se statistikou úspěšnosti při získávání linků
  • Celkový průběh staženo / okamžitá rychlost stahování ve druhém řádku status panelu (save progress monitor)
  • Cache soubor download linků pro pokračování nebo opětovné stažení, po restartu se bez nového získávání download linků rovnou stahuje a nové download linky se získávají jen když jich není v cache souboru dostatek. Vytváří malý textový soubor .ucache jenž je možné použít znovu a stahovat maximální rychlostí ihned bez získávání linků. Tento soubor má malou velikost a lze ho např. sdílet. U velkých souborů (100ky MB) je platnost linku 48 hodin.

Instalace

Nejjednodušší je využít verzi uveřejněnou na PyPi:

$ pip3 install --upgrade ulozto-downloader

Toto instaluje všechny dependence vyjma TensorFlow Lite pro automatické louskání CAPTCHA kódů (protože repozitář PyPI zakazuje přímé URL dependence).

Instalace TORu

Program vyžaduje spustitelný tor, protože používá stem a očekává ho v $PATH.

Instalace TensorFlow Lite (automatické louskání CAPTCHA)

Na stránce TensorFlow Lite si v tabulce vyberte správnou verzi podle vašeho systému a verze Pythonu (zjistíte zavoláním python3 -V), zkopírujte URL a instalujte pomocí:

$ pip3 install <URL>
# Například tedy pro Python 3.8 na x86-64 Linuxu:
$ pip3 install https://github.com/google-coral/pycoral/releases/download/release-frogfish/tflite_runtime-2.5.0-cp38-cp38-linux_x86_64.whl

Na linuxu je mozné pro novější python 3.9.x zkompilovat tflite_runtime-2.6.0-cp39-cp39-linux_x86_64.whl a pak nainstalovat pomocí:

pip install tflite_runtime-2.6.0-cp39-cp39-linux_x86_64.whl

Tento soubor pro python 3.9, linux x86-64 a GLIBC_2.33 je nyní také součástí repozitáře. Pokud potřebujete starší verzi GLIBC (například pro Debian), tak můžete zkusit následovat postup v google-coral/pycoral#6

Instalace Tkinter (ruční opisování CAPTCHA)

Potřebujete na systému instalovaný Tkinter (bohužel není na PyPI, takže je potřeba instalovat ručně).

Často už je instalovaný, ale pokud by náhodou nebyl, tak bývá v balíčku python3-tk (případně následujte instrukce na webu Tk).

Použití

Pro volbu automatického čtení CAPTCHA kódů slouží přepínač --auto-captcha, pro volbu počtu částí slouží přepínač --parts N.

$ ulozto-downloader --auto-captcha --parts 15 "https://ulozto.cz/file/TKvQVDFBEhtL/debian-9-6-0-amd64-netinst-iso"

Ukázka stahování

Při využití automatického louskání doporučuji využít velký počet částí, klidně 50 (spustíte ulozto-downloader a necháte ho pracovat, on si jednou za minutu louskne další dva stahovací linky a postupně navyšuje počet najednou stahovaných částí).

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.