---
name: "plowprobe"
section: "1"
platform: "linux"
package: "plowshare"
version: "2.1.7-4"
release: "Debian 11 (Bullseye)"
platforms: ["linux"]
url: "https://new.carta.tech/plowprobe"
---

# plowprobe(1)

Gather information from file sharing download links

## NAME

plowprobe - Gather information from file sharing download links

## SYNOPSIS

**plowprobe** \[*OPTIONS*\]... \[*MODULE\_OPTIONS*\]... *URL*\|*FILE*...

## DESCRIPTION

**plowprobe** is a command-line tool designed for retrieving metadata from file-sharing download links. Information are printed on stdout (only alive links). Provided links can also be downloaded with [plowdown(1)](/plowdown/1.md).

## OPTIONS

### Common options

- **-i,** **--interface=***IFACE*

  If your machine has several network interfaces, force using *IFACE* interface.

- **--printf=***FORMAT*

  Print results (on stdout) in a given format (for each non-dead link). Default format string is *"%F%u%n"*. Interpreted sequences are:

  - *%%*

    raw % character

  - *%c*

    probe function return status (0 for success, 13 for dead link, see list below)

  - *%f*

    filename (can be empty string)

  - *%F*

    empty if **%f** is empty, or alias to "**# %f%n**".

  - *%h*

    filehash (can be empty string if not available). Usually MD5 or SHA1. If hoster supports several algorithms, the longest digest is used.

  - *%i*

    file identifier (can be empty string if not available). Usually included in input URL.

  - *%m*

    module name

  - *%n*

    newline

  - *%s*

    filesize (positive integer) in bytes (can be empty string if not available). Note: It's often approximative.

  - *%t*

    tabulation character

  - *%T*

    file timestamp (can be empty string if not available). Unix epoch time is preferred.

  - *%u*

    download (source) url

  - *%U*

    same as **%u** but url is escaped for JSON usage

  - *%v*

    alternate or refactored download url. This can be for example fixing primary hostname (to avoid HTTP 301 redirection), or force HTTPS protocol. If not available, alias to **%u**.

  - *%V*

    same as **%v** but url is escaped for JSON usage

  Note: Metadata are often not fully available from hosters nor implemented by all modules.

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

- **--follow**

  If no module is found for link, follow HTTP redirects (curl -L). Default is disabled.

- **--get-module**

  Echo module name for each URL and exit. Faster than **--printf=%m**. Useful for wrappers.

- **--no-curlrc**

  Do not use curl config file (~/.curlrc).

- **--curlrc=***FILE*

  Force using an alternate curl configuration file. Replaces ~/.curlrc if it exists. This option has no effect when **--no-curlrc** is defined.

- **--no-plowsharerc**

  Do not consider any configuration file.

- **--plowsharerc=***FILE*

  Force using an alternate configuration file (instead of per-user or systemwide plowshare.conf). This option has no effect when **--no-plowsharerc** is defined.

- **--modules**

  Display all supported module names (one per line) and exit. Useful for wrappers.

### Generic program information

- **-h, --help**

  Display this help and exit.

- **-H, --longhelp**

  Display complete help (with module options) and exit.

- **--version**

  Output version information and exit.

## MODULE OPTIONS

There is none yet!

## FILES

- *~/.config/plowshare/plowshare.conf*

  This is the per-user configuration file.

- */etc/plowshare.conf*

  Systemwide configuration file.

The file format is described in [**plowshare.conf**(5)](/plowshare.conf/5.md).

- *~/.config/plowshare/modules.d/*

  User directory considered when searching for modules at startup (plowprobe will try to open **~/.config/plowshare/modules.d/\*/config**). One file per module (hoster).

## ENVIRONMENT VARIABLES

The following environment variables may affect plowprobe:

- *HOME*

  Search for user configuration directory in **~/.config/plowshare** (see FILES section above). If found, **~/.curlrc** will be used (use **--no-curlrc** to disable it).

- *PLOWSHARE\_CURL*

  Specifies an alternate curl command (**$PATH** search is considered). If not defined, **curl** is used.

- *XDG\_CONFIG\_HOME*

  The directory to store user configuration files. If not defined, **~/.config** is assumed.

## EXIT CODES

Possible exit codes are:

- 0

  Success. Folder contain one or several files.

- 1

  Fatal error. Upstream site updated or unexpected result.

- 2

  No available module (provided URL is not supported).

- 3

  Network error. Mostly curl related.

- 8

  System generic error.

- 10

  Link alive but temporarily unavailable.

- 11

  Link alive but requires a password.

- 12

  Link alive but requires some authentication (private or premium link).

- 13

  Link is dead.

- 15

  Unknown command line parameter or incompatible options.

If **plowprobe** is invoked with multiple links and one or several errors occur, the first error code is returned added with 100.

## AUTHORS

Plowshare was initially written by Arnau Sanchez. See the AUTHORS file for a list of some of the many other contributors.

Plowshare is (C) 2010-2016 The Plowshare Team

## SEE ALSO

[**plowdown**(1)](/plowdown/1.md), [**plowup**(1)](/plowup/1.md), [**plowdel**(1)](/plowdel/1.md), [**plowlist**(1)](/plowlist/1.md), [**plowshare.conf**(5)](/plowshare.conf/5.md), [**plowmod**(1)](/plowmod/1.md).
