Skip to content

Latest commit

 

History

History
430 lines (360 loc) · 26.4 KB

Plugins.md

File metadata and controls

430 lines (360 loc) · 26.4 KB
title description published date tags editor dateCreated
Plugins
true
2023-02-22 02:19:14 UTC
markdown
2022-09-18 04:51:15 UTC

Plugins

Plugins provide most of the functionality in FlexGet. Plugins usually create, manipulate or download entries but they can also change how FlexGet operates. Many plugins can use the Jinja2 template system.

Most plugins are enabled by placing a keyword and required settings in a configuration file. All plugins listed below are included in the FlexGet package (with the exception of the third-party plugins section).

This documentation is meant for the latest released version. If you are upgrading from an older version, see upgrade actions and the changelog for help in migrating your configuration file.

Indentation in examples

All configuration examples are assumed to be placed under the tasks (or templates) top-level keys. If the documentation has this example:

series:
  - name

In a full configuration, this goes into:

tasks:
  task_name:
    rss: http://example.com
    series:
      - name

This makes examples more compact and reduces unnecessary boilerplate.

For further help with YAML and indenting, see configuration.

Plugin Types

Input

Produce entries from external source.
Most requests are cached so there is no penalty for using the same RSS URL multiple times in the configuration, for example.

Note: If you are looking for torrent search plugins, refer to Search Plugins.

Raw Input

Input plugins that directly parse data from a source based on its type.

Keyword Description
csv Parse any CSV-file
filesystem Search through a local directory looking for files as a input.
html Parse any HTML-page.
limit Limit the amount of entries created by another input plugin.
rss Parse RSS-feed.
sftp_list List files from an SFTP server
search_rss Search with parametrized rss feed.
tail Tail a log file (eg. irc logs)
text Parse any text data
regexp_parse Use regular expressions to parse text from a web resource or file
ftp_list Lists the content of a remote FTP server

3rd party sites input

Input plugins designed to retrieve data from 3rd party web-sites, such as IMDB, trakt & etc.

Keyword Description
anidb_list Create entries from your AniDB wishlist.
anilist Create entries from your AniList watchlist.
apple_trailers Get movie trailers from Apple.com
betaseries_list Use series you follow on www.betaseries.com as an input
eztv Use latest entries from EZTV
from_imdb Produce entries based on an IMDB person, company or character
kitsu Produce Entries based on your Kitsu.io libraries.
imdb_list Use movies in your IMDb list as an input (eg. watchlist, rating history). Managed List.
Note: This plugin does not currently work, look into imdb_watchlist
filmweb_watchlist Use your Filmweb wathlist as an input
imdb_watchlist Use you IMDB watchlist as an input
letterboxd Create entries for movies on any public Letterboxd list
magnetdl Create entries from magnetdl.com
my_anime_list Create entries from MyAnimeList animelist.
myepisodes_list Create entries from the shows in your myepisodes.com account.
npo_watchlist Create entries for the shows and episodes in your npo.nl account (Dutch public television).
pogcal Produce entries for shows marked on your pogdesign calendar.
rottentomatoes_list Use movies from Rotten Tomatoes lists.
sceper Parse http://sceper.ws.
thetvdb_list Produce an entry for all shows you have marked as favorites at http://thetvdb.com. Managed List
next_trakt_episodes Create entries for the latest or the next episode to watch or collect by your trakt.tv activity.
trakt_list Create entries from one of your trakt.tv lists. Managed List
twitterfeed Create entries from a twitter account.
lostfilm Create entries from lostfilm.tv

3rd party software input

Input plugins designed to retrieve data from 3rd party software, such as Sonarr, couchpotato, deluge & etc.

Keyword Description
couchpotato_list Produce entries from couchpotato wanted movies list. Managed List
from_deluge Use torrents loaded in a Deluge daemon as input.
from_rtorrent Use torrents loaded in a rTorrent as input.
from_transmission Use torrents loaded in Transmission as input.
from_qbittorrent Use torrents loaded in QBittorrent as input.
plex Produce entries for shows present in a Plex Media Server section.
plex_watchlist Plex watchlist Managed List
radarr_list Produce entries from or to radarr_list. Managed List
sickbeard Produce entries from Sickbeard's show list
sonarr_list Produce entries from Sonarr's show list. Managed List
next_sonarr_episodes Produce entries for missing episodes from Sonarr
medusa Produce entries from Medusa's show list

Internal Input

Input plugins that will generate entries based on preexisting data in FlexGet.

Keyword Description
configure_series Configures the series plugin with all the shows given by any input plugin (eg. filesystem, rss).
discover Produce entries from search results.
from_digest Outputs entries which have been collected by the digest plugin.
from_task Runs another task and outputs accepted entries from that task.
next_series_episodes Emits the next episode needed for each series configured in the series plugin. Useful for example with discover.
next_series_seasons Emits the next season needed for each series configured in the series plugin. Useful for example with discover.
inputs Configure the same input plugin multiple times in one task.
entry_list Use or add entries to a custom made entry list. Managed List
movie_list Use or add entries to a custom made movie list. Managed List
subtitle_list Use or add entries to a custom made subtitle list. Managed List
pending_list Manually approve entries. Managed List

Filter

Reject or Accept entries based on given rules. A single task may have any number of filters.
If you plan to use multiple filters per task, you should look at filtering operations to understand how they work.

Content based filters

Filters based on the nature of the input content (such as movie, series, series premiere & etc.)

Keyword Description
all_series Accepts any entry that appears to be an episode of a series.
proper_movies Keep track of downloaded movies and force re-download proper versions.
series Accept TV-series episodes. Quality and episode number aware.
series_premiere Accept any entry that appears to be the first episode of a series.
list_match Use this plugin to filter entries based on another list plugin.

Metadata filters

Filters based on content's metadata such as size and quality

Keyword Description
best_quality Group entries by identifier and accept/reject best/worse qualities within these groups.
content_size Reject torrents and nzb's that do not meet size requirements.
quality Reject entries not of the specified quality.

FlexGet internal filters

Filters based on preexisting data or operations within FlexGet

Keyword Description
upgrade Accept/Reject better qualities of an entry (tracked by a unique identifier)
timeframe Timeframe in which FlexGet waits for the chosen quality.
duplicates Perform action based on duplicate entries by a field.
limit_new Allow only given number of entries to pass per execution.
only_new Causes all entries that were in the task on the previous run to be rejected at the input phase.
require_field Reject entries that do not have the specified fields.
seen_movies Rejects already downloaded movies (detected by imdb-link).
seen Reject already downloaded entries. Builtin

Torrent specific filters

Filters based specifically for torrents

Keyword Description
content_filter Reject based on filenames within torrents.
magnets Rejects entries with only magnet links.
private_torrents Reject private or public torrents.
seen_info_hash Rejects already downloaded torrents (detected by torrent info hash). Builtin
torrent_alive Reject any torrents that do not have an active tracker with seeds.

Logical and operational filters

Filters that will accept/reject entries based on logical statements or simple file operations

Keyword Description
accept_all Accept all entries.
age Reject, Accept entries based on age by looking at a date in a specified entry field.
archives Accept, reject entries based on if they're valid ZIP/RAR archives.
crossmatch Accept/reject based on other inputs (eg. imdb_list watchlist, ratings history).
exists Reject entries based on existing files in filesystem.
exists_movie Reject entries based on existing movies in filesystem.
exists_series Reject entries based on existing series in filesystem.
if Filter based on simple python statements.
regexp Reject, Accept entries by using regular expression.

3rd party sites filters

Filters based on data retrieved from 3rd party sites

Keyword Description
imdb Accept movie entries based on imdb details.
rottentomatoes Accept movie entries based on Rotten Tomatoes details.

Output

Execute operation(s) on accepted entries.

3rd party software output

Send accepted entries to 3rd party software, usually downloaders.

Keyword Description
aria2 Pass URIs to be downloaded to the aria2 downloader.
deluge Pass torrents directly to deluge bittorrent client, supporting magnet links.
nzbget Download nzbs with nzbget.
periscope Download subtitles with Periscope.
pyload http://pyload.net/.
qbittorrent Pass torrents directly to the qBittorrent client, supporting magnet links.
rtorrent Pass torrents directly to rtorrent
rtorrent_magnet Handles magnet URI's and produces rTorrent compatible torrent files (0.8.9+)
sabnzbd Download nzbs with SABnzbd.
subliminal Download subtitles with Subliminal.
transmission Pass torrents directly to transmission, supporting magnet links.
utorrent Pass torrents directly to uTorrent.

3rd party sites output

Send accepted entries to 3rd party sites, usually for tracking purposes.

Keyword Description
myepisodes Mark accepted episodes as acquired on MyEpisodes.
pogcal_acquired Mark accepted episodes on pogdesign TV calendar
kodi_library Send clean/scan requests to a remote/local Kodi server.

Notifier services output

Send accepted entries to notification services. More details here.

Keyword Description
email Send an email message
gotify Send a Gotify notification
join Send a Join notification
notifymyandroid Send a NMA notification
mqtt Send MQTT notification
matrix Send matrix notification
prowl Send a Prowl notification
pushalot Send a Pushalot notification
pushbullet Send a Pushbullet notification
pushover Send a Pushover notification
pushsafer Send a Pushsafer notification
rapidpush Send a Rapidpush notification
discord Send a Discord notification
slack Send a Slack notification
sms_ru Send a SMS.RU notification
telegram Send a Telegram notification
xmpp Send an XMPP notification
ms_teams Send a Microsoft Teams notification
bark Send a Bark notification

FlexGet internal output

Use accepted entries as an input for various FlexGet plugins such as add to movie queue, set series begin & etc.

Keyword Description
digest Collects entries from tasks to be combined into another task (usually for notification.)
series_remove Remove accepted series \ episodes from the series plugin
set_series_begin Set the first episode to download for series.
list_add Use this plugin to add accepted entries to another list plugin.
list_remove Use this plugin to remove accepted entries to another list plugin.

File operations output

Perform different file operations using accepted entries.

Keyword Description
copy Copy local files.
decompress Extract Zip and RAR files.
delete Delete local files.
download Download passed entries into given path.
exec Executes commands on entries.
ftp_download Download entries retrieved from ftp_list
move Move local files.
sftp_download Download files from an SFTP server
sftp_upload Upload files to an SFTP server
symlink Symlink local files.

Generators output

Generate custom output using accepted entries.

Keyword Description
make_html Generate HTML file from passed entries.
make_rss Generate RSS-feed file from passed entries.

Metadata

Retrieve additional data from internal parsers or 3rd party sites. Used for population of more fields than default or to actively perform data retrieval for specific input types.

These provide metainfo (ie. fields) to Entry.

Keyword Description
imdb_lookup Enable imdb parsing for imdb fields on-demand.
rottentomatoes_lookup Enable Rotten Tomatoes parsing for Rotten Tomatoes fields on-demand.
thetvdb_lookup Fetch series information from http://thetvdb.com/
tmdb_lookup Enable http://www.themoviedb.org/ parsing for tmdb fields on-demand.
torrent_files Builtin. Parse torrent files for metadata
trakt_lookup Enable http://trakt.tv/ parsing for trakt fields on-demand.
tvmaze_lookup Enable http://tvmaze.com/ parsing for tvmaze fields on-demand.
bluray_lookup Enable http://m.blu-ray.com/ parsing for bluray fields on-demand.
nfo_lookup Read movie information from an nfo file (specially useful for Kodi libraries).
check_subtitles Check subtitles presence for local files.
metainfo_movie Call internal movie parser to parse task entries and generated movie related data.
metainfo_series Use internal series parser to parse task entries and generated series related data.

Modification

Plugins that can manipulate data and perform various operations.

Request operations

Perform various operations on request that are being sent and received.

Keyword Description
cfscraper Enables cloudflare scraping in a task.
convert_magnet Converts magnet uris to torrent files using libtorrent
cookies Use FireFox3 cookies.
domain_delay Sets a minimum interval between requests to specific domains.
formlogin Log in to web site via login form.
headers Modify HTTP headers.
proxy Use a proxy to access resources.
urlrewrite_search Search for download URL from supported sites by using entry title.

3rd Party Site Request Operations

Keyword Description
wp_auth Access WordPress s2Member protected RSS feeds.
rutracker Supports downloading torrents from rutracker.

File operations

Perform file oriented operations.

Keyword Description
add_trackers Add trackers to torrents.
extension Force a file extension.
free_space Abort task when drive space is low.
path_by_ext Change (download) path based on file-type (extension).
path_by_space Select a path based on disk stats
remove_trackers Remove trackers from a torrent.
set Set 'path' or other info per task. Can be dynamic per entry.

Data operations

Manipulate relevant data based on input.

Keyword Description
assume_quality Make assumptions about the qualities of releases.
manipulate Allows regexp manipulation for entries.
parsing Configure another parser for series and movie titles. (can help if IMDB/TMDB/TVDB lookup fails too often)
pathscrub Cleans invalid characters from generated path/file names. (Used by other plugins that generate files.)
torrent_scrub Removes non-standard keys like libtorrent resume information from downloads (which prevents the torrent from properly starting in Rtorrent).
urlrewrite User regexp for URL Rewriting.
rmz URL rewrite plugin for rmz.cr rss feed. Filehoster links to be grabbed can be configured.
rlsbb URL rewrite plugin for rlsbb.ru rss feed. Filehoster links to be grabbed and comment parsing can be configured.

FlexGet internal operations

Perform various FlexGet operations.

Keyword Description
archive Archive all seen entries for searchable database for later retrieval.
delay Adds artificial delay into a task.
disable Disable builtin plugin(s) from a task, or plugins included from a template.
include Include configuration from another yaml file.
interval Maintain minimum poll interval for the task.
log_filter Filter prevent certain messages from being logged.
manual Only run the task when explicitly specified.
max_reruns Limit the maximum number of task reruns.
no_entries_ok Silence warnings about task not producing entries, for tasks where that is normal.
priority Change task execution order.
plugin_priority Change plugin priorities.
remember_rejected Remember rejections and reject them in future runs.
reorder_quality Reorder qualities to make one quality better or worse than another.
retry_failed Save failed entries so they can be retried. Builtin
run_task Trigger exectution of another task.
variables Replace specific jinja2 values in config before executing tasks.
sequence Allows the same plugin to be configured multiple times in a task.
sleep Causes a pause to occur at a specified point during task execution.
sort_by Sort entries in a task.
template Provides global configuration and named templates.
verify_ssl_certificates Can turn off SSL certificate verification on a task.
version_checker Checks if user is running latest Flexget version on a given interval.

Daemon

These plugins are specifically for when FlexGet is being used in daemon mode. They differ from the other plugins documented here, in that they should be configured at the root of your config. Not inside any tasks or templates.

Keyword Description
scheduler Executes tasks with a given interval or schedule while daemon is running.
irc Connect a bot to an IRC channel and act on tracker announcements.

Command Line Interface

Use flexget --help for full list of subcommands. --help can also be used with any of the subcommands for further help text.

Command Description
inject Inject entries into tasks from the CLI.
service EXPERIMENTAL A Windows service installer for the FlexGet daemon.

execute command options

Use flexget execute --help for full option list.

Argument Description
--cli-config Allow using values from commandline in YML-configuration file.
--dump Display all entries after task execution.
--tasks Executes only the specified task(s)
--inject Injects custom entry into task(s).
--try-regexp Test how regexps work on task(s) interactively.

Third-party plugins

Plugins can be installed by simply placing them in a plugins folder alongside your configuration file. (This would usually be ~/.flexget/plugins/, however it may be different if your config is in a different location.) It is also possible to package plugins in a separate Python package like FlexGet extras.

There is a list of third-party and extra plugins available, which are plugins that are not common, actively maintained or are otherwise unsuitable for main distribution.