Download manager

FlexGet – multipurpose automation download tool

FlexGet is a multipurpose automation tool for all of your media. It offers wide support including torrents, nzbs, podcasts, comics, TV, movies, RSS, HTML, CSV, and more.

Installation

We evaluated FlexGet using Manjaro, an Arch-based distro, as well as the ubiquitous Ubuntu.

With Manjaro, Pamac (Manjaro’s front-end installation tool) lets us install from the Arch User Repository (AUR).

The AUR is a community-driven repository. It contains package descriptions (PKGBUILDs) that allow users to compile a package from source with makepkg and then install it via the in-house pacman, a lightweight, simple and fast package manager that allows for continuously upgrading the entire system with one command

Installing FlexGet

The software has so many dependencies, we didn’t expect the build process to go smoothly and would need manual intervention. We were wrong; every single package built with no issues.

Transactions

Post-Installation

We’re not ready yet to start using FlexGet. You need to manually create a configuration file. FlexGet uses YAML markup in the configuration file. YAML is a way of defining sets of keys (such as plugin names or options) and values (such as series names or path to download files).

On our test system we saved our config file at ~/.config/flexget/config.yml.

Here’s an example config file.

templates:
  book:
    rss:
      url: ''
      all_entries: no
    # Replace with your Downloader plugin
    deluge:
      path: '~/Downloading'
      queuetotop: yes
    accept_all: yes
    no_entries_ok: yes

tasks:
  book-tv:
    priority: 1
    # Set your download location and label acording to downloader plugin
    set:
      movedone: '~/TV/{{ series_name }}'
      label: 'TV'
    exists_series: '~/TV/{{ series_name }}'
    metainfo_series: yes
    tvmaze_lookup: yes
    require_field:
      - tvmaze_series_name
    template: book

  book-movie:
    priority: 2
    # Set your download location and label according to downloader plugin
    set:
      main_file_only:  yes
      keep_subs: yes
      hide_sparse_files: no
      movedone: '~/Movies'
      label: 'Movies'
    metainfo_movie: yes
    imdb_lookup: yes
    require_field:
      - imdb_name
    # For IMDB lookup issues failures
    if:
      - imdb_name == None: reject
    template: book

  book-other:
    priority: 3
    metainfo_series: yes
    imdb_lookup: yes
    tvmaze_lookup: yes
    if:
      - has_field('imdb_name'):
          # For IMDB lookup issues failures
          if:
            - imdb_name != None: reject
      - has_field('tvmaze_series_name'): reject
    # Set your download location and label according to downloader plugin
    set:
      movedone: '~/Other'
      label: 'Bookmarks'
    template: book

Plugins provide most of the functionality in FlexGet. Plugins usually create, manipulate or download entries but they can also change how FlexGet operates.

Summary

FleXget is a very powerful download tool. For example, it integrates with SABnzbd, Deluge, Transmission, and other clients. It offers very comprehensive series support.

We mostly use the program for an automated podcast listening experience. It’s very useful when in conjunction with applications which have watch directory support.

But it’s essential to study the project’s Cookbook. If you hate editing text file, FlexGet is not for you.

Website: www.flexget.com
Support: GitHub Code Repository
Developer: Chase Sterling, Or Carmi, and many contributors
License: MIT License

FlexGet is written in Python. Learn Python with our recommended free books and free tutorials.

Subscribe
Notify of
guest

This site uses Akismet to reduce spam. Please read our Comment FAQ before posting a comment.

0 Comments
Oldest
Newest Most Voted
Inline Feedbacks
View all comments