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 latest released version.
Indentation in examples
All configuration examples are assumed to be placed under a task (or template.) So if 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.
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.
Input plugins that directly parse data from a source based on its type.
|csv||Parse any CSV-file|
|filesystem||Search through a local directory looking for files as a input.|
|html||Parse any HTML-page.|
|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.
|anidb_list||Create entries from your AniDB wishlist.|
|apple_trailers||Get movie trailers from Apple.com|
|betaseries_list||Use series you follow on www.betaseries.com as an input|
|from_imdb||Produce entries based on an IMDB person, company or character|
|imdb_list||Use movies in your IMDb list as an input (eg. watchlist, rating history). Managed List|
|letterboxd||Create entries for movies on any public Letterboxd list|
|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.|
|thetvdb_favorites||Produce an entry for all shows you have marked as favorites at http://thetvdb.com.|
|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.|
|whatcd||Produce entries for content on https://what.cd|
3rd party software input
Input plugins designed to retrieve data from 3rd party software, such as Sonarr, couchpotato, deluge & etc.
|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.|
|plex||Produce entries for shows present in a Plex Media Server section.|
|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|
|from_uoccin||Produce entries from a Uoccin data file|
Input plugins that will generate entries based on preexisting data in FlexGet.
|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.|
|next_series_episodes||Emits the next episode 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|
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.)
|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.|
Filters based on content's metadata such as size and quality
|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
|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
|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
|accept_all||Accept all entries.|
|archives||Accept, reject entries based on if they're valid ZIP/RAR archives.|
|exists||Reject entries based on existing files in filesystem.|
|exists_series||Reject entries based on existing series in filesystem.|
|exists_movie||Reject entries based on existing movies in filesystem.|
|if||Filter based on simple python statements.|
|regexp||Reject, Accept entries by using regular expression.|
|age||Reject, Accept entries based on age by looking at a date in a specified entry field.|
3rd party sites filters
Filters based on data retrieved from 3rd party sites
|crossmatch||Accept/reject based on other inputs (eg. imdb_list watchlist, ratings history).|
|imdb||Accept movie entries based on imdb details.|
|imdb_required||Reject imdb incompatible entries.|
|rottentomatoes||Accept movie entries based on Rotten Tomatoes details.|
Execute operation(s) on accepted entries.
3rd party software output
Send accepted entries to 3rd party software, usually downloaders.
|aria2||Pass URIs to be downloaded to a local computer 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.|
|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.|
|uoccin_collection_add||Mark all the accepted movies/episodes as collected in the Uoccin data file.|
|uoccin_collection_remove||Unmark all the accepted movies/episodes as collected in the Uoccin data file.|
|uoccin_watched_true?||Mark all the accepted movies/episodes as watched in the Uoccin data file.|
|uoccin_watched_false?||Unmark all the accepted movies/episodes as watched in the Uoccin data file.|
|uoccin_watchlist_add||Add all the accepted movies/series in the watchlist inside the Uoccin data file.|
|uoccin_watchlist_remove||Remove all the accepted movies/series from the watchlist inside the Uoccin data file.|
|uoccin_subtitles||Update the list of subtitles downloaded for the accepted movies/series in the Uoccin data file.|
3rd party sites output
Send accepted entries to 3rd party sites, usually for tracking purposes.
|myepisodes||Mark accepted episodes as acquired on MyEpisodes.|
|thetvdb_add||Add accepted series to user's thetvdb.com favorites.|
|thetvdb_remove||Remove accepted series from user's thetvdb.com favorites.|
|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.
|Send email when new content is passed.|
|prowl||Send prowl notifications (iPhone).|
|pushover||Send Pushover notifications (iPhone and Android).|
|rapidpush||An easy-to-use push notification service. (Android).|
|notify_osd||Send notifications to notify-osd.(linux only. Ubuntu tested)|
|notify_xmpp||Send notifications via XMPP.|
|notifymyandroid||Send notifications to android.|
|pushbullet||Send Pushbullet notifications (Android/iOS/Windows/Chrome Extension).|
|pushalot||Send Pushalot notifications (Windows 8/Windows Phone).|
|sns||Send SNS notifications.|
|slack||Send Slack channel notifications.|
|telegram||Send a Telegram message from passed entries.|
FlexGet internal output
Use accepted entries as an input for various FlexGet plugins such as add to movie queue, set series begin & etc.
|digest||Collects entries from tasks to be combined into another task (usually for notification.)|
|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.
|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|
Generate custom output using accepted entries
|make_html||Generate HTML file from passed entries.|
|make_rss||Generate RSS-feed file from passed entries.|
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.
|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.|
|trakt_lookup||Enable http://trakt.tv/ parsing for trakt fields on-demand.|
|tvmaze_lookup||Enable http://tvmaze.com/ parsing for tvmaze fields on-demand.|
|check_subtitles1||Check subtitles presence for local files.|
|uoccin_lookup||Fetch all the supported information from the Uoccin data file.|
|metainfo_movie||Call internal movie parser to parse task entries and generated movie related data.|
1. Not a builtin, configuration required to enable.
Plugins that can manipulate data and perform various operations.
Perform various operations on request that are being sent and received.
|cfscraper||Enables cloudflare scraping in a task.|
|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.|
Perform file oriented operations.
|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.|
Manipulate relevant data based on input.
|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.|
FlexGet internal operations
Perform various FlexGet operations.
|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.|
|manual||Only run the task when explicitly specified.|
|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.|
|retry_failed||Save failed entries so they can be retried. Builtin|
|secrets||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.|
3rd party software
Perform operations on 3rd part software.
|clean_transmission||Clean Transmission queue.|
|rutracker||Supports downloading torrents from rutracker.|
|uoccin_reader||Synchronize a Uoccin data file.|
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.
|scheduler||Executes tasks with a given interval or schedule while daemon is running.|
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.
|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.
|--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.|
Plugins can be installed by simply placing them in ~/.flexget/plugins/
|jdownloader||jDownloader output - perhaps included in the core package sooner or later.|
|emit_movie_queue||Emit your movie_queue.|
|movie_queue||Accept movies from movie queue.|
|subtitle_queue||Add or accept files to get subtitles for.|