Quantcast
Channel: configuration - Forum - FlexGet
Viewing all articles
Browse latest Browse all 716

Linux Plex Media server Automation using Flexget and Deluge (and python)

$
0
0

@tskmst wrote:

Hello Everyone!

I would like to share some of the details of our Flexget implementation and perhaps get some feedback or advice. We (tskmst & potaote) have been up and running for about 7 months now, and are tweaking and learning as we go.

The implementation includes many bits from a cookbook that can be found at http://flexget.com/wiki/Users/anon

We use our modified version of that anon/flexget script to extract, create folders, trim filenames and copy relevant parts of completed torrents by adapting the script written in PHP to Python.

A little bit of totally unnecessary information about our server:

Dell R610 running VMware ESXi 5.5.
PERC H700 controls 6x120GB SSDs.
ServeRAID M1115 SAS/SATA RAID controller runs a Dell J23 CFS that is almost half full with 10 x 3TB drives for media and a 2 TB for torrenting.

Running within the VMware environment are the Ubuntu Virtual Machines that run the media server and run the torrents. We use Ubuntu 14.04 for both the PLEX server and the download/terminal machine. The Plex Server, in addition to Plex also runs PlexPy and handles some downloading and matching of subtitles. The Terminal Server runs Flexget and Deluge w/ the python script.

How It Works

The user defines what will be downloaded by configuring customized watchlists on Trakt.tv for each category of content they wish to filter their downloads into. For example, we have Television, Documentary (series), Cartoons and we plan to add/complete the movies part soon enough too.

Each time the script is executed, it reads the RSS feeds provided by the various trackers, and if a match is made to an item in one of the watchlists, the script prompts deluge to download it while applying the correct label.

The deluge execute plugin is then automatically triggered by deluge upon torrent completion. It executes a python script that handles the file and folder needs at the destination while not altering the seed file so deluge can continue to seed uninterrupted.

This process also places the file on a separate drive, somewhat reducing competition for hardware resources when it comes time to stream the media or seed the source files. This separation also allowing us to treat torrent drives as disposable since their lifespan suffers from the intensive torrenting.

The execute.py script handles the extraction of the torrent contents according to the instructions assigned to its label. The torrent name information is parsed for the appropriate information such as title, episode and series, release, and quality before a check is performed to see if the destination folder or file exists, and if not creates any needed folders finally placing the file.

Just to give a little better perspective on the script, below are some log output examples of the deluge execute.py:

Examples: execute.py on Torrent Complete /deluge

Movie:

Media ID:a28cedcb255b3285dd65aca5f5597406bd72247c
Media Name:Bedtime.Stories.2008.720p.BluRay.x264-x0r
Media Path:/media/Maelstrom/Torrents/Completed
Media Label: movie
Media Destination Path:/media/Dmedia/DMovies
Media File Destination Target:/media/Dmedia/DMovies/Bedtime Stories 2008 720p/Bedtime.Stories.2008.720p.mkv

TV Show:

Media ID:4a0c78c67a0f79f36309df46dd8448a718eba74f
Media Name:Game.of.Thrones.S06E02.720p.HDTV.x264-FLEET
Media Path:/media/Maelstrom/Torrents/Completed
Media Label: tv
Series Library Path: /media/Dmedia/DTV
Media Extraction Destination:/media/Dmedia/DTV/Game of Thrones/Season 06
Media item Re-Named to:Game.of.Thrones.S06E02.720p.mkv

Documentary:

Media ID:7f9f5ffba8b32c6d3b58267be4a29b7a3ff3d1e8
Media Name:The.Circus.S01E12.720p.HDTV.x264-BATV
Media Path:/media/Maelstrom/Torrents/Completed
Media Label:documentary
Series Library Path:/media/Dmedia/DDocumentaries
Media ExtractionDestination: /media/Dmedia/DDocumentaries/The Circus/Season 01
Media item Re-Namedto: The.Circus.S01E12.720p.mkv

execute.py script

You are all welcome to use and modify as you please. Ideally we would like to receive feedback and continuously improve the script/config and share it to the community as we go.

config.yml example

I will not go into too much detail on the specifics. However if we do get enough requests, we will work on a small guide, and try to answer your questions the best we can.

Posts: 16

Participants: 3

Read full topic


Viewing all articles
Browse latest Browse all 716

Trending Articles