LinuxCommandLibrary

flexget

Automate downloading content based on defined rules

TLDR

Run all Flexget tasks now

$ flexget execute --now
copy

Start the Flexget daemon and daemonize its process
$ flexget daemon start --daemonize
copy

List all series recorded in Flexget
$ flexget series list
copy

Run a task from a configuration file
$ flexget -c [path/to/config.yml] execute --task [task_name]
copy

SYNOPSIS

flexget [global-options] <command> [command-options] [arguments]

Common usage examples:
flexget execute
flexget --test execute --tasks my_task
flexget --config /path/to/my_config.yml daemon start

PARAMETERS

-c CONFIG, --config=CONFIG
    Specifies the path to the configuration file. Defaults to config.yml in the data directory.

--logfile=LOGFILE
    Directs logging output to the specified file instead of the default location.

--log-level=LEVEL
    Sets the minimum logging level. Options include debug, verbose, info, warning, error, critical. Defaults to info.

-v, --verbose
    Increases output verbosity. Use twice (-vv) for debug level output.

-q, --quiet
    Suppresses most output, showing only critical errors.

--debug
    Enables debug level logging and verbose output.

--test
    Runs the command in 'test mode', preventing any actual changes (e.g., file downloads or database modifications) from occurring. Useful for dry runs.

--learn
    Used in conjunction with --test to allow database changes (e.g., marking entries seen) without performing actual downloads. Useful for backfilling history.

--profile
    Enables profiling of FlexGet execution, useful for performance analysis.

--no-cache
    Disables caching for the current run, forcing all sources to be re-fetched.

--version
    Displays the FlexGet version and exits.

DESCRIPTION

FlexGet is a powerful, open-source automation tool designed to manage and download various types of content, such as TV shows, movies, podcasts, and more. It works by monitoring RSS feeds, websites, or other sources, applying user-defined filters, and then instructing external download clients (like BitTorrent clients, Usenet downloaders, or traditional download managers) to fetch the content. Its highly flexible and extensible plugin-based architecture allows users to customize its behavior extensively, from sophisticated content filtering rules to managing downloaded media libraries. FlexGet excels at automating repetitive downloading tasks, ensuring users get the content they want as soon as it becomes available, based on their specific criteria.

CAVEATS

FlexGet's power comes with complexity; its configuration file (config.yml) uses YAML and can become intricate for advanced setups, requiring a good understanding of its various plugins and their interactions. It relies heavily on external applications (e.g., BitTorrent clients, Usenet downloaders) for actual content retrieval, which must be separately installed and configured. Misconfigurations can lead to unintended downloads or inefficient operation.

CONFIGURATION FILE (<I>CONFIG.YML</I>)

FlexGet's behavior is entirely controlled by its YAML-based configuration file, typically named config.yml. This file defines tasks, inputs (sources), filters, outputs (destinations), plugins to use, and various other settings. Understanding its structure is crucial for effective use of FlexGet.

PLUGIN SYSTEM

The core strength of FlexGet lies in its extensive plugin system. Almost every feature, from parsing RSS feeds to interacting with download clients or renaming files, is implemented as a plugin. This modular design allows users to combine functionalities and extend FlexGet's capabilities to suit virtually any content automation scenario.

SCHEDULING

For continuous operation, FlexGet can be scheduled to run periodically. This is commonly achieved by using a system scheduler like cron on Linux/macOS, or by running FlexGet in daemon mode (flexget daemon start), which keeps it running in the background and executes tasks based on defined schedules within its own configuration.

HISTORY

FlexGet originated from a project called "r-a-d" (RSS Auto Downloader), which focused primarily on automating RSS feed processing. As the project grew in scope and flexibility, supporting more diverse content sources and output destinations, it was rebranded as FlexGet, emphasizing its adaptable, plugin-driven architecture. Since its inception, it has evolved into a robust and widely used open-source tool, continuously updated with new features and plugins by its active community, maintaining its core focus on highly customizable content automation.

SEE ALSO

cron(8), wget(1), curl(1), transmission-cli(1), rtorrent(1)

Copied to clipboard