
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 usernameTorrent 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:
- Create Python Environment - Sets up Python 3.11 virtual environment at
/opt/username/Flexget/.venv - Install FlexGet - Installs latest FlexGet version with all dependencies
- Configure Web UI - Sets up web interface on auto-assigned port (default:
5250) - Setup Authentication - Uses your QuickBox user password for web UI access
- Install Client Plugins - Adds support for Deluge, qBittorrent, Transmission, rTorrent
- Configure Service - Creates systemd service for automatic startup
Default Locations
FlexGet files are organized as follows:
Supported Integrations
FlexGet integrates with your entire media automation stack:
Torrent Clients
Input Sources
Media Types
Features
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
| Command | Description |
|---|---|
qb install flexget -u username | Install FlexGet for a user |
qb reinstall flexget -u username | Reinstall FlexGet (preserves config) |
qb update flexget -u username | Update to latest version |
qb remove flexget -u username | Remove FlexGet completely |
qb help flexget | Show help information |
Usage Examples
Install FlexGet:
qb install flexget -u myuserUpdate FlexGet:
qb update flexget -u myuserReinstall (fix corrupted installation):
qb reinstall flexget -u myuserRemove FlexGet and clean up:
qb remove flexget -u myuserConfiguration
Accessing the Web UI
After installation, access FlexGet’s web interface:
https://yourdomain.com/username/flexgetLogin 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.xmlTask Configuration
FlexGet works by defining tasks in your configuration. Each task can:
- Accept inputs (RSS feeds, HTML pages, CSV files)
- Filter content (quality, size, series tracking)
- 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
qBittorrent
Transmission
rTorrent
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: moviesService 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 -fConfiguration Reload
After editing your config.yml, reload FlexGet:
sudo systemctl reload flexget@usernameOr use the FlexGet daemon command:
/opt/username/Flexget/.venv/bin/flexget -c /home/username/.config/Flexget/config.yml daemon reloadFeatures & 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-showsMovie 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: moviesPodcast 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
deactivateInstalled Packages
QuickBox installs these packages by default:
flexget- Core FlexGet frameworksetuptools- Python package toolsdeluge-client- Deluge RPC clienttransmission-rpc- Transmission RPC clientqbittorrent-api- qBittorrent Web API clientrtorrent-python- rTorrent XMLRPC client
Troubleshooting
Check Service Status
sudo systemctl status flexget@usernameView Logs
# Real-time logs
sudo journalctl -u flexget@username -f
# Last 100 lines
sudo journalctl -u flexget@username -n 100Test Configuration
/opt/username/Flexget/.venv/bin/flexget -c /home/username/.config/Flexget/config.yml checkManual Execution
Run a task manually to test:
/opt/username/Flexget/.venv/bin/flexget -c /home/username/.config/Flexget/config.yml execute --task task-nameCommon 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:
| Database | Purpose |
|---|---|
db-config.sqlite | Configuration and version info |
db-config-jobs.sqlite | Scheduled 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_appsis 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 usernameWhat 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.
Related Applications
FlexGet works seamlessly with these applications:
Compatible Applications
Install these applications alongside FlexGet for complete media automation
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.