All Projects → fastai → fastdownload

fastai / fastdownload

Licence: Apache-2.0 license
Easily download, verify, and extract archives

Programming Languages

Jupyter Notebook
11667 projects
python
139335 projects - #7 most used programming language
Makefile
30231 projects

Projects that are alternatives of or similar to fastdownload

canvas-record
A one trick pony package to record and download a video from a canvas animation.
Stars: ✭ 64 (+82.86%)
Mutual labels:  download
Google-Images-Search
[PYTHON] Search for image using Google Custom Search API and resize & crop afterwards
Stars: ✭ 121 (+245.71%)
Mutual labels:  download
crunchyroll-dl
A fast, modern, and beautiful Crunchyroll downloader.
Stars: ✭ 111 (+217.14%)
Mutual labels:  download
IMDb-Scout-Mod
Auto search for movie/series on torrent, usenet, ddl, subtitles, streaming, predb and other sites. Adds links to IMDb pages from hundreds various sites. Adds movies/series to Radarr/Sonarr. Adds external ratings from Metacritic, Rotten Tomatoes, Letterboxd, Douban, Allocine. Media Server indicators for Plex, Jellyfin, Emby. Dark theme/style for …
Stars: ✭ 177 (+405.71%)
Mutual labels:  download
fansly
Simply scrape / download all the media from an fansly account
Stars: ✭ 351 (+902.86%)
Mutual labels:  download
autofocus
Deep learning computer vision for classifying wildlife in camera trap images
Stars: ✭ 48 (+37.14%)
Mutual labels:  fastai
hls-downloader
Download all video files from HLS (HTTP Live Streaming) VoD (Video on Demand) m3u8 playlist for local playback
Stars: ✭ 121 (+245.71%)
Mutual labels:  download
gamesearch
A Simple Search Engine to help you find FREE Download Links to your Favourite Games
Stars: ✭ 30 (-14.29%)
Mutual labels:  download
bandcamp-dl
A browser automation script to batch download your private bandcamp collection.
Stars: ✭ 30 (-14.29%)
Mutual labels:  download
Spotifarr
Spotifarr
Stars: ✭ 35 (+0%)
Mutual labels:  download
fbdl
📥 Download publicly shared videos from Facebook with an ease!
Stars: ✭ 29 (-17.14%)
Mutual labels:  download
torrent-webseed-creator
Webseeded torrent creator using GitHub Actions
Stars: ✭ 54 (+54.29%)
Mutual labels:  download
fastblog
My fastai blog
Stars: ✭ 20 (-42.86%)
Mutual labels:  fastai
Synergy-Binaries
Download the latest stable Synergy binaries.
Stars: ✭ 671 (+1817.14%)
Mutual labels:  download
react-native-simple-download-manager
A react native module to schedule downloads on native download manager
Stars: ✭ 35 (+0%)
Mutual labels:  download
CDNTool
CDN Nintendo's servers 3DS title downloader (as CIA)
Stars: ✭ 15 (-57.14%)
Mutual labels:  download
Floatplane-Downloader
Project for automatically organizing and downloading Floatplane videos for plex.
Stars: ✭ 94 (+168.57%)
Mutual labels:  download
nrk api
API to interact with NRK, also includes a cli.
Stars: ✭ 22 (-37.14%)
Mutual labels:  download
NovelScraper
Download manager & library for translated light novels.
Stars: ✭ 70 (+100%)
Mutual labels:  download
download
Dateidownloads von Files aus dem Medienpool über PHP oder X-SendFile
Stars: ✭ 30 (-14.29%)
Mutual labels:  download

fastdownload

Easily download, verify, and extract archives

If you have datasets or other archives that you want to make available to your users, and ensure they always have the latest versions and that they are downloaded correctly, fastdownload can help.

Install

Using pip:

pip install fastdownload

...or using conda:

conda install -c fastai fastdownload

What's this about?

The situation where you might want to use fastdownload is where you have one or more URLs pointing at some archives you want to make available, and you want to ensure that your users download those archives correctly, have the latest version, and that it's as easy as possible for them to access the information in those archives.

Your user just calls a single method, FastDownload.get, passing the URL required, and the URL will be downloaded and extracted to the directories you choose. The path to the extracted file is returned. If that URL has already been downloaded, then the cached archive or contents will be used automatically. However, if that size or hash of the archive is different to what it should be, then the user will be informed, and a new version will be downloaded.

In the future, you may want to update one or more of your archives. When you do so, fastdownload will ensure your users have the latest version, by checking their downloaded archives against your updated file size and hash information.

For instance, fastai uses fastdownload to provide access to datasets for deep learning. fastai users can download and extract them with a single command, using the return value to access the files. The files are automatically placed in appropriate subdirectories of a .fastai folder in the user's homedir. If a dataset is updated, users are informed the next time they use the dataset, and the latest version is automatically downloaded and extracted for them.

Usage: downloading files

When your users download an archive, fastdownload will automatically save it to a directory, check if the size and hash matches, and extract the contents. Minimal usage for downloading and extracting is:

from fastdownload import FastDownload
d = FastDownload()
path = d.get('https://...')

After this, path will contain the path where the extracted files are located. By default, archives are saved to {base}/archive, and extracted to {base}/data. {base} defaults to ~/.fastdownload. If there is more than one file or folder in the root of the downloaded archive, then a new folder is created in data for the contents.

Instead of get, use download to download the URL without extracting it, or extract to extract the URL without downloading it (assuming it's already been downloaded to the archive directory). All of these methods accept a force parameter which will download/extract the archive even if it's already present.

You can change any or all of the base, archive, and data paths by passing them to FastDownload:

d = FastDownload(base='~/.mypath', archive='downloaded', data='extracted')

You can remove the cached archive file and/or the extracted contents with rm:

d.rm('https://...')

Usage: making archives available to download

fastdownload will add a file download_checks.py to your Python module which contains file sizes and hashes for your archives. The file is located in the same directory as a module you choose, e.g.:

d = FastDownload(module=fastai.some_module)

Then use update to create or update the size and hash for a URL:

d.update('https://...')

You will now find there is a file called download_checks.py in the same directory where fastai.some_module is located, which contains a Python dict with the URL, size, and hash for this file. If you've downloaded this file before to your archive path then it will be used, instead of downloading a new copy. Use get(force=True) first to download a new copy if even you have it in your archive.

Config file

If there is a file called config.ini in your base directory, then keys archive and data will be used as the default values for FastDownload. The file should be in configparser format. Here's a sample config.ini:

[DEFAULT]         
archive = downloaded
data = extracted

If there is no ini file present, one will be automatically created for for you using the details you pass to FastDownload.

You can add any additional key/value pairs to the config file that you want. When you call FastDownload.get pass extract_key to use a key other than data for choosing a location to extract to.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].