Code Monkey home page Code Monkey logo

ulozto-downloader's People

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

ulozto-downloader's Issues

Optimalizace dělení na části

Ahoj,

protože se nyní každé další dvě vlákna spouští až po 60 sekundách, velmi by pomohla optimalizace dělení částí. Těchto 60 sekund taky dává jakýsi interní limit, kdy má ještě cenu nastartovat další vlákno (třeba pokud bychom dle odhadu stáhli celý soubor za 50 sekund za použití 2 částí, nemá cenu jich startovat víc, i kdyby si to uživatel přál). Vypracoval jsem menší analýzu a přišel jsem na vzorec, který popisuje, jak optimálně rozdělit části.

Metoda spočívá v tom, že nechá všechna vlákna, která nastartuje, celkově stahovat stejně dlouhou dobu (tzn. všechna skončí ve stejnou chvíli). Přidělí jim tedy tak velké úseky, aby to takto vycházelo.

@setnicka Pro jednoduchou a přímočarou implementaci bude potřeba limitovat počet částí na sudá čísla (protože startujeme pokaždé dvě vlákna). To by předpokládám nebyl problém, ne? Lichá čísla by vyžadovala nějaké hackování.

Optimální dělení částí také vyžaduje znát rychlost stahování jednotlivých vláken. Toto se dle @JanPokorny liší případ od případu. Mohli bychom použít nějakou rozumnou hodnotu, třeba 200.

Přesto však by tento výpočet dělení částí měl být efektivnější než aktuální implementace, protože téměř cokoliv, co přiřadí prvním vláknům delší část pro stáhnutí je prostě lepší.

analysis.pdf

Provoz na serveru bez X

Zdravím, snažím se tento script rozběhnout na jednom serveru, který nemá DE ani X server, pouze konzolové prostředí. Nevím nakolik to nazvat chybou nebo spíš zkrátka vlastností scriptu, že nebyl pro tato prostředí napsán, nicméně nešlo by ošetřit čtení captchy jiným způsobem? (např v ASCII artu / ručním zadáváním). Děkuji za úvahu.

Starting downloading for url 'https://uloz.to/file/qBqmjuDxQqju/policejni-akademie-1-93m-1984-usa-czdabing-hd-1080p-i-avi'
Getting info (filename, filesize, ...)
CAPTCHA protected download - CAPTCHA challenges will be displayed
CAPTCHA image challenge...
Traceback (most recent call last):
File "ulozto_downloader.py", line 423, in
download(args.url, args.parts, args.output)
File "ulozto_downloader.py", line 318, in download
download_url = get_captcha_download_link(url)
File "ulozto_downloader.py", line 109, in get_captcha_download_link
captcha_answer = get_captcha_user_input("http:" + captcha_data['new_captcha_data']['image'])
File "ulozto_downloader.py", line 182, in get_captcha_user_input
root = tk.Tk()
File "/usr/lib64/python3.6/tkinter/init.py", line 2023, in init
self.tk = _tkinter.create(screenName, baseName, className, interactive, wantobjects, useTk, sync, use)
_tkinter.TclError: no display name and no $DISPLAY environment variable

Některé ze stažených částí jsou vadné

Některé ze stažených částí mohou obsahovat chybovou html stránku "z Vašeho počítače se již stahuje" místo skutečných dat. Při původní úpravě na nové rozhraní jsem si toho nevšiml, ale při důkladnější kontrole stažených data to teď vidím. Budeme asi muset nakódit nějak retry v případě, že narazíme na tuhle stránku.

Chyba při stahování souboru s mezerami/diakritikou

Ahoj,

na tomto souboru: https://uloz.to/file/lEgCd4ADLfCS/chinaski-ja-a-muj-kun-mp4

Testováno na Windows, Python 3.7

Program spadne po zahájení stahování a stahování failne, celý výpis zde:

(venv) d:\>python ulozto_downloader.py --parts 14 "https://uloz.to/file/lEgCd4ADLfCS/chinaski-ja-a-muj-kun-mp4"
Starting downloading for url 'https://uloz.to/file/lEgCd4ADLfCS/chinaski-ja-a-muj-kun-mp4'
Getting info (filename, filesize, ...)
'clear' is not recognized as an internal or external command,
operable program or batch file.
File: Chinaski - Já a můj kůň.mp4 | on-line video
URL: https://uloz.to/file/lEgCd4ADLfCS/chinaski-ja-a-muj-kun-mp4
Size: 3.19MB
Parts: 14 x 0.23MB
←[6;0H←[K[Part 1]       Waiting for download to start...←[7;0H←[K[Part 2]       Waiting for download to start...←[8;0H←[K[Part 3]       Waiting for download to start...←[9;0H←[K[Part 4]       Waiting
for download to start...←[10;0H←[K[Part 5]      Waiting for download to start...←[11;0H←[K[Part 6]      Waiting for download to start...←[12;0H←[K[Part 7]      Waiting for download to start...←[13;0H←
[K[Part 8]      Waiting for download to start...←[14;0H←[K[Part 9]      Waiting for download to start...←[15;0H←[K[Part 10]     Waiting for download to start...←[16;0H←[K[Part 11]     Waiting for down
load to start...←[17;0H←[K[Part 12]     Waiting for download to start...←[18;0H←[K[Part 13]     Waiting for download to start...←[19;0H←[K[Part 14]     Waiting for download to start...←[9;0H←[K[Part 4
]       Starting download←[12;0H←[K[Part 7]     Starting download←[8;0H←[K[Part 3]      Starting download←[10;0H←[K[Part 5]     Starting download←[7;0H←[K[Part 2]      Starting download←[13;0H←[K[Part
 8]     Starting download←[6;0H←[K[Part 1]      Starting download←[19;0H←[K[Part 14]    Starting download←[18;0H←[K[Part 13]    Starting downloadProcess Process-4:
Traceback (most recent call last):
  File "D:\Develop\Python-352-64\Lib\multiprocessing\process.py", line 249, in _bootstrap
    self.run()
  File "D:\Develop\Python-352-64\Lib\multiprocessing\process.py", line 93, in run
    self._target(*self._args, **self._kwargs)
  File "d:\ulozto_downloader.py", line 86, in download_part
    with open(part['filename'], 'ab') as f:
OSError: [Errno 22] Invalid argument: './Chinaski - Já a můj kůň.mp4 | on-line video.part04of14'
←[17;0H←[K[Part 12]     Starting downloadProcess Process-7:
Traceback (most recent call last):
  File "D:\Develop\Python-352-64\Lib\multiprocessing\process.py", line 249, in _bootstrap
    self.run()
  File "D:\Develop\Python-352-64\Lib\multiprocessing\process.py", line 93, in run
    self._target(*self._args, **self._kwargs)
  File "d:\ulozto_downloader.py", line 86, in download_part
    with open(part['filename'], 'ab') as f:
OSError: [Errno 22] Invalid argument: './Chinaski - Já a můj kůň.mp4 | on-line video.part07of14'
←[14;0H←[K[Part 9]      Starting download←[11;0H←[K[Part 6]     Starting download←[16;0H←[K[Part 11]    Starting downloadProcess Process-8:
Traceback (most recent call last):
  File "D:\Develop\Python-352-64\Lib\multiprocessing\process.py", line 249, in _bootstrap
    self.run()
←[15;0H←[K[Part 10]     Starting downloadProcess Process-1:
Process Process-3:
Traceback (most recent call last):
Traceback (most recent call last):
  File "D:\Develop\Python-352-64\Lib\multiprocessing\process.py", line 249, in _bootstrap
    self.run()
  File "D:\Develop\Python-352-64\Lib\multiprocessing\process.py", line 93, in run
    self._target(*self._args, **self._kwargs)
  File "d:\ulozto_downloader.py", line 86, in download_part
    with open(part['filename'], 'ab') as f:
OSError: [Errno 22] Invalid argument: './Chinaski - Já a můj kůň.mp4 | on-line video.part03of14'
  File "D:\Develop\Python-352-64\Lib\multiprocessing\process.py", line 93, in run
    self._target(*self._args, **self._kwargs)
  File "d:\ulozto_downloader.py", line 86, in download_part
    with open(part['filename'], 'ab') as f:
Process Process-2:
Traceback (most recent call last):
  File "D:\Develop\Python-352-64\Lib\multiprocessing\process.py", line 249, in _bootstrap
    self.run()
  File "D:\Develop\Python-352-64\Lib\multiprocessing\process.py", line 93, in run
    self._target(*self._args, **self._kwargs)
  File "d:\ulozto_downloader.py", line 86, in download_part
    with open(part['filename'], 'ab') as f:
OSError: [Errno 22] Invalid argument: './Chinaski - Já a můj kůň.mp4 | on-line video.part02of14'
Process Process-5:
Traceback (most recent call last):
  File "D:\Develop\Python-352-64\Lib\multiprocessing\process.py", line 249, in _bootstrap
    self.run()
  File "D:\Develop\Python-352-64\Lib\multiprocessing\process.py", line 93, in run
    self._target(*self._args, **self._kwargs)
  File "d:\ulozto_downloader.py", line 86, in download_part
    with open(part['filename'], 'ab') as f:
OSError: [Errno 22] Invalid argument: './Chinaski - Já a můj kůň.mp4 | on-line video.part05of14'
  File "D:\Develop\Python-352-64\Lib\multiprocessing\process.py", line 249, in _bootstrap
    self.run()
  File "D:\Develop\Python-352-64\Lib\multiprocessing\process.py", line 93, in run
    self._target(*self._args, **self._kwargs)
  File "d:\ulozto_downloader.py", line 86, in download_part
    with open(part['filename'], 'ab') as f:
OSError: [Errno 22] Invalid argument: './Chinaski - Já a můj kůň.mp4 | on-line video.part01of14'
Process Process-14:
Traceback (most recent call last):
  File "D:\Develop\Python-352-64\Lib\multiprocessing\process.py", line 249, in _bootstrap
    self.run()
  File "D:\Develop\Python-352-64\Lib\multiprocessing\process.py", line 93, in run
    self._target(*self._args, **self._kwargs)
  File "d:\ulozto_downloader.py", line 86, in download_part
    with open(part['filename'], 'ab') as f:
OSError: [Errno 22] Invalid argument: './Chinaski - Já a můj kůň.mp4 | on-line video.part14of14'
OSError: [Errno 22] Invalid argument: './Chinaski - Já a můj kůň.mp4 | on-line video.part08of14'
Process Process-13:
Traceback (most recent call last):
  File "D:\Develop\Python-352-64\Lib\multiprocessing\process.py", line 249, in _bootstrap
    self.run()
  File "D:\Develop\Python-352-64\Lib\multiprocessing\process.py", line 93, in run
    self._target(*self._args, **self._kwargs)
  File "d:\ulozto_downloader.py", line 86, in download_part
    with open(part['filename'], 'ab') as f:
OSError: [Errno 22] Invalid argument: './Chinaski - Já a můj kůň.mp4 | on-line video.part13of14'
Process Process-12:
Traceback (most recent call last):
  File "D:\Develop\Python-352-64\Lib\multiprocessing\process.py", line 249, in _bootstrap
    self.run()
  File "D:\Develop\Python-352-64\Lib\multiprocessing\process.py", line 93, in run
    self._target(*self._args, **self._kwargs)
  File "d:\ulozto_downloader.py", line 86, in download_part
    with open(part['filename'], 'ab') as f:
OSError: [Errno 22] Invalid argument: './Chinaski - Já a můj kůň.mp4 | on-line video.part12of14'
Process Process-11:
Traceback (most recent call last):
  File "D:\Develop\Python-352-64\Lib\multiprocessing\process.py", line 249, in _bootstrap
    self.run()
  File "D:\Develop\Python-352-64\Lib\multiprocessing\process.py", line 93, in run
    self._target(*self._args, **self._kwargs)
  File "d:\ulozto_downloader.py", line 86, in download_part
    with open(part['filename'], 'ab') as f:
OSError: [Errno 22] Invalid argument: './Chinaski - Já a můj kůň.mp4 | on-line video.part11of14'
Process Process-9:
Traceback (most recent call last):
  File "D:\Develop\Python-352-64\Lib\multiprocessing\process.py", line 249, in _bootstrap
    self.run()
  File "D:\Develop\Python-352-64\Lib\multiprocessing\process.py", line 93, in run
    self._target(*self._args, **self._kwargs)
  File "d:\ulozto_downloader.py", line 86, in download_part
    with open(part['filename'], 'ab') as f:
OSError: [Errno 22] Invalid argument: './Chinaski - Já a můj kůň.mp4 | on-line video.part09of14'
Process Process-6:
Traceback (most recent call last):
  File "D:\Develop\Python-352-64\Lib\multiprocessing\process.py", line 249, in _bootstrap
    self.run()
  File "D:\Develop\Python-352-64\Lib\multiprocessing\process.py", line 93, in run
    self._target(*self._args, **self._kwargs)
  File "d:\ulozto_downloader.py", line 86, in download_part
    with open(part['filename'], 'ab') as f:
OSError: [Errno 22] Invalid argument: './Chinaski - Já a můj kůň.mp4 | on-line video.part06of14'
Process Process-10:
Traceback (most recent call last):
  File "D:\Develop\Python-352-64\Lib\multiprocessing\process.py", line 249, in _bootstrap
    self.run()
  File "D:\Develop\Python-352-64\Lib\multiprocessing\process.py", line 93, in run
    self._target(*self._args, **self._kwargs)
  File "d:\ulozto_downloader.py", line 86, in download_part
    with open(part['filename'], 'ab') as f:
OSError: [Errno 22] Invalid argument: './Chinaski - Já a můj kůň.mp4 | on-line video.part10of14'
←[21;0HFailure of one or more downloads, exiting

Název binárního programu

Nebylo by dobré tomu dát nějaký rozumný název?

Aby se například binárka jmenovala (download):
dulozto

Pro svůj projekt vyhledávače bych zvolil například (search, find):
sulozto (moc se mi nelíbí to su na začátku)
fulozto

Změny v limitaci nových session z jedné IP

Alert, zdá se že změnili algoritmus podle kterého dostane IP adresa soft-ban a nové sessions vyžadují ReCaptchu. Zdá se že to už není 2 sessions / 1 minuta. Ostatní můžete zkusit jak vám to jede a reportovat, možná to protáhli na 2 minuty nebo tak...

problém s --auto-captcha

Getting info (filename, filesize, ...)
CAPTCHA protected download - CAPTCHA challenges will be displayed

Starting TOR...
RuntimeError: module compiled against API version 0xe but this version of numpy is 0xd
ImportError: numpy.core.multiarray failed to import

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
File "/home/-/.local/bin/ulozto-downloader", line 8, in
sys.exit(run())
File "/home/-/.local/lib/python3.9/site-packages/uldlib/cmd.py", line 44, in run
d.download(args.url, args.parts, args.output)
File "/home/-/.local/lib/python3.9/site-packages/uldlib/downloader.py", line 237, in download
download_url = next(self.captcha_download_links_generator)
File "/home/-/.local/lib/python3.9/site-packages/uldlib/page.py", line 278, in captcha_download_links_generator
captcha_answer = captcha_solve_func(
File "/home/-/.local/lib/python3.9/site-packages/uldlib/captcha.py", line 92, in call
interpreter = tflite.Interpreter(model_content=self.model_content)
File "/home/-/.local/lib/python3.9/site-packages/tflite_runtime/interpreter.py", line 382, in init
_interpreter_wrapper.CreateWrapperFromBuffer(
SystemError: <built-in method CreateWrapperFromBuffer of PyCapsule object at 0x7f6a22d55150> returned a result with an error set
Terminating tor..
Removed tor data dir: tor_data_dir_2e92ae68-d4cd-45bc-9c29-59119c500b1f

Jméno home adresáře jsem zaměnil za "-"

Vyhledávání na Ulož.to

Mám napsané vyhledávání na Ulož.to v NodeJS, proto jsem přidal podporu trackovaných linků, aby se linky z mého vyhledávače daly rovnou používat v ulozto_downloader. Získat netrackované linky znamená pro každý link z vyhledávání provést jeden dotaz na Ulož.to.

Trackované linky vypadají takto:
https://uloz.to/download-tracking/50bb81ef93310e4266e9b2b85199c595a9b8a576a8f3e5ad4c8f3b8dc377107eada50b3d873de2b6e8fec7a9bb2306f6

Budu to dávat brzy asi na Github a mohly by ty projekty spolupracovat.

libstdc++.so.6: version `GLIBCXX_3.4.22' not found

Installed on SolydX Linux (Debian based) using pip3 as described in README, all the recommended dependencies present. But running the script throws series of errors after "CAPTCHA challenge will be displayed". Tried also without --auto-captcha, but result is the same. Terminal command and output:

`
ulozto-downloader --auto-captcha --parts 20 https://uloz.to/file/zDH6ajlc4UCX/bozena-e02-avi
Downloading model from https://github.com/JanPalasek/ulozto-captcha-breaker/releases/download/v2.2/model.tflite
100.0% 14147584 / 14140796
Downloading of the model finished
Starting downloading for url 'https://uloz.to/file/zDH6ajlc4UCX/bozena-e02-avi'
Getting info (filename, filesize, ...)
CAPTCHA protected download - CAPTCHA challenges will be displayed

Traceback (most recent call last):, trying to solve
File "/home/linuxbrew/.linuxbrew/bin/ulozto-downloader", line 48, in
main()
File "/home/linuxbrew/.linuxbrew/bin/ulozto-downloader", line 44, in main
d.download(args.url, args.parts, args.output)
File "/home/linuxbrew/.linuxbrew/opt/python/lib/python3.7/site-packages/ulozto_downloader/downloader.py", line 168, in download
download_url = next(self.captcha_download_links_generator)
File "/home/linuxbrew/.linuxbrew/opt/python/lib/python3.7/site-packages/ulozto_downloader/page.py", line 169, in captcha_download_links_generator
captcha_answer = captcha_solve_func("https:" + captcha_image_url, print_func=print_func)
File "/home/linuxbrew/.linuxbrew/opt/python/lib/python3.7/site-packages/ulozto_downloader/captcha.py", line 86, in call
import tflite_runtime.interpreter as tflite
File "/home/linuxbrew/.linuxbrew/opt/python/lib/python3.7/site-packages/tflite_runtime/interpreter.py", line 36, in
from tflite_runtime import _pywrap_tensorflow_interpreter_wrapper as _interpreter_wrapper
ImportError: /home/linuxbrew/.linuxbrew/opt/python/lib/python3.7/site-packages/tflite_runtime/../../../libstdc++.so.6: version `GLIBCXX_3.4.22' not found (required by /home/linuxbrew/.linuxbrew/opt/python/lib/python3.7/site-packages/tflite_runtime/_pywrap_tensorflow_interpreter_wrapper.cpython-37m-x86_64-linux-gnu.so)
`

[Bug?] Errno 24: Too many open files

Ahoj, momentálne som dal sťahovať 10gb video z uložto pri 750 partoch. To mi hneď napísalo error Errno 24: Too many open files. Postupne som znižoval až na 499 kde to vyzeralo byť ako tak v pohode. Ale po nejakých 40 partoch to začalo hádzať errory pomedzi riadky sťahovania. Pripojenia ktoré už boli nadviazané sa dosťahovali a odvtedy to stálo a žiadne nové pripojenia sa nevytvárali. Momentálne to skúšam len so 100 partami tak hádam to bude lepšie.

Máte niekto nejaký fix?

PS: Našiel som niečo takéto

stahovanie cez tor, nielen ziskavanie liniek

Cau,

toto je skor len napad (neviem ci uskutocnitelny),
co keby cele stahovanie casti sa dalo vynutit cez tor? (for obvious reasons) nielen ziskavanie urliek.

porusuje sa tym nejake pravidlo toru? bude to pekelne pomale? sam neviem.

inak software je skvely, diky!!!

da sa niekam prispiet na pivko?

Chyba na velkých souborech

Ahoj,

při stahování většího souboru spadne na KeyError: content-length, celý výpis zde:

(venv) d:\>python ulozto_downloader.py --parts 14 "https://uloz.to/file/VdEer7yz/spirited-away-2001-dvdrip-tri-audio-eng-jap-fre-ac3-5-1-dxo-avi"
Starting downloading for url 'https://uloz.to/file/VdEer7yz/spirited-away-2001-dvdrip-tri-audio-eng-jap-fre-ac3-5-1-dxo-avi'
Getting info (filename, filesize, ...)
Traceback (most recent call last):
  File "ulozto_downloader.py", line 233, in <module>
    download(args.url, args.parts, args.output)
  File "ulozto_downloader.py", line 149, in download
    total_size = int(head.headers['Content-Length'])
  File "d:\Home\MFF\diplomka\venv\lib\site-packages\requests\structures.py", line 52, in __getitem__
    return self._store[key.lower()][1]
KeyError: 'content-length'

Testováno na linku https://uloz.to/file/VdEer7yz/spirited-away-2001-dvdrip-tri-audio-eng-jap-fre-ac3-5-1-dxo-avi na dvou počítačích, Windows a Linux, Pythony 2.7 a 3.6 - čili všude.

ReCaptcha je vždy neplatná

Ahoj, v posledních dnech pravděpodobně přestala fungovat práce s recaptchou, resp. všechny zadané recaptchy jsou vyhodnoceny jako chybné.

ulozto-captcha-breaker

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ří.

Output file created in current dir, not in --output <dir>

Dnes jsem poprve vyzkousel, vse super, jen takova drobnost - jednotlive casti jsou vytvareny korektne dle parametru --output ( kontroloval jsem behem stahovani), finalni soubor se ale objevi v aktualnim adresari.

Priklad:
$ ./ulozto_downloader.py --output /links/tmp/ https://uloz.to/file/vIluYcpO4uDD/dira-el-hoyo-2019-cz-titulky-mkv

File: Díra (El hoyo,2019)Cz.Titulky.mkv
URL: https://uloz.to/file/vIluYcpO4uDD/dira-el-hoyo-2019-cz-titulky-mkv
Size: 5173.91MB
Download type: CAPTCHA protected
Parts: 10 x 517.39MB

[Part 1] Successfully downloaded 517.39MB in 0:49:06
[Part 2] Successfully downloaded 517.39MB in 0:49:05
[Part 3] Successfully downloaded 517.39MB in 0:49:10
[Part 4] Successfully downloaded 517.39MB in 0:49:08
[Part 5] Successfully downloaded 517.39MB in 0:49:06
[Part 6] Successfully downloaded 517.39MB in 0:49:04
[Part 7] Successfully downloaded 517.39MB in 0:49:06
[Part 8] Successfully downloaded 517.39MB in 0:49:05
[Part 9] Successfully downloaded 517.39MB in 0:49:06
[Part 10] Successfully downloaded 517.39MB in 0:49:07

All downloads finished, merging files...
All files merged, output file is 'Díra (El hoyo,2019)Cz.Titulky.mkv'

$ ls -la /links/tmp/Díra\ (El\ hoyo,2019)Cz.Titulky.mkv
ls: cannot access '/links/tmp/Díra (El hoyo,2019)Cz.Titulky.mkv': No such file or directory

$ ls Díra\ (El\ hoyo,2019)Cz.Titulky.mkv
'Díra (El hoyo,2019)Cz.Titulky.mkv'

Please help me

I have this error, I really don't know if I'm doing it right, can anyone help me? I would be very grateful and I am on Windows 10, Thank you
1
.

Exception: Unknown document has been received

Starting downloading for url 'https://ulozto.cz/file/T0DEh8abg70U/dluh-2010-mkv'                                                                              
Getting info (filename, filesize, ...)                                                                                                                        
CAPTCHA protected download - CAPTCHA challenges will be displayed                                                                                             
                                                                                                                                                              
ERROR:root:[ignored]ing new Tor circuit (may take some time)...                                                                                               
Traceback (most recent call last):                                                                                                                            
  File "/home/sopos/.local/lib/python3.7/site-packages/torpy/utils.py", line 78, in newfn                                                                     
    return func(*args, **kwargs)                                                                                                                              
  File "/home/sopos/.local/lib/python3.7/site-packages/torpy/consesus.py", line 157, in renew                                                                
    raise Exception('Unknown document has been received')
Exception: Unknown document has been received
ERROR:root:[ignored]
Traceback (most recent call last):
  File "/home/sopos/.local/lib/python3.7/site-packages/torpy/utils.py", line 78, in newfn                                                                    
    return func(*args, **kwargs)
  File "/home/sopos/.local/lib/python3.7/site-packages/torpy/consesus.py", line 157, in renew                                                                
    raise Exception('Unknown document has been received')
Exception: Unknown document has been received
ERROR:root:[ignored]
Traceback (most recent call last):
  File "/home/sopos/.local/lib/python3.7/site-packages/torpy/utils.py", line 78, in newfn
    return func(*args, **kwargs)
  File "/home/sopos/.local/lib/python3.7/site-packages/torpy/consesus.py", line 157, in renew
    raise Exception('Unknown document has been received')
Exception: Unknown document has been received
Traceback (most recent call last):
  File "/home/sopos/bin/ul", line 48, in <module>
    main()
  File "/home/sopos/bin/ul", line 44, in main
    d.download(args.url, args.parts, args.output)
  File "/home/sopos/ulozto_downloader/ulozto_downloader/downloader.py", line 168, in download
    download_url = next(self.captcha_download_links_generator)
  File "/home/sopos/ulozto_downloader/ulozto_downloader/page.py", line 137, in captcha_download_links_generator
    with tor_requests_session(hops_count=2, retries=0) as s:
  File "/usr/lib/python3.7/contextlib.py", line 112, in __enter__
    return next(self.gen)
  File "/home/sopos/.local/lib/python3.7/site-packages/torpy/http/requests.py", line 66, in tor_requests_session
    with TorRequests(hops_count, headers, auth_data) as tr:
  File "/home/sopos/.local/lib/python3.7/site-packages/torpy/http/requests.py", line 40, in __enter__
    self._tor = TorClient(auth_data=self._auth_data)
  File "/home/sopos/.local/lib/python3.7/site-packages/torpy/client.py", line 37, in __init__
    self._consensus = consensus or TorConsensus()
  File "/home/sopos/.local/lib/python3.7/site-packages/torpy/consesus.py", line 130, in __init__
    self.renew()
  File "/home/sopos/.local/lib/python3.7/site-packages/torpy/utils.py", line 78, in newfn
    return func(*args, **kwargs)
  File "/home/sopos/.local/lib/python3.7/site-packages/torpy/consesus.py", line 157, in renew
    raise Exception('Unknown document has been received')
Exception: Unknown document has been received

RFE: implement watchdog for downloading threads

There are various issues appearing with the downloads. Some of them are fatal and the specific part does not start again.
It would be good if there was some watchdog for each thread which would restart it in case something bad happen. Like if the thread is dead or is stuck.

  File "/usr/lib/python3/dist-packages/requests/api.py", line 75, in get
    return request('get', url, params=params, **kwargs)
  File "/usr/lib/python3/dist-packages/requests/api.py", line 60, in request
    return session.request(method=method, url=url, **kwargs)
  File "/usr/lib/python3/dist-packages/requests/sessions.py", line 519, in request
    prep = self.prepare_request(req)..
  File "/usr/lib/python3/dist-packages/requests/sessions.py", line 462, in prepare_request
    hooks=merge_hooks(request.hooks, self.hooks),
  File "/usr/lib/python3/dist-packages/requests/models.py", line 313, in prepare
    self.prepare_url(url, params)HA...
  File "/usr/lib/python3/dist-packages/requests/models.py", line 387, in prepare_url
    raise MissingSchema(error)PTCHA...
requests.exceptions.MissingSchema: Invalid URL '/blocked': No schema supplied. Perhaps you meant http:///blocked?

Log do souboru

Ahoj, díky za super program.
Je možné upravit výstup tak aby to šlo pustit na pozadí a logovat do souboru?
Aktuálně tím vznikne naprosto nečitelný log soubor, ze kterého není poznat co už stáhnul.
díky

Uloz.to zřemě vrátilo staré rozhraní

Vypadá to, že ?do=slowDirectDownload přestalo fungovat. Naopak zase funguje starý způsob stahování se zadáváním captcha kódu. Takže poslední změny s odstraněním captchy revertneme?

Stahování model.tflite je hrozně pomalé a selže před koncem

Mám problém se stažením model.tflite, nejde stáhnout ani pomocí tvého kódu, ani normálně z prohlížeče (download se pořád zpomaluje a časem selže, přestože máme na kolejích rychlost ~100Mbit/s), nakonec se mi to povedlo wgetem. Pokud je to u ostatních podobné, bylo by asi fajn si ho někam nahrát a stahovat odjinud.
Díky

Tom

zlepseni ui

kdyz dam hodne moc casti (500 pro 10GB, 1000 pro 20gb) tak ui prestane po +-50 davat smysl a musim mit consoli otevrenou naplno.

mozna misto progresu pro kazdou cast by to slo nejak optimalizovat na ui o +- 4 radcich
se statusem jak je ted uplne dolu
1 radek celkovy progres, + celkova rychlost (tohle je vice mene nejdulezitejsi udaj)
1 radek pocet aktivnich casti, pocet skoncenych casti, pocet cekajicich, pocet startujicich

Nelze spustit

Dobrý den,

Po přeinstalaci systému a znovu nainstalování ulozto downloaderu mi nejde spustit, vždy se mi na chílí ukáže nápis opening new Tor Circuit a pak vyhodí tento výstup:

https://pastebin.com/Td2KYGNS

Nejspíše se mi špatně nainstaloval nějaký modul pythonu, nenapadá Vás někoho co by mohl být problém?

Distro: Arch

Nahradit mutiprocessing za asyncio

Uvažoval jsi o náhradě multiprocessing za asyncio? U aplikace, která je takhle moc závislá na I/O operacích by asyncio asi vycházelo na zdroje líp (především u mnoha stahovacích vláken najednou), nemluvě o jednodušším kódu.

Kontrola / v nazvu souboru

Program nekontroluje pritomnost lomitka v nazvu souboru na Uloz.to . Stazeni casti souboru pak havaruje protoze se snazi ukladat do neexistujiciho adresare (cast nazvu je povazovana za adresar)

[Feature] VPN as helpful tool for truely multi-threaded download

Ahoj. V jednom z bodov v README máš napísané že ulož.to je schopné providenuť len 2 linky za minútu (pochopiteľný limit). Keby sme zakomponovali VPN do tohto programu, vedeli by sme dostať neobmedzený počet linkov naraz (podľa toho na kolko tunelov by sme sa connectli) tým pádom by sme vedeli naraz sťahovať pokojne aj 20 partov čo by definitívne urýchlilo prácu.

Free VPN poskytuje napríklad Proton VPN ale neviem ako by sme ju zaimplementovali do tohto projektu. Druhá možnosť by bola Opera, ktorá poskytuje (už pekne dlhú dobu) taktiež free VPN.

Opera VPN som používal vždy keď stránka sťahovala pomaly a mala limit na 1 download per IP. Tak som si otvoril nové privátne okno pomocou ktorého som sa vedel zároveň pripojiť na další Opera VPN server a vedel som sťahovať 2 a viac súborov naraz. Ale opakujem, neviem ako by sa to dalo implementovať do tohto projektu keďže sú to closed source služby a nič o API som zatiaľ nevyhladával.

Přidat setup.py

Ahoj, co takhle přidat setup.py, aby si mohli lidé nainstalovat balík přes pip a neřešit ručně závislosti apod.? Šel by pak i umístit na http://pypi.org/, ale jestli to nechceš, tak jde stále přes pip instalovat i z url (např. na githubu).

Nahrazení tabulátorů mezerami

Dávám ke zvážení nahradit tabulátory čtyřmi mezerami.

PEP8 mluví celkem jasně:

  1. Use 4 spaces per indentation level.

  2. Spaces are the preferred indentation method. Tabs should be used solely to remain consistent with code that is already indented with tabs.

Osobně tabulátory v Pythoním kódu nepředpokládám a hodně mě matou. Přiznávám, že i nedávné editace jsem dělal tak, že jsem si na začátku nahradil tabulátory za mezery a na konci je zase konvertoval zpátky. U takhle malého projektu mi jednorázové přepnutí nepřijde jako problém. Klidně k tomu udělám i pull request, pokud bude Jirka souhlasit.

TypeError: can't pickle weakref objects / EOFError: Ran out of input

I keep getting these errors, I searched but I'm not really sure how to fix it. I'm very new to this so please be considerate.

I'm using Python 3.7 on Windows 10.

File: debian-9.6.0-amd64-netinst.iso
URL: https://ulozto.cz/file/TKvQVDFBEhtL/debian-9-6-0-amd64-netinst-iso
Download type: CAPTCHA protected download
Size / parts: 291.0MB => 15 x 19.4MB
[Part 0] Waiting for CAPTCHA...
[Part 1] Waiting for CAPTCHA...
[Part 2] Waiting for CAPTCHA...
[Part 3] Waiting for CAPTCHA...
[Part 4] Waiting for CAPTCHA...
[Part 5] Waiting for CAPTCHA...
[Part 6] Waiting for CAPTCHA...
[Part 7] Waiting for CAPTCHA...
[Part 8] Waiting for CAPTCHA...
[Part 9] Waiting for CAPTCHA...
[Part 10] Waiting for CAPTCHA...
[Part 11] Waiting for CAPTCHA...
[Part 12] Waiting for CAPTCHA...
[Part 13] Waiting for CAPTCHA...
[Part 14] Waiting for CAPTCHA...Traceback (most recent call last):
File "c:\users\oknchm\appdata\local\programs\python\python37\lib\runpy.py", line 193, in _run_module_as_main
[Progress] 0.00 MB (0.00 %) avg. speed: 0.00 MB/s curr. speed: 0.00 MB/s remaining: 0:00:00
File "c:\users\oknchm\appdata\local\programs\python\python37\lib\runpy.py", line 85, in run_code
exec(code, run_globals)
File "C:\Users\OKNCHM\AppData\Local\Programs\Python\Python37\Scripts\ulozto-downloader.exe_main
.py", line 7, in
File "c:\users\oknchm\appdata\local\programs\python\python37\lib\site-packages\uldlib\cmd.py", line 44, in run
d.download(args.url, args.parts, args.output)
File "c:\users\oknchm\appdata\local\programs\python\python37\lib\site-packages\uldlib\downloader.py", line 306, in download
self.captcha_process.start()
File "c:\users\oknchm\appdata\local\programs\python\python37\lib\multiprocessing\process.py", line 112, in start
self._popen = self._Popen(self)
File "c:\users\oknchm\appdata\local\programs\python\python37\lib\multiprocessing\context.py", line 223, in _Popen
return _default_context.get_context().Process._Popen(process_obj)
File "c:\users\oknchm\appdata\local\programs\python\python37\lib\multiprocessing\context.py", line 322, in _Popen
return Popen(process_obj)
File "c:\users\oknchm\appdata\local\programs\python\python37\lib\multiprocessing\popen_spawn_win32.py", line 89, in init
reduction.dump(process_obj, to_child)
File "c:\users\oknchm\appdata\local\programs\python\python37\lib\multiprocessing\reduction.py", line 60, in dump
ForkingPickler(file, protocol).dump(obj)
TypeError: can't pickle weakref objects
Traceback (most recent call last):
File "", line 1, in
File "c:\users\oknchm\appdata\local\programs\python\python37\lib\multiprocessing\spawn.py", line 105, in spawn_main
exitcode = _main(fd)
File "c:\users\oknchm\appdata\local\programs\python\python37\lib\multiprocessing\spawn.py", line 115, in _main
self = reduction.pickle.load(from_parent)
EOFError: Ran out of input

Illegal instructionge URL obtained, trying to solve

Ahojte,

Vyhadzuje tuto chybu pokial je zapnuty --auto-captcha
Illegal instructionge URL obtained, trying to solve

Bez auto-captcha vyhodie okienko s captcha na rucne prepisania a stahovanie sa rozbehne. Neviete co to moze byt?

Dakujem.

Chyba při stahování

root@server:~/dwl# ulozto-downloader "https://uloz.to/file/3Qxb0y5ZAJuL/"
Starting downloading for url 'https://uloz.to/file/3Qxb0y5ZAJuL/'
Getting info (filename, filesize, ...)
CAPTCHA protected download - CAPTCHA challenges will be displayed

Traceback (most recent call last):, trying to solve
  File "/usr/local/bin/ulozto-downloader", line 48, in <module>
    main()
  File "/usr/local/bin/ulozto-downloader", line 44, in main
    d.download(args.url, args.parts, args.output)
  File "/usr/local/lib/python3.8/dist-packages/ulozto_downloader/downloader.py", line 168, in download
    download_url = next(self.captcha_download_links_generator)
  File "/usr/local/lib/python3.8/dist-packages/ulozto_downloader/page.py", line 169, in captcha_download_links_generator
    captcha_answer = captcha_solve_func("https:" + captcha_image_url, print_func=print_func)
  File "/usr/local/lib/python3.8/dist-packages/ulozto_downloader/captcha.py", line 18, in tkinter_user_prompt
    root = tk.Tk()
  File "/usr/lib/python3.8/tkinter/__init__.py", line 2261, in __init__
    self.tk = _tkinter.create(screenName, baseName, className, interactive, wantobjects, useTk, sync, use)
_tkinter.TclError: no display name and no $DISPLAY environment variable
root@server:~/dwl#

Recaptcha

Teď se objevila možnost, jak obejít recaptchu u všech souborů.
Do url stačí doplnit ?do=slowDirectDownload . Alespoň to funguje v prohlížeči.

Po novém (včerejší úpravě ze strany ulož.to) se u souborů do 50 MB recaptcha už nezobrazuje.

Open media vault plugin?

Ahoj, nemas v planu udelat plugin do open media vault? Mam NAS postaveny na raspberry pi 4b a na nem prave OMV a mit tam moznost stahovat z uloz.to primo z NASu by byla bomba

Skript přestal fungovat

Ahoj, asi dva dny zpět nejspíš došlo k nějaké změně na uloz.to, která to způsobila. Nefunguje ani vžum. Testováno na windows a linuxu.

Klíčové vlastnosti

Nevyžaduje opisování CAPTCHA kódů

Co přesně je tím myšleno, že je skript dekóduje automaticky, nebo něco jiného?

Nefunguje na termux

Prosím opravit, aby fungoval program na termux pro android. Našel jsem, že se chyba vyskytovala i v jiných projektech a opravili ji.

Error:
File: Stargate Empire at War rozbal a hraj.rar
URL: https://ulozto.cz/file/FUtC4j0FUdNW/stargate-empire-at-war-rozbal-a-hraj-rar
Download type: slow direct download (without CAPTCHA)
[Part 0] Waiting for direct link...
[Part 1] Waiting for direct link...Traceback (most recent call last):
File "/data/data/com.termux/files/usr/lib/python3.9/multiprocessing/synchronize.py", line 28, in
from _multiprocessing import SemLock, sem_unlink
ImportError: cannot import name 'SemLock' from '_multiprocessing' (/data/data/com.termux/files/usr/lib/python3.9/lib-dynload/_multiprocessing.cpython-39.so)

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
File "/data/data/com.termux/files/usr/bin/ulozto-downloader", line 8, in
sys.exit(run())
File "/data/data/com.termux/files/usr/lib/python3.9/site-packages/uldlib/cmd.py", line 44, in run d.download(args.url, args.parts, args.output) File "/data/data/com.termux/files/usr/lib/python3.9/site-packages/uldlib/downloader.py", line 272, in download
self.download_url_queue = mp.Queue(maxsize=0) File "/data/data/com.termux/files/usr/lib/python3.9/multiprocessing/context.py", line 103, in Queue
return Queue(maxsize, ctx=self.get_context()) File "/data/data/com.termux/files/usr/lib/python3.9/multiprocessing/queues.py", line 40, in init
from .synchronize import SEM_VALUE_MAX as maxsize
File "/data/data/com.termux/files/usr/lib/python3.9/multiprocessing/synchronize.py", line 30, in
raise ImportError("This platform lacks a functioning sem_open" +
ImportError: This platform lacks a functioning sem_open implementation, therefore, the required synchronization primitives needed will not function, see issue 3770.

Nelze stahovat soubory větší 250MB

Ahoj, zkoušel jsem stahovat filmy pomocí tohoto scriptu, ale při pokusu stažení souboru většího asi 250MB mi na Linuxu (Ubuntu 18.04) vypíše error:

kuba@JA-Linux:~/Downloads/ulozto$ ./ulozto_downloader.py --parts 15 'https://ulozto.cz/file/GKc25cVhxWQV/the-100-s06e13-the-blood-of-sanctum-720p-cz-titulky-mkv' Starting downloading for url 'https://ulozto.cz/file/GKc25cVhxWQV/the-100-s06e13-the-blood-of-sanctum-720p-cz-titulky-mkv' Getting info (filename, filesize, ...) Traceback (most recent call last): File "./ulozto_downloader.py", line 233, in <module> download(args.url, args.parts, args.output) File "./ulozto_downloader.py", line 149, in download total_size = int(head.headers['Content-Length']) File "/usr/lib/python3/dist-packages/requests/structures.py", line 54, in __getitem__ return self._store[key.lower()][1] KeyError: 'content-length'

Cannot download file

I cannot download any file.

$ ulozto-downloader --auto-captcha --parts 15 "https://ulozto.cz/file/eMRf6hjD/doremi-nobita-and-the-legend-of-the-green-giant-doraemon-movie-2008-f988be25-mkv"

Starting downloading for url 'https://ulozto.cz/file/eMRf6hjD/doremi-nobita-and-the-legend-of-the-green-giant-doraemon-movie-2008-f988be25-mkv'
Getting info (filename, filesize, ...)

Cannot download file: Cannot parse Ulozto.cz page to get download information, no direct download URL and no CAPTCHA challenge URL found

multiprocessing na win 10

File "<string>", line 1, in <module>
  File "c:\users\muniv\appdata\local\programs\python\python38-32\lib\multiprocessing\spawn.py", line 116, in spawn_main
    exitcode = _main(fd, parent_sentinel)
  File "c:\users\muniv\appdata\local\programs\python\python38-32\lib\multiprocessing\spawn.py", line 125, in _main
    prepare(preparation_data)
  File "c:\users\muniv\appdata\local\programs\python\python38-32\lib\multiprocessing\spawn.py", line 236, in prepare
    _fixup_main_from_path(data['init_main_from_path'])
  File "c:\users\muniv\appdata\local\programs\python\python38-32\lib\multiprocessing\spawn.py", line 287, in _fixup_main_from_path
    main_content = runpy.run_path(main_path,
  File "c:\users\muniv\appdata\local\programs\python\python38-32\lib\runpy.py", line 263, in run_path
    return _run_module_code(code, init_globals, run_name,
  File "c:\users\muniv\appdata\local\programs\python\python38-32\lib\runpy.py", line 96, in _run_module_code
    _run_code(code, mod_globals, init_globals,
  File "c:\users\muniv\appdata\local\programs\python\python38-32\lib\runpy.py", line 86, in _run_code
    exec(code, run_globals)
  File "C:\Users\muniv\AppData\Local\Programs\Python\Python38-32\Scripts\ulozto-downloader", line 40, in <module>
    d.download(args.url, args.parts, args.output)
  File "c:\users\muniv\appdata\local\programs\python\python38-32\lib\site-packages\ulozto_downloader\downloader.py", line 196, in download
    self.captcha_process.start()
  File "c:\users\muniv\appdata\local\programs\python\python38-32\lib\multiprocessing\process.py", line 121, in start
    self._popen = self._Popen(self)
  File "c:\users\muniv\appdata\local\programs\python\python38-32\lib\multiprocessing\context.py", line 224, in _Popen
    return _default_context.get_context().Process._Popen(process_obj)
  File "c:\users\muniv\appdata\local\programs\python\python38-32\lib\multiprocessing\context.py", line 326, in _Popen
    return Popen(process_obj)
  File "c:\users\muniv\appdata\local\programs\python\python38-32\lib\multiprocessing\popen_spawn_win32.py", line 45, in __init__
    prep_data = spawn.get_preparation_data(process_obj._name)
  File "c:\users\muniv\appdata\local\programs\python\python38-32\lib\multiprocessing\spawn.py", line 154, in get_preparation_data
    _check_not_importing_main()
  File "c:\users\muniv\appdata\local\programs\python\python38-32\lib\multiprocessing\spawn.py", line 134, in _check_not_importing_main
    raise RuntimeError('''
RuntimeError: 
        An attempt has been made to start a new process before the
        current process has finished its bootstrapping phase.

        This probably means that you are not using fork to start your
        child processes and you have forgotten to use the proper idiom
        in the main module:

            if __name__ == '__main__':
                freeze_support()
                ...

        The "freeze_support()" line can be omitted if the program
        is not going to be frozen to produce an executable.
^C

asi bude potřeba udělat něco takového, ale jsem na to slabý.. :-)

viz.: https://stackoverflow.com/questions/60266256/how-to-fix-multiprocessing-problems-in-python-in-windows10

WARNING: File '{filename}' already exists, overwrite it? [y/n]

Hi, great piece of software however suppose you want to do something like this:

while IFS= read -r line; do
    ulozto-downloader --auto-captcha --parts 50 $line
done < to_download.txt

It would be really convient if you cound add another parameter, say --Y or --N, that would do the obvious thing here.

Stahovanie z pornfile.cz nefunguje

Zdravim,

nebolo by mozne pridat aj stahovanie zo serveru pornfile.cz, partnerskeho serveru uloz.zo? Momentalne mi to nefunguje, vyhadzuje nasledovnu chybu:

user@Mac-Pro Documents % python3.8 /Users/user/documents/ulozto_downloader-master/ulozto_downloader.py --parts 20 --output /Users/user/documents/ "https://pornfile.cz/file/F4FlzI3tldtS/rychly-prachy-cikanky-z-chanova-2-27-11-2019-mp4"
Starting downloading for url 'https://pornfile.cz/file/F4FlzI3tldtS/rychly-prachy-cikanky-z-chanova-2-27-11-2019-mp4'
Getting info (filename, filesize, ...)
Cannot download file: Cannot parse Uloz.to page to get download information, no slowDownload URL and no CAPTCHA challenge URL found
user@Mac-Pro Documents % 

Vopred diky.

Licence

Pod jakou licencí je tento software? Rád udělám PR např na MIT licenci

Chyba pri spúšťaní

Snažil som sa spustiť ulozto downloader, ale furt mám nejakú chybu. Nainštaloval som všetky knižnice.
image
Ale potom mi došlo že spúšťam niečo zle. Spustil som downloader.py a toto mi dalo:
image
Tor som si stiahol a nainštaloval na Plochu, pretože som ho nevedel dať do Program Files (ani x86), ako mám urobiť PATH? Stačí mi že python musím spúšťať cez py, lebo cez python ma to hodí do MS Storu.
Hodilo by sa tu nejaké video, návod, ako nainštalovať ulozto downloader.

UPDATE: Stiahol som si Tor priamo medzi súbory na C: a furt mám nejakú chybu.
Po preinštalovaní Pythonu pri numpy inštalácii mám chybu že nemám Visual C++ 14.0.

Timeout Error | problémy s torpy

Zdravím, začal jsem používat tuhle skvělou věc. Ale bohužel nefunguje, jak by měla.
Jakmile spustím tak běží v pořádku, ale časem se mi u partů začne objevovat čím dál častěji chyba ve tvaru Timeout error.
Přikládám obrázek pro představu. Otázka je, dá se to opravit?
Používám
Linux Ubuntu 18.04 LTS 64x
Verze Python 3.6.9
Všechny potřebné věci bych měl mít nainstalovány.

Snímek obrazovky 2021-08-02 154304

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.