https://github.com/scotow/mego
A simple megadl wrapper with auto-retry and download list
https://github.com/scotow/mego
command command-line go golang mega megatools
Last synced: 6 months ago
JSON representation
A simple megadl wrapper with auto-retry and download list
- Host: GitHub
- URL: https://github.com/scotow/mego
- Owner: scotow
- License: mit
- Created: 2019-01-27T17:11:55.000Z (over 6 years ago)
- Default Branch: master
- Last Pushed: 2023-02-06T10:06:27.000Z (over 2 years ago)
- Last Synced: 2024-06-19T05:56:16.098Z (over 1 year ago)
- Topics: command, command-line, go, golang, mega, megatools
- Language: Go
- Homepage:
- Size: 26.4 KB
- Stars: 24
- Watchers: 3
- Forks: 1
- Open Issues: 2
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# mego 💾
Mego is a simple [megatools](https://megatools.megous.com) command wrapper, allowing you to use the `megatools dl` command with a list of links and adds an auto-try tool.
### Idea
Megatools is a collection of programs used to access [mega.nz](https://mega.nz) services from the command line.
#### Auto-retry
While using the `megatools dl` command to download a bunch of large files, I often found myself being blocked by Mega for reaching the allowed quota (aka. error 509).
Indeed, Mega allows users to download a few GB per day (apparently not fixed).
By default `megatools dl` only retries 3 times when this error occurred, preventing the download of file during the night or while being away from the computer. To fix this problem, `mego` checks the error code returned by `megatools dl`, and retry if the command failed.
#### List of files
Another problem that I found while using `megatools dl` is the lack of options to download multiple files at once, and keeping track of the completed ones.
To solve this problem, `mego` accepts as arguments a path of file(s) containing a list of Mega download links. `mego` will open the file and start downloading the files listed in it. Once the download of the file successfully terminated, `mego` will add a `#` before the link and write it in the file, preventing the next execution to re-download the file. `mego` will also mark invalid links it found with the `#-` string.
#### Compatibility
Because this script is a wrapper around the `megatools` command, it heavily depends on the outputs of the command. If you have problems using this script, be sure to use the version 1.11.0 (04.04.20) of `megatools`. You can download the latest version [here](https://megatools.megous.com/builds/experimental/) or use the [megatools.PKGBUILD](https://github.com/scotow/mego/blob/master/megatools.PKGBUILD) file available in this repo.
### Usage
```
Usage of mego:mego [-c COMMAND_PATH] [-s SPEED] [-p] [-r INTERVAL] LINK... LINK_PATH...
Application Options:
-s, --speed-limit=SPEED Speed limit passed to megatools dl as --limit-speed (default: 0)
-p, --pipe-outputs Pipe megatools's stdout and stderr
-r, --retry=INTERVAL Interval between two retries (default: 15min)
-c, --command=COMMAND_PATH Path to the megatools command (default: megatools)
```NB: The whole content of a list file is read and kept in memory. Every time a file is downloaded, the content of the list file will be overwritten. So please do not use a list file as a queue during execution.