-secrets: private.yml
+variables: private.yml
+web_server:
+ port: 8081
templates: # {{{1
- email: # {{{2
- email:
- from: flexget@tardis
- to: ramsi@localhost
-
-
- torrents: # {{{2
- inputs:
- - rss: { url: 'https://ezrss.it/feed/', silent: yes }
- - rss: { url: 'http://publichd.se/rss.php', silent: yes }
- - rss: { url: 'http://rss.bt-chat.com/?group=3', silent: yes }
- - rss: { url: 'http://kickass.to/tv/?rss=1', silent: yes }
- - rss: { url: 'http://showrss.info/feeds/all.rss', silent: yes }
- # - rss: { url: 'http://www.torlock.com/television/rss.xml', silent: yes }
- # - rss: { url: 'http://torrentz.eu/feed_verified?q=tv', silent: yes }
- # - rss: { url: 'http://rss.thepiratebay.org/208', silent: yes }
- transmission:
- host: localhost
- port: 9091
- path: /mnt/Skaro/torrents/done
- ratio: 0.0
+ anchors: # {{{2
+ _trakt: &trakt
+ account: '{?trakt.account?}'
+ _sonarr: &sonarr
+ base_url: '{?sonarr.url?}'
+ api_key: '{?sonarr.api?}'
+ port: 8989
+ _trakt_movie_queue: &trakt_movie_queue
+ account: '{?trakt.account?}'
+ list: movie-queue
+ _newznab_series_search: &newznab_series_search
+ url: '{?ds.api?}&t=tvsearch&cat=5040&extended=1'
+ category: tv
+ query:
+ - tvdb_id
+ - series_name
+ - series_alternate_names
+ _newznab_movie_search: &newznab_movie_search
+ url: '{?ds.api?}&t=movie&cat=2040&extended=1'
+ category: movie
+ _series_settings: &series_settings
+ identified_by: ep
+ quality: 720p-1080p webrip+ h264+
+ exact: yes
usenet: # {{{2
sabnzbd:
- key: '{{secrets.sabnzbd.key}}'
- url: '{{secrets.sabnzbd.url}}'
+ key: '{?sabnzbd.key?}'
+ url: '{?sabnzbd.url?}'
- usenet-movies: # {{{2
- set:
- category: 'movies'
+ usenet_movies_rss: # {{{2
inputs:
- - rss: { url: 'https://www.usenet-crawler.com/rss?t=2040&dl=1&num=100{{secrets.crawler.api}}', silent: yes } # Movies HD
+ - rss: { url: 'https://{?ds.rss?}&t=2040&dl=1&num=100', silent: yes } # Movies HD
+ - rss: { url: 'https://{?uc.rss?}&t=2040&dl=1&num=100', silent: yes } # Movies HD
- usenet-tv: # {{{2
- set:
- category: 'tv'
+ usenet_series_rss: # {{{2
inputs:
- - rss: { url: 'https://www.usenet-crawler.com/rss?t=5030&dl=1&num=100{{secrets.crawler.api}}', silent: yes } # TV SD
- - rss: { url: 'https://www.usenet-crawler.com/rss?t=5040&dl=1&num=100{{secrets.crawler.api}}', silent: yes } # TV HD
+ - rss: { url: 'https://{?ds.rss?}&t=5040&dl=1&num=100', silent: yes } # Series HD
+ - rss: { url: 'https://{?uc.rss?}&t=5040&dl=1&num=100', silent: yes } # Series HD
filters: # {{{2
- \[facepalm\]: {from: title}
- \bASAP\b: {from: title}
- \b Go\): {from: title} # filter those misplaced french only movies
+ - 'nl.subs': {from: title} # no dutch subtitles
+ - 'NIXON': {from: title} # rubbish futurama releases, wrong season numbering
- tv: # {{{2
+ series: # {{{2
+ set:
+ category: 'series'
+ priority: '0' # normal
+ trakt_lookup: yes
+ thetvdb_lookup: yes
+ exists_series:
+ path:
+ - '/mnt/series/{{tvdb_series_name}}'
+ allow_different_qualities: better
+ content_size:
+ min: 100
+ max: 10000
+ strict: yes
+
+
+ newznab_series_queue: # {{{2
+ domain_delay:
+ api.drunkenslug.com: 5 seconds
+ timeframe:
+ wait: 10 hours
+ # let series handle the accept
+ on_reached: do_nothing
+ target: 1080p webrip h264
+ configure_series:
+ from:
+ entry_list: trakt-series-queue
+ settings:
+ exact: yes
+ identified_by: ep
+ quality: 720p-1080p webrip+ h264+
+ sort_by:
+ field: quality
+ reverse: yes
+ discover:
+ interval: 50 minutes
+ release_estimations:
+ optimistic: 1 days
+ what:
+ - next_series_episodes:
+ from_start: yes
+ from:
+ - newznab: *newznab_series_search
+ max_reruns: 3
+ thetvdb_lookup: yes
series:
- normal:
- - 8 out of 10 cats
- - american dad
- - archer 2009
- - boardwalk empire
- - breaking bad
- - broadchurch
- - burn notice
- - chuck
- - community
- - danger 5: { quality: 720p+ }
- - dexter
- - doctor who 2005
- - downton abbey
- - eureka
- - family guy
- - foyle's war
- - futurama
- - game of thrones
- - homeland
- - how i met your mother
- - last week tonight with john oliver
- - master of sex
- - my little pony
- - mythbusters
- - qi (xl)
- - ray donovan
- - red dwarf
- - sherlock
- - suits
- - the big bang theory
- - the blacklist
- - the cleveland show
- - the walking dead
- - two and a half men
- - the wire: { quality: 720p+ }
+ # this doesn't seem to override the timeframe set above
+ - Last Week Tonight with John Oliver: { timeframe: 8 hours }
+ - House of the Dragon: { timeframe: 8 hours }
+ - Anne Rice's Mayfair Witches:
+ alternate_name:
+ - mayfair witches
+
+
+ newznab_series_backfill: # {{{2
+ domain_delay:
+ api.drunkenslug.com: 5 seconds
+ configure_series:
+ from:
+ sonarr_list:
+ <<: *sonarr
+ only_monitored: yes
+ include_data: yes
+ settings:
+ exact: yes
+ identified_by: ep
+ # tracking: backfill
+ quality: 720p-1080p webrip+ h264+
+ discover:
+ interval: 10 minutes
+ what:
+ - next_sonarr_episodes:
+ <<: *sonarr
+ only_monitored: yes
+ include_ended: yes
+ from:
+ - newznab: *newznab_series_search
+ seen: local
+ series:
+ generated_series:
+ - money heist:
+ alternate_name: la casa de papel
+ - the ministry of time:
+ alternate_name:
+ - el ministerio del tiempo
+ - the department of time
+ sort_by:
+ field: quality
+ reverse: yes
movies: # {{{2
- imdb:
- min_score: 7.5
- min_votes: 30000
- imdb_required: on
+ set:
+ category: 'movies'
+ priority: '-1' # low
exists_movie:
path:
- - '/mnt/Skaro/Movies'
+ - '/mnt/movies'
allow_different_qualities: better
type: files
- lookup: imdb
+
+
+ newznab_movies_queue: # {{{2
+ plugin_priority: # NOTE: currently not verified
+ est_released_movies: 200 # prefer using tmdb release date
+ est_movies_bluray: 100 # over bluray releases
+ discover:
+ interval: 1 hours
+ what:
+ - movie_list: trakt-movies-queue
+ from:
+ - newznab: *newznab_movie_search
+ release_estimations:
+ optimistic: 30 days
+
+ quality: 720p-1080p webrip+ h264+
+ timeframe:
+ wait: 1 day
+ on_reached: accept
+ target: 1080p webrip h264
+ best_quality:
+ on_best: do_nothing
+ on_lower: reject
+ tmdb_lookup: true
+ list_match:
+ from:
+ - movie_list: trakt-movies-queue
+
+
+ trakt_add_collection: # {{{2
+ list_add:
+ - trakt_list:
+ account: '{?trakt.account?}'
+ list: collection
+
+
+ trakt_remove_movie_queue: # {{{2
+ # removes movie from queue and watchlist
+ list_remove:
+ - trakt_list:
+ <<: *trakt
+ list: movies-queue
+ type: movies
+ - trakt_list:
+ <<: *trakt
+ list: watchlist
+ type: movies
+
+
+ move_series: # {{{2
+ manual: yes
+ template:
+ - trakt_add_collection
+ disable:
+ - retry_failed
+ - seen
+ - seen_info_hash
+ no_entries_ok: yes
+ parsing:
+ series: guessit
+ regexp: { reject: ['[Ss]ample'] }
+ all_series:
+ parse_only: yes
+ accept_all: yes
+ thetvdb_lookup: yes
+ require_field:
+ - tvdb_season
+ - tvdb_episode
+ set:
+ destination: '/mnt/series'
+ folder: "{{tvdb_series_name}}/{% if tvdb_season == 0 %}Specials{% else %}Season {{tvdb_season}}{% endif %}"
+ filename: "{{tvdb_season}}x{{tvdb_episode|pad(2)}} {{tvdb_ep_name|replace('/','-')}} ({{tvdb_ep_air_date|formatdate('%Y')}}){{'{'}}{{quality|replace(' ','}{')}}{{'}'}}[{{tvdb_language}}]"
+ move:
+ to: "/mnt/series/{{folder}}"
+ rename: "{{filename}}"
+ clean_source: 100 # removes dir if < [N] MB
+ along:
+ extensions: [sub, srt]
+ subdirs: [Subs]
+ exec:
+ - echo "<<<{{folder}}/{{filename}}>>>"
+ - touch "{{destination}}/{{folder}}/{{filename}}{{location|pathext}}"
+
+
+ move_movies: # {{{2
+ manual: yes
+ template:
+ - trakt_add_collection
+ disable:
+ - retry_failed
+ - seen
+ - seen_info_hash
+ no_entries_ok: yes
+ regexp: { reject: ['[Ss]ample'] }
+ parsing:
+ movie: guessit
+ tmdb_lookup: true
+ accept_all: yes
+ require_field:
+ - tmdb_name
+ - tmdb_year
+ set:
+ destination: '/mnt/movies'
+ filename: "{{tmdb_name}} ({{tmdb_year}}){{'{'}}{{quality|replace(' ','}{')}}{{'}'}}[en]"
+ move:
+ to: "/mnt/movies"
+ rename: "{{filename}}"
+ clean_source: 100 # removes dir if < [N] MB
+ along:
+ extensions: [sub, srt]
+ subdirs: [Subs]
+ exec:
+ - echo "<<<{{filename}}>>>"
+ - touch "{{destination}}/{{filename}}{{location|pathext}}"
+
+
+ series_filesystem: # {{{2
+ filesystem:
+ path:
+ - '/mnt/series'
+ recursive: yes
+ retrieve: files
+ regexp: '.*\.(avi|mkv|mp4|webm|m4v)$'
+ log_filter: # {{{3
+ - message: "Test mode"
+ plugin: filesystem
+ - message: "Title:"
+ plugin: filesystem
+ - message: "URL:"
+ plugin: filesystem
+ - message: "Filename:"
+ plugin: filesystem
+ - message: "Timestamp:"
+ plugin: filesystem
+ - message: ""
+ plugin: manipulate
+ - message: ""
+ plugin: assume_quality
+ level: verbose #}}}
+ manipulate:
+ - title:
+ from: location
+ replace:
+ regexp: '.*/([^/]+)/[^/]+/(\d+)(?:x(\d+))+([^/]*?)(?:\[.*\])?\.[^.]+$'
+ format: '\1 S\2E\3\4'
+ - title:
+ replace:
+ regexp: '[][(){}]'
+ format: ' '
+ set:
+ collected_at: "{{created}}"
+ parsing:
+ series: guessit
+ metainfo_series: yes
+ require_field:
+ - series_name
+ assume_quality: 480p
+
+
+ movies_filesystem: # {{{2
+ filesystem:
+ path:
+ - '/mnt/movies'
+ recursive: yes
+ retrieve: files
+ regexp: '.*\.(avi|mkv|mp4|webm|m4v)$'
+ tmdb_lookup: true
+ require_field:
+ - tmdb_id
+
+
+ sync_series_trakt: # {{{2
+ plugin_priority: # thetvdb_lookup before set
+ thetvdb_lookup: 110
+ set: 100
+ all_series:
+ parse_only: yes
+ # lookup tvdb info
+ thetvdb_lookup: yes
+ no_entries_ok: yes
+ # replace title with tvdb_series_name
+ set:
+ title: "{{tvdb_series_name}}"
+ series_name: "{{tvdb_series_name}}"
+ name: "{{tvdb_series_name}}"
+ accept_all: yes
+ disable: seen
tasks: # {{{1
- dl-tv: # {{{2
- priority: 1
+ parse-series: # {{{2
+ # This is used by flexget.py to get the series/episode id
+ manual: yes
+ all_series:
+ parse_only: yes
+ accept_all: yes
+ disable: [seen]
+
+
+ dl-series: # {{{2
+ priority: 100
template:
- - email
- - tv
+ - series
+ - newznab_series_queue
- filters
- usenet
- - usenet-tv
- series:
- settings:
- normal:
- timeframe: 12 hours
- target: 1080p webdl
- quality: 480p+
- upgrade: yes
- exists_series:
- path: '/mnt/Skaro/Series/{{tvdb_series_name}}'
- allow_different_qualities: better
- content_size:
- min: 100
- max: 6000
- strict: yes
- dl-movies-1080p: # {{{2
- priority: 1
+ backfill-series: # {{{2
+ priority: 110
template:
- - email
- - movies
+ - series
+ - newznab_series_backfill
- filters
- usenet
- - usenet-movies
- quality: 1080p webdl+
- content_size:
- min: 3000
- max: 15000
- strict: yes
-
- dl-movies-720p: # {{{2
- priority: 2
+ dl-movies: # {{{2
+ priority: 100
template:
- - email
- movies
+ - newznab_movies_queue
- filters
- usenet
- - usenet-movies
- quality: 720p hdrip+
- delay: 7 days
- content_size:
- min: 1000
- max: 10000
- strict: yes
- move-tv: # {{{2
+ sync-watchlist-series-episodes: # {{{2
+ # get episodes from trakt watchlist and adds them to trakt queue
+ # and sets the series_begin to the given episode.
+ priority: 1
+ disable: seen
+ template:
+ - sync_series_trakt
+ trakt_list:
+ <<: *trakt
+ list: watchlist
+ type: episodes
+ set_series_begin: yes
+ list_remove:
+ - trakt_list:
+ <<: *trakt
+ list: watchlist
+ type: episodes
+ list_add:
+ - trakt_list:
+ <<: *trakt
+ list: series-queue
+ type: shows
+ - trakt_list:
+ <<: *trakt
+ list: watchlist
+ type: shows
+
+
+ sync-watchlist-series: # {{{2
+ # get series from trakt watchlist and queue, and adds them to trakt queue and entry list
priority: 2
+ template:
+ - sync_series_trakt
+ list_clear:
+ what:
+ - entry_list: trakt-series-queue
+ inputs:
+ - trakt_list:
+ <<: *trakt
+ list: watchlist
+ type: shows
+ - trakt_list:
+ <<: *trakt
+ list: series-queue
+ type: shows
+ if:
+ # if series name contains special characters
+ - trakt_series_name|asciify|strip_symbols != trakt_series_name:
+ set:
+ # set alternate_name with special chars removed
+ configure_series_alternate_name: "{{trakt_series_name|asciify|strip_symbols}}"
+ #FIXME doesn't work for discover, no search is emited for alternate_name
+ # worth a patch?
+ # Maybe that's a newznab search plugin functionality, I've patched it in there for now.
+ disable: seen
+ list_add:
+ - trakt_list:
+ <<: *trakt
+ list: series-queue
+ type: shows
+ - entry_list: trakt-series-queue
+
+ sync-series-begin: # {{{2
+ priority: 3
+ disable: seen
+ template:
+ - sync_series_trakt
+ configure_series:
+ from:
+ filesystem:
+ path:
+ - '/mnt/series'
+ retrieve: dirs
+ next_trakt_episodes:
+ <<: *trakt
+ list: collection
+ context: collected
+ accept_all: yes
+ set_series_begin: yes
- seen: local
- disable:
- - retry_failed
- no_entries_ok: yes
- find:
- path:
- - /mnt/Skaro/usenet/done
- - /mnt/Skaro/torrents/done
- recursive: yes
- regexp: '.*\.(avi|mkv|mp4|mpg|divx|webm)$'
+ sync-watchlist-movies: # {{{2
+ # get movies from trakt watchlist and adds them to flexget movie queue
+ priority: 1
+ list_clear:
+ what:
+ - movie_list: trakt-movies-queue
+ inputs:
+ - trakt_list:
+ <<: *trakt
+ list: watchlist
+ type: movies
+ - trakt_list:
+ <<: *trakt
+ list: movies-queue
+ type: movies
+ accept_all: yes
+ list_add:
+ - movie_list: trakt-movies-queue
+ - trakt_list:
+ <<: *trakt
+ list: movies-queue
+ type: movies
+ disable: [seen]
- regexp:
- reject:
- - '[Ss]ample'
- thetvdb_lookup: yes
- all_series:
- parse_only: yes
+ _sync-movies-collected-trakt: # {{{2
+ # this is expensive, don't run often
+ manual: yes
+ priority: 1
+ list_clear:
+ what:
+ - movie_list: movies-collected-trakt
+ trakt_list:
+ account: '{?trakt.account?}'
+ list: collection
+ type: movies
+ list_add:
+ - movie_list: movies-collected-trakt
accept_all: yes
+ disable: [seen]
- set:
- destination: '/mnt/Skaro/Series'
- folder: "{{tvdb_series_name}}/{% if tvdb_season == 0 %}Specials{% else %}Season {{tvdb_season}}{% endif %}"
- filename: "{{tvdb_season}}x{{tvdb_episode|pad(2)}} {{tvdb_ep_name|replace('/','-')}} ({{tvdb_ep_air_date|formatdate('%Y')}}){{'{'}}{{quality|replace(' ','}{')}}{{'}'}}[en]"
- move:
- to: "/mnt/Skaro/Series/{{folder}}"
- filename: "{{filename}}"
- clean_source: 100 # removes dir if < [N] MB
- exec: echo "<<<{{folder}}/{{filename}}>>>"
- email:
- from: flexget@tardis
- to: ramsi@localhost
- template: move
+ move-series-usenet: # {{{2
+ manual: yes
+ template:
+ - move_series
+ filesystem:
+ path:
+ - /srv/usenet/done/series
+ recursive: yes
+ retrieve: files
+ regexp: '.*\.(avi|mkv|mp4|mpg|divx|webm|flv)$'
- move-movies: # {{{2
- priority: 3
+ move-series-torrents: # {{{2
+ manual: yes
+ template:
+ - move_series
+ filesystem:
+ path:
+ - /srv/torrents/done
+ recursive: yes
+ retrieve: files
+ regexp: '.*\.(avi|mkv|mp4|mpg|divx|webm|flv)$'
- seen: local
- disable:
- - retry_failed
- no_entries_ok: yes
- find:
+ move-movies-usenet: # {{{2
+ manual: yes
+ template:
+ - move_movies
+ - trakt_remove_movie_queue
+ filesystem:
path:
- - /mnt/Skaro/usenet/done
- - /mnt/Skaro/torrents/done
+ - /srv/usenet/done/movies
recursive: yes
regexp: '.*\.(mkv|avi|mp4)$'
- regexp:
- reject:
- - '[Ss]ample'
- imdb_lookup: yes
- accept_all: yes
+ move-movies-torrents: # {{{2
+ manual: yes
+ template:
+ - move_movies
+ - trakt_remove_movie_queue
+ filesystem:
+ path:
+ - /srv/torrents/done
+ recursive: yes
+ regexp: '.*\.(mkv|avi|mp4)$'
- set:
- destination: '/mnt/Skaro/Movies'
- filename: "{{imdb_name}} ({{imdb_year}}){{'{'}}{{quality|replace(' ','}{')}}{{'}'}}[en]"
- move:
- to: "/mnt/Skaro/Movies"
- filename: "{{filename}}"
- clean_source: 100 # removes dir if < [N] MB
- exec: echo "<<<{{filename}}>>>"
- email:
- from: flexget@tardis
- to: ramsi@localhost
- template: move
+ seed-series-db: # {{{2
+ manual: yes
+ seen: local
+ template:
+ - series_filesystem
+ configure_series:
+ from:
+ # entry_list: series-trakt
+ sonarr_list:
+ <<: *sonarr
+ only_monitored: yes
+ settings:
+ # tracking: no
+ identified_by: ep
+ accept_all: yes
- seed-tv-db: # {{{2
+ seed-series-trakt: # {{{2
+ # can also be used to learn and seed local db
+ # since adding to trakt doesn't work that is the only usage atm
manual: yes
+ seen: local
+ configure_series:
+ from:
+ filesystem:
+ path:
+ - '/mnt/series'
+ retrieve: dirs
+ template:
+ - series_filesystem
+ # currently doesn't work and times out, need to patch to send in batches
+ # - trakt_add_collection
+ accept_all: yes
- find:
- path: '/mnt/Skaro/Series'
- regexp: '.*\.(avi|mkv|mp4|webm)$'
- recursive: yes
- manipulate:
- - title:
- from: location
- replace:
- regexp: '.*/([^/]+)/[^/]+/(\d+)x(\d+)([^/]*)\.[^.]+$'
- format: '\1 S\2E\3\4'
- - title:
- replace:
- regexp: '\[.*\]'
- format: ''
- - title:
- replace:
- regexp: '[\(\)\{\}]'
- format: ' '
+ seed-movies-trakt: # {{{2
+ # this will result in an error since the request is soo long
+ # but it seems that the data is still uploaded fully and updated
+ manual: yes
+ seen: local
+ template:
+ - movies_filesystem
+ - trakt_add_collection
+ accept_all: yes
- all_series: yes
- assume_quality: 480p
- require_field:
- - series_name
+ trakt-copy-list: # {{{2
+ manual: yes
+ trakt_list:
+ <<: *trakt
+ list: series-queue
+ type: shows
+ accept_all: yes
+ list_add:
+ - trakt_list:
+ <<: *trakt
+ list: series-queue-backup
+ type: shows
+
schedules: # {{{1
- - tasks: ['dl-*']
- schedule:
- hour: '*'
- minute: '48'
+ - tasks: ['sync-watchlist-series*', 'dl-series']
+ interval:
+ hours: 1
+ jitter: 120 # seconds
+ - tasks: ['dl-movies']
+ interval:
+ hours: 2
+ jitter: 120 # seconds
+ - tasks: ['sync-watchlist-movies']
+ interval:
+ hours: 3 # needs to be 2h+ to avoid trakt_list cache
+ jitter: 120 # seconds
# vim: sts=2 ts=2 sw=2 et