All Projects → uget → uget

uget / uget

Licence: other
(WIP) Universal Getter of remote files

Programming Languages

go
31211 projects - #10 most used programming language

Projects that are alternatives of or similar to uget

Pyload
The free and open-source Download Manager written in pure Python
Stars: ✭ 2,393 (+5102.17%)
Mutual labels:  downloader, downloadmanager, ddl
Androiddownloader
An powerful download library for Android.
Stars: ✭ 287 (+523.91%)
Mutual labels:  downloader, downloadmanager
Fast Android Networking
🚀 A Complete Fast Android Networking Library that also supports HTTP/2 🚀
Stars: ✭ 5,346 (+11521.74%)
Mutual labels:  downloader, downloadmanager
Mzdownloadmanager
This download manager uses NSURLSession api to download files. It can download multiple files at a time. It can download large files if app is in background. It can resume downloads if app was quit.
Stars: ✭ 1,061 (+2206.52%)
Mutual labels:  downloader, downloadmanager
anime-scraper
[partially working] Scrape and add anime episode stream URLs to uGet (Linux) or IDM (Windows) ~ Python3
Stars: ✭ 21 (-54.35%)
Mutual labels:  downloader, uget
dl
Command-line file downloader tool
Stars: ✭ 39 (-15.22%)
Mutual labels:  downloader, downloadmanager
Downloader
Downloader for android with pause, resume, cancel, queue options
Stars: ✭ 40 (-13.04%)
Mutual labels:  downloader, downloadmanager
Fetch
The best file downloader library for Android
Stars: ✭ 1,124 (+2343.48%)
Mutual labels:  downloader, downloadmanager
Docker Jdownloader
JDownloader 2 Docker Image (Multiarch) - Passed 40M Downloads
Stars: ✭ 85 (+84.78%)
Mutual labels:  downloader, downloadmanager
Rxdownloader
Demo of Downloading Songs/Images through Android Download Manager using RxJava2
Stars: ✭ 166 (+260.87%)
Mutual labels:  downloader, downloadmanager
android-downloader
An powerful download library for Android.
Stars: ✭ 375 (+715.22%)
Mutual labels:  downloader, downloadmanager
DownloadManagerPlus
Using faster and easier than Android Download Manager
Stars: ✭ 80 (+73.91%)
Mutual labels:  downloader, downloadmanager
VandaDownloader
强大的下载特性支持,更加清晰的特性设计。
Stars: ✭ 25 (-45.65%)
Mutual labels:  downloader, downloadmanager
yuu
Yuu - a simple AbemaTV and other we(e)bsite video downloader
Stars: ✭ 50 (+8.7%)
Mutual labels:  downloader
aria2lib
A small library that is capable to run an aria2 executable without UI
Stars: ✭ 22 (-52.17%)
Mutual labels:  downloader
nts
NTS Radio downloader and metadata parser
Stars: ✭ 58 (+26.09%)
Mutual labels:  downloader
zippyshare-downloader
Download file from zippyshare directly with python
Stars: ✭ 25 (-45.65%)
Mutual labels:  downloader
wget-lua
Wget-AT is a modern Wget with Lua hooks, Zstandard (+dictionary) WARC compression and URL-agnostic deduplication.
Stars: ✭ 52 (+13.04%)
Mutual labels:  downloader
manhuagui-dlr
Python made manhuagui downloader, almost afk, browser/JS free, supports proxy and proxy pool.
Stars: ✭ 23 (-50%)
Mutual labels:  downloader
VKRdownloader
Vkrdownloader: All in one Video Downloader - Download videos from facebook twitter youtube tiktok and 1000+ other sites . YouTube downloader , facebook downloader . made by Vijay Kumar
Stars: ✭ 25 (-45.65%)
Mutual labels:  downloader

uget (universal get)

Travis Build Status

Table of contents

  1. Introduction
  2. Getting started
  3. Installation
  4. Code examples
  5. CLI
  6. Contributing
  7. Reporting bugs

1. Introduction

This project aims at providing an API / CLI for downloading remote files, focusing mainly on premium file-hosters.

This repository holds the core project and aims to be very flexible. Check out the supported providers at the other repository

WARNING: This package is under heavy development, so documentation may fall behind and the APIs may change.

2. Getting started

2.1 Installation

It's simple! Install Go, setup your $GOPATH and run:
go install github.com/uget/uget

2.2 Library usage

It's best to check out the cli code for examples.

Downloading a multitude of links:

import "github.com/uget/uget/core"

// First, get your links from somewhere:
urls := ...
// Then, create a new downloader:
downloader := core.NewClient()
// Add those links to the downloader's queue:
waitGroup := downloader.AddURLs(urls)
// Register some callbacks:
downloader.OnDownload(func(download *core.Download) {
	// Access the File field:
	download.File.Name()
	download.File.URL()
	download.File.Length()

	// hashObject is a hash.Hash used for generating a checksum
	checksum, algorithmName, hashObject := download.File.Checksum()

	// the provider, e.g. basic / imgur.com / uploaded.net / oboom.com etc.
	// see a list of all providers at https://github.com/uget/providers
	download.File.Provider()

	// wait for download to finish:
	download.Wait()
	// and get the error if there was one:
	download.Err()

	// OR: print download status every second

	interval := 1*time.Second
	ticker := time.NewTicker(interval)
	defer ticker.Stop()

	fmt.Printf("%s: started\n", download.File.Name())
	for {
		select {
		case <-ticker.C:
			percentage := download.Progress() / download.File.Size()
			fmt.Printf("  %s: %.2f%% of %d\n", download.File.Name(), percentage, download.File.Size())
		case <-download.Waiter():
			if download.Err() != nil {
				fmt.Printf("  %s: ERROR! %v\n", download.File.Name(), download.Err())
			} else {
				fmt.Printf("  %s: DONE!\n", download.File.Name())
			}
			return
		}
	}
})
// Start client (in the background)
downloader.Start()

// Wait for the jobs provided earlier to finish
waitGroup.Wait()

// No downloads left, all jobs done.

2.3 CLI

Implemented

Get remote files:

uget get CONTAINER_SPEC...

Read meta information on remote files:

uget meta CONTAINER_SPEC...

CONTAINER_SPEC can be a plain file with a list of URLs. If option -i is passed, the arguments are interpreted as direct URLs instead.

Add an account to a provider. You will be prompted for your credentials.

uget accounts add [PROVIDER]

List your saved accounts.

uget accounts list [PROVIDER]

Not (fully) implemented yet

Start server as daemon.

uget daemon

Start server in foreground.

uget server

Push a list of files to the listening server.

uget push [OPTIONS...] CONTAINER_SPEC...

Tell the daemon to drop a container (or a file)

uget drop [ID]

Pause the daemon.

uget pause [--soft]

Continue the daemon.

uget continue

List the downloads.

uget list [CONTAINER_ID]

3. Contributing

Contributions are welcome! Fork -> Push -> Pull request.

4. Bug report / suggestions

Just create an issue! I will try to reply as soon as possible.

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].