plowup(1)
β¨ NAME β¨
plowup(1) β simple upload manager for file sharing websites. This one is from Plowshare for Bash 4, bestie, and it is literally here to make uploads less cursed. π
πΈ SYNOPSIS πΈ
plowup [OPTIONS]... [MODULE_OPTIONS]... MODULE URL|FILE[:DESTNAME]...
π¦ DESCRIPTION π¦
plowup is a command-line tool designed for automatic upload on file-sharing websites. It acts like a web browser, retrieving pages and filling HTML forms. Iconic behavior, no cap. β¨
Anonymous upload is not allowed by all sites β some of them may require authentication. See specific module options below. π
π OPTIONS π
π§‘ Common options π§‘
-i,--interface=IFACEβ If your machine has several network interfaces, force using theIFACEinterface. Pick your network lane, bestie. π£οΈ-r,--max-retries=Nβ Set maximum retries for upload failures. Apply on module exit value:1(fatal error),3(network error),7(captcha error). Default option value is0(no retry) and applies for one single upload. π-t,--timeout=SECSβ Cancel upload download afterSECSseconds of waits. Apply on module exit value:10(temporary unavailable error). This error mainly occurs on remote upload operations. Default option value is disabled (no timeout, infinite) and applies for one single upload. β³--cache=METHODβ Cache policy regarding module storage space. Each module is able to save data (credentials, authentication session, or tokens) in order to be reused later. Available values:noneβ module storage file is deleted before each item processing. Temporary directory is used.session(default) β module storage file is deleted at the end ofplowupexecution. Temporary directory is used.sharedβ module storage file is global and located (in~/.config/plowshare/storage/). It can be accessed by any other instance ofplow*scripts.
β οΈ Warning: There is no atomicity (or file locking) on concurrent access. Be so fr.
- Example: Multiple file upload using a premium account. If supported by module, login stage could be performed once. π
π΅οΈ Captcha options π΅οΈ
--9kweu=KEYβ Use 9kw.eu service to solve captchas. π--antigate=KEYβ Use Antigate.com service to solve captchas. π--captchabhood=USER:PASSWORDβ Use Captcha Brotherhood service to solve captchas. π―--captchacoin=KEYβ Use CaptchaCoin service to solve captchas. πͺ--deathbycaptcha=USER:PASSWORDβ Use Death by Captcha service to solve captchas. π--captchamethod=METHODβ Force specific captcha solving method (if unspecified it is autodetected). Available values:imgurβ upload image to Imgur.com service, print image url in console and prompt for manual entering. Useful for NAS and embedded devices.noneβ abort if captcha solving is requested (even if automatic solving service is available).onlineβ use captcha solving website only (9kweu, Antigate, CaptchaBrotherhood, CaptchaCoin or DeathByCaptcha account required).fbβ display image in framebuffer console and prompt for manual entering. Looks for framebuffer viewers:fbi,fim.FRAMEBUFFERenvironment variable can contain device file. Default is/dev/fb0.noxβ display image in console (text) and prompt for manual entering. Looks for ascii viewers:img2txt,aview,tiv.x11β display image in an X11 window and prompt for manual entering. Looks for viewers:display,feh,sxiv,qiv.DISPLAYenvironment variable must not be empty. πΌοΈ
--captchaprogram=PROGRAMβ Call external program or script for solving captchas. Provided executable can be located inPATHenvironment variable. Three arguments are given:$1module name (lowercase). For example:mediafire.$2image filename (with full path).$3hint or captcha type (string). For example:recaptcha,solvemediaordigits-4.
Return value (on stdout) and exit status:
0β solving success. Captcha Word(s) must be echo'ed.2β external solver is not able to solve requested captcha. Letplowupcontinue solving it normally (will consider--captchamethodif specified).7β external solver failed. Note: this exit code is eligible with retry policy (-r/--max-retries).
Note: plowup legacy exit errors can also be returned, for example: 1 (fatal) or 3 (network). π§
ποΈ Tuning settings ποΈ
--max-rate=SPEEDβ Limit upload maximum speed in bytes per second. Suffixes are:kfor kilobytes (kB i.e.1000),Mfor megabytes (MB i.e.1000^2),KorKifor kibibytes (KB or KiB i.e.1024),morMifor mebibytes (mB or MiB i.e.1024^2). π
--min-rate=SPEEDβ Limit upload minimum speed in bytes per second (for a delay of 30 seconds). Suffixes are the same than--max-rate. π’--temp-directory=DIRECTORYβ Directory for temporary files: cookies, images, ... ποΈ--name=FORMATβ Format destination filename (applies on each file argument). Can be useful if you want to append or prepend a string to all your files. Default format string is"%f". Interpreted sequences are:%%β raw%character%fβ destination (remote) filename%gβ destination (remote) filename (without extension)%Gβ destination (remote) filename (without extension, greedy)%hβ MD5 hash (32-digit hexadecimal number, lowercase letters)%lβ source (local) filename%mβ module name%sβ file size (in bytes)%xβ extension (without dot character) of%f(not greedy) β¨
--run-before=PROGRAMβ Call external program or script before upload file processing. Provided executable can be located inPATHenvironment variable. Messages can be sent tostderr,stdoutis trashed. Three arguments are given:$1module name (lowercase). For example:mediafire.$2local filename$3destination filename$4cookie (initially empty) file given to upload module function.
Exit status:
0β script success.plowupcontinue normally.2β script explicitly requests skipping current file.
Note: Any other script exit status like 1 (fatal) or 3 (network) will be ignored (an error message will be reported). π«Ά
--printf=FORMATβ Print results (on stdout) in a given format (for each successful upload). Default format string is"%L%M%u%n". Interpreted sequences are:%%β raw%character%aβ admin url or admin code (rare case)%Aβ same as%abut url is escaped for JSON usage%Mβ empty if%ais empty, or alias to"#ADM %a%n".%dβ delete url%Dβ same as%dbut url is escaped for JSON usage%Lβ empty if%dis empty, or alias to"#DEL %d%n".%fβ destination (remote) filename%lβ source (local) filename%mβ module name%nβ newline%sβ filesize (positive integer in bytes)%tβ tabulation character%Tβ 24-hour clock time of finished file upload. 8 characters string in the format"HH:MM:SS"(invoke/bin/date +%T).%uβ download url%Uβ same as%ubut url is escaped for JSON usage π―
π Logging options π
-v,--verbose=LEVELβ Set output verbosity level:0β none,1β errors,2β notice (default behavior),3β debug,4β report (very noisy, log HTML pages). π
-q,--quietβ Alias for-v0. Do not print any debug messages. π€«
π Miscellaneous options π
--no-colorβ Disables log messages (stderr only) output coloring. π¨--no-curlrcβ Do not use curl config file (~/.curlrc). π«--curlrc=FILEβ Force using an alternate curl configuration file. Replaces~/.curlrcif it exists. This option has no effect when--no-curlrcis defined. π--no-plowsharercβ Do not consider any configuration file. π«--plowsharerc=FILEβ Force using an alternate configuration file (instead of per-user or systemwideplowshare.conf). This option has no effect when--no-plowsharercis defined. π--modulesβ Display all supported module names (one per line) and exit. Useful for wrappers. π§©
π Generic program information π
-h,--helpβ Display main help and exit. π-H,--longhelpβ Display complete help (with module options) and exit. π--versionβ Output version information and exit. π·οΈ
π MODULE OPTIONS π
π Common options π
-a,--auth=USER:PASSWORDβ Use premium account. π-b,--auth-free=USER:PASSWORDβ Use free account. π-d,--description=DESCRIPTIONβ Set file description. π--folder=FOLDERβ Folder to upload files into. Usually a (leaf) folder name (no hierarchy assumed). π-p,--link-password=PASSWORDβ Protect your files with a password. May require premium account. π--email-from=EMAILβ<From>field for notification email. π§--email-to=EMAILβ<To>field for notification email. π§
π οΈ Advanced options π οΈ
--asyncβ Asynchronous remote upload (only start upload, don't wait for link). β‘--privateβ Do not allow others to download the file. π
All switches are not implemented nor required for all modules. See long help message for detailed modules option list. π
π FILES π
/etc/plowshare.confβ Systemwide configuration file. π’~/.config/plowshare/plowshare.confβ This is the per-user configuration file. π
The file format is described in plowshare.conf(5). π
~/.config/plowshare/exec/β Additional directory considered when searching for executable. See--captchaprogramswitch. π§~/.config/plowshare/modules.d/β User directory considered when searching for modules at startup (plowupwill try to open~/.config/plowshare/modules.d/*/config). One file per module (hoster). π§©~/.config/plowshare/storage/β Directory used for storing data (one file per module) among sessions. See--cache=sharedswitch. πΎ
πΈ ENVIRONMENT VARIABLES πΈ
Okay bestie, these little env vars can lowkey change how plowup behaves β iykyk:
DISPLAYβ the X11 display server address, and it's what gets used to actually show captchas on screen. Peep the--captchamethod=x11docs down below πFRAMEBUFFERβ this one's for showing captchas too. See the--captchamethod=fbdocumentation πHOMEβplowupgoes looking for your user config directory in~/.config/plowshare(check the FILES section above π). If it finds it, then~/.curlrcgets used too β unless you hit it with--no-curlrcto disable that β¨PLOWSHARE_CURLβ lets you point at a totally differentcurlcommand (a$PATHsearch is considered, no cap). If you don't set it, plain oldcurlis used π¦PLOWSHARE_JSβ same energy but for thejscommand β specify an alternate one (again,$PATHsearch is considered). Not defined? Thenjsis what runs πXDG_CONFIG_HOMEβ the directory where your user configuration files live. If it's not set,~/.configis assumed, periodt πΈ
π EXIT CODES π
So when plowup bails, it tells you why with these numbers. Here's the whole mood ring:
0β Success! We ate. π₯1β Fatal error. Either the upstream site updated on us or something unexpected happened π2β No available module (the module name you gave literally does not exist) π3β Network error. Mostly curl-related stuff π«Ά4β Authentication failed (bad login or password, bestie) π5β Timeout reached (go look at the-t/--timeoutcommand-line option) β³6β Maximum tries reached (refer to the-r/--max-retriescommand-line option) π7β Captcha generic error π§©8β System generic error π»10β That feature (the upload service) seems temporarily unavailable from upstream β your user account may be temporarily banned π12β Authentication required (for example: anonymous users can't do remote upload) π14β Can't upload a file that's too big (either it's a hoster limitation or you need more permissions) π15β Unknown command line parameter or incompatible options π«16β Asynchronous remote upload started (so we can't predict the final status, sorry bestie) π
Lowkey important: if plowup is invoked with multiple files and one or several errors occur, the first error code gets returned added with 100. So like, don't panic when you see a 103 or whatever π
π AUTHORS π
Plowshare was initially written by Arnau Sanchez. Check out the AUTHORS file for a list of some of the many other contributors β there are a lot of them and they're all icons fr fr π«Ά
Plowshare is (C) 2010-2016 The Plowshare Team π
π¦ SEE ALSO π¦
Go read these too, they're the whole friend group:
plowdown(1), plowdel(1), plowlist(1), plowprobe(1), plowshare.conf(5), plowmod(1).
And that's the whole page, bestie!! π This one's from the GPL corner of the world, dated July 13, 2016, and it's the plowup(1) manpage β go forth and upload slayfully π
β¨
π¦ where this page comes from
- nixos 26.05: plowshare 2.1.7
- nixpkgs unstable: plowshare 2.1.7
- opensuse-leap 16.0: plowshare 2.1.7-bp160.1.4 Β· GPL-3.0+
- Copyright (c) 2010\-2016 Plowshare Team
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms