Skip to Content
FlexGet

FlexGet

Multipurpose automation tool for all your media

FlexGet - Media Automation Framework

FlexGet is a powerful, plugin-based automation tool designed to automate your media workflow. Whether you’re managing torrents, nzbs, podcasts, comics, TV shows, movies, or RSS feeds, FlexGet provides a flexible framework to handle it all with ease.


What is FlexGet?

FlexGet is a multipurpose automation tool that excels at:

  • Torrent Automation - Automatically download torrents from RSS feeds
  • NZB Management - Handle NZB downloads and processing
  • Media Organization - Sort and rename downloaded content
  • Quality Management - Download specific qualities and formats
  • Client Integration - Works with Deluge, qBittorrent, Transmission, rTorrent
  • Web Interface - Manage tasks and monitor activity via web UI
  • Flexible Configuration - YAML-based config for unlimited customization

Python-Based Framework

FlexGet runs in a Python 3.11 virtual environment to ensure isolation and compatibility with your QuickBox installation.


Installation

Install FlexGet

Install FlexGet for a specific user:

qb install flexget -u username

Torrent Client Recommended

While FlexGet can work standalone, it’s most useful when paired with a torrent client like Deluge, qBittorrent, Transmission, or rTorrent.

Installation Process

The installation will:

  1. Create Python Environment - Sets up Python 3.11 virtual environment at /opt/username/Flexget/.venv
  2. Install FlexGet - Installs latest FlexGet version with all dependencies
  3. Configure Web UI - Sets up web interface on auto-assigned port (default: 5250)
  4. Setup Authentication - Uses your QuickBox user password for web UI access
  5. Install Client Plugins - Adds support for Deluge, qBittorrent, Transmission, rTorrent
  6. Configure Service - Creates systemd service for automatic startup

Default Locations

FlexGet files are organized as follows:

/opt/username/Flexget
.venv/# Python 3.11 virtual environment
bin/# Executable scripts
/home/username/.config/Flexget
config.yml# Main configuration file
flexget.port# Web UI port assignment
db-config.sqlite# Configuration database
db-config-jobs.sqlite# Job history database

Supported Integrations

FlexGet integrates with your entire media automation stack:

📡

Input Sources

RSS FeedsHTML PagesCSV FilesTrakt.tv Lists
🎬

Media Types

TV ShowsMoviesPodcastsComicsMusic
⚙️

Features

Quality FilteringSeries TrackingIMDB IntegrationWeb UI

Enhanced Features

FlexGet on QuickBox Pro includes several advanced features:

🐍 Isolated Python Environment

Runs in a dedicated Python 3.11 virtual environment ensuring compatibility and preventing conflicts

🔌 Pre-installed Client Plugins

Deluge, qBittorrent, Transmission, and rTorrent plugins installed and ready to use

🔐 Integrated Authentication

Web UI automatically configured with your QuickBox user credentials for seamless access

🌐 Reverse Proxy Ready

Pre-configured nginx reverse proxy for secure HTTPS access through your domain

🔄 Reliable Service

Runs as a systemd service with automatic startup and proper lifecycle management

💾 Automatic Backups

Configuration and database files backed up during installation and updates


CLI Commands

Basic Operations

CommandDescription
qb install flexget -u usernameInstall FlexGet for a user
qb reinstall flexget -u usernameReinstall FlexGet (preserves config)
qb update flexget -u usernameUpdate to latest version
qb remove flexget -u usernameRemove FlexGet completely
qb help flexgetShow help information

Usage Examples

Install FlexGet:

qb install flexget -u myuser

Update FlexGet:

qb update flexget -u myuser

Reinstall (fix corrupted installation):

qb reinstall flexget -u myuser

Remove FlexGet and clean up:

qb remove flexget -u myuser

Configuration

Accessing the Web UI

After installation, access FlexGet’s web interface:

https://yourdomain.com/username/flexget

Login credentials:

  • Username: your-quickbox-username
  • Password: your-quickbox-password

Configuration File

FlexGet uses YAML configuration at /home/username/.config/Flexget/config.yml:

web_server: bind: 127.0.0.1 port: 5250 web_ui: yes base_url: /username/flexget tasks: example: priority: 2 rss: http://example.com/rss/rss.xml

Task Configuration

FlexGet works by defining tasks in your configuration. Each task can:

  1. Accept inputs (RSS feeds, HTML pages, CSV files)
  2. Filter content (quality, size, series tracking)
  3. Output to clients (download torrents, send to client)

Configuration Documentation

Visit FlexGet’s official documentation  for comprehensive configuration examples and plugin references.


Torrent Client Integration

FlexGet includes pre-installed plugins for popular torrent clients:

🔵

Deluge

deluge-client pluginRPC ConnectionLabel SupportPath Configuration
🟢

qBittorrent

qbittorrent-api pluginWeb API IntegrationCategory SupportAutomatic Torrent Management
🔴

Transmission

transmission-rpc pluginRPC ConnectionBandwidth SchedulingDownload Directory
🟣

rTorrent

rtorrent-python pluginXMLRPC ConnectionCustom CommandsWatch Directory

Example: Deluge Integration

tasks: tv-shows: rss: http://example.com/tv.rss series: - Show Name deluge: host: localhost port: 58846 username: myuser password: mypassword path: /home/myuser/downloads/tv/

Example: qBittorrent Integration

tasks: movies: rss: http://example.com/movies.rss quality: 1080p bluray qbittorrent: host: localhost port: 8080 username: myuser password: mypassword category: movies

Service Management

SystemD Service

FlexGet runs as a user-specific systemd service:

# Start FlexGet sudo systemctl start flexget@username # Stop FlexGet sudo systemctl stop flexget@username # Restart FlexGet sudo systemctl restart flexget@username # Check status sudo systemctl status flexget@username # View logs sudo journalctl -u flexget@username -f

Configuration Reload

After editing your config.yml, reload FlexGet:

sudo systemctl reload flexget@username

Or use the FlexGet daemon command:

/opt/username/Flexget/.venv/bin/flexget -c /home/username/.config/Flexget/config.yml daemon reload

Features & Use Cases

Automated TV Show Downloads

Track your favorite TV shows and automatically download new episodes:

tasks: tv-tracker: rss: https://showrss.info/user/12345.rss series: - Breaking Bad - Game of Thrones - The Office quality: 720p+ hdtv+ deluge: path: /home/user/media/tv/ label: tv-shows

Movie Downloads

Automatically download movies from RSS feeds:

tasks: movies: rss: http://example.com/movies.rss quality: 1080p+ bluray+ imdb: min_score: 7.0 min_votes: 5000 qbittorrent: path: /home/user/media/movies/ category: movies

Podcast Management

Download new podcast episodes automatically:

tasks: podcasts: rss: http://feeds.example.com/podcast.xml accept_all: yes download: /home/user/podcasts/

Content Filtering

FlexGet provides powerful filtering options:

  • Quality filters - 720p, 1080p, 4K, etc.
  • Size limits - Min/max file sizes
  • Series tracking - Track watched episodes
  • IMDB integration - Filter by ratings, votes, genres
  • RegEx patterns - Custom text matching

Python Environment

Virtual Environment Details

FlexGet uses an isolated Python 3.11 virtual environment:

# Activate environment source /opt/username/Flexget/.venv/bin/activate # Check FlexGet version /opt/username/Flexget/.venv/bin/flexget --version # List installed packages /opt/username/Flexget/.venv/bin/pip3 list # Deactivate deactivate

Installed Packages

QuickBox installs these packages by default:

  • flexget - Core FlexGet framework
  • setuptools - Python package tools
  • deluge-client - Deluge RPC client
  • transmission-rpc - Transmission RPC client
  • qbittorrent-api - qBittorrent Web API client
  • rtorrent-python - rTorrent XMLRPC client

Troubleshooting

Check Service Status

sudo systemctl status flexget@username

View Logs

# Real-time logs sudo journalctl -u flexget@username -f # Last 100 lines sudo journalctl -u flexget@username -n 100

Test Configuration

/opt/username/Flexget/.venv/bin/flexget -c /home/username/.config/Flexget/config.yml check

Manual Execution

Run a task manually to test:

/opt/username/Flexget/.venv/bin/flexget -c /home/username/.config/Flexget/config.yml execute --task task-name

Common Issues

Web UI not accessible:

  • Check port in /home/username/.config/Flexget/flexget.port
  • Verify nginx config: /etc/nginx/software/username.flexget.conf
  • Restart nginx: sudo systemctl restart nginx

Tasks not running:

  • Check config syntax: flexget check
  • View daemon logs: journalctl -u flexget@username
  • Verify service is running: systemctl status flexget@username

Password not working:

  • Password is synced with your QuickBox user password
  • Change via: /opt/username/Flexget/.venv/bin/flexget web passwd

Python 3.9 to 3.11 Migration

If updating from an older installation using Python 3.9, the update process will automatically recreate the virtual environment with Python 3.11. This ensures compatibility with the latest FlexGet versions.


Best Practices

Do

  • Test configuration with flexget check before applying changes
  • Use quality filters to avoid downloading unwanted formats
  • Set up series tracking to prevent duplicate downloads
  • Use labels/categories in torrent clients for organization
  • Keep backups of your config.yml - it's your automation recipe
  • Start with simple tasks and gradually add complexity

Don't

  • Don't edit config.yml while FlexGet is running without reloading
  • Don't use overly broad accept rules that grab everything
  • Don't forget to configure authentication for torrent client plugins
  • Don't ignore the flexget check command - it catches syntax errors
  • Don't run manual executions while the daemon is active

Database Files

FlexGet uses SQLite databases to track state:

DatabasePurpose
db-config.sqliteConfiguration and version info
db-config-jobs.sqliteScheduled tasks and job history

Check Version

sqlite3 /home/username/.config/Flexget/db-config.sqlite "SELECT version FROM flexget_version;"

Backup & Restore

Automatic Backups

QuickBox automatically backs up your FlexGet configuration during:

  • Installation
  • Updates (if autobackup_apps is enabled)

Backup Locations

Backups are stored at:

/home/username/.qb_backups/software/flexget/default/ /home/username/.qb_backups/software/flexget/backup/

Manual Backup

qb manage software -o backup -o app -s flexget -u username

What Gets Backed Up

  • Configuration file (config.yml)
  • Port file (flexget.port)
  • Database files (db-config*.sqlite)
  • Nginx configuration

Resources

Pro Tip

FlexGet’s power comes from its plugin ecosystem. Explore the plugin documentation  to discover advanced features like trakt.tv integration, content discovery, and custom notifications.


FlexGet works seamlessly with these applications:

Compatible Applications

Install these applications alongside FlexGet for complete media automation

⬇️

Download Clients

📺

Media Servers

🎬

Media Management


Version Information

The FlexGet installation uses:

  • Python Version: 3.11
  • Installation Method: pip (Python Package Index)
  • Update Method: pip install --upgrade flexget
  • Version Tracking: Stored in SQLite database

Join the Community

Media server operators sharing configs, getting support, and shaping the future of QuickBox Pro.

Dedicated Support
Feature Previews
Community Configs
Active Discussions
Join Discord Server