[HowTo] Flexget, "the lazy couch" fully automated watching experience

Flexget is a tool that can automate a lot of things for your mediacenter.
I pay for lineair tv, Netflix and cinema but still prefer to use this method because it provides free choice without region or time-to-watch limitations.

A full guide for dummies is available here, it explains in laymens terms what Flexget will do for you. Compared to other tools like Sonarr and Radarr, it is a multitude times more lightweight, faster and automates much more to make sure you or even your parents and grandparents won’t have to do anything, only use their TV remote like they are used to.

It provides installation via a script (autosetup.sh).

How it works (quoted from the link above)
http://Trakt.tv is a legal site, similar to IMDB.
You can mark tvshows you like (add them to a list) and mark movies you would like to watch (add them to Trakt’s “Watchlist”. Also, it keeps track of Kodi’s watched status. So Trakt knows what you would like to watch and what you have already seen.

What will flexget do?

  1. Flexget will run on your OSMC device, scan your Trakt.tv lists, checks if shows have been fully watched and/or ended and clean up your list if needed. Also, it will figure out the next episode you would want to watch.

  2. Flexget will scan your harddrive for matching content. It will scan your manual download folder and process the matching files as described below.

  3. Flexget will create a list of all movies and unwatched episodes.

  4. Flexget will scan RSS feeds and sites for magnet links that match the unwatched list and only select those that match specific quality and language restrictions.

  5. Flexget will add these magnets to Transmission with correct naming scheme that matches TheTVDB and IMDB, this guarantees Kodi will always be able to recognise the content(!).

  6. Flexget will only download the main file and subtitles, no other files that clutter your drive.

  7. After downloading, Flexget will move the files to the correct folders, again checking if naming schemes. Flexget will make sure you have a neat folder structure.

  8. Also, the files will be added to a subtitles queue and Flexget will use Subliminal to keep looking for subtitles that match your language settings.

  9. Also, Flexget will trigger Kodi(!) to scan the new files to the library.

  10. For movies, they will be removed from your Trakt Watchlist after they have been retrieved.

  11. Once you have finished watching episode 1 of a new season (>1), Flexget will delete older seasons within a week.

  12. After deleting old, watched seasons, Flexget will trigger Kodi to cleanup its library.

  13. Flexget will cleanup Transmission regularly.

Automatic Installation

Even if you choose to install Flexget manually I highly recommend to read this page to get the true lazy couch experience. It explains how to semi-automatically install but also configure Flexget appropriately.

Manual Installation
Simply copy and paste each command in the “Flexget” section of the autosetup.sh script.

3 Likes

Before asking questions please read the guide first and check the FAQ.

Hi I’m having trouble with setting up the service.

Mar 30 12:23:33 osmc systemd[1]: Started Flexget Daemon.
Mar 30 12:24:12 osmc flexget[273]: 2018-03-30 12:24 WARNING  manager                       Your locale declares ascii as the filesystem encoding. Any plugins reading fi
Mar 30 12:24:34 osmc flexget[273]: Traceback (most recent call last):
Mar 30 12:24:34 osmc flexget[273]:   File "/home/osmc/flexget/lib/python3.5/site-packages/sqlalchemy/engine/base.py", line 1182, in _execute_context
Mar 30 12:24:34 osmc flexget[273]:     context)
Mar 30 12:24:34 osmc flexget[273]:   File "/home/osmc/flexget/lib/python3.5/site-packages/sqlalchemy/engine/default.py", line 470, in do_execute
Mar 30 12:24:34 osmc flexget[273]:     cursor.execute(statement, parameters)
Mar 30 12:24:34 osmc flexget[273]: sqlite3.OperationalError: attempt to write a readonly database
Mar 30 12:24:34 osmc flexget[273]: The above exception was the direct cause of the following exception:
Mar 30 12:24:34 osmc flexget[273]: Traceback (most recent call last):
Mar 30 12:24:34 osmc flexget[273]:   File "/home/osmc/flexget/bin/flexget", line 11, in <module>
Mar 30 12:24:34 osmc flexget[273]:     sys.exit(main())
Mar 30 12:24:34 osmc flexget[273]:   File "/home/osmc/flexget/lib/python3.5/site-packages/flexget/__init__.py", line 42, in main
Mar 30 12:24:34 osmc flexget[273]:     manager.start()
Mar 30 12:24:34 osmc flexget[273]:   File "/home/osmc/flexget/lib/python3.5/site-packages/flexget/manager.py", line 330, in start
Mar 30 12:24:34 osmc flexget[273]:     self.initialize()
Mar 30 12:24:34 osmc flexget[273]:   File "/home/osmc/flexget/lib/python3.5/site-packages/flexget/manager.py", line 203, in initialize
Mar 30 12:24:34 osmc flexget[273]:     self.load_config()
Mar 30 12:24:34 osmc flexget[273]:   File "/home/osmc/flexget/lib/python3.5/site-packages/flexget/manager.py", line 625, in load_config
Mar 30 12:24:34 osmc flexget[273]:     self.update_config(config)
Mar 30 12:24:34 osmc flexget[273]:   File "/home/osmc/flexget/lib/python3.5/site-packages/flexget/manager.py", line 636, in update_config
Mar 30 12:24:34 osmc flexget[273]:     self.config = self.validate_config(config)
Mar 30 12:24:34 osmc flexget[273]:   File "/home/osmc/flexget/lib/python3.5/site-packages/flexget/manager.py", line 689, in validate_config
Mar 30 12:24:34 osmc flexget[273]:     config = fire_event('manager.before_config_validate', config, self)
Mar 30 12:24:34 osmc flexget[273]:   File "/home/osmc/flexget/lib/python3.5/site-packages/flexget/event.py", line 106, in fire_event
Mar 30 12:24:34 osmc flexget[273]:     result = event(*args, **kwargs)
Mar 30 12:24:34 osmc flexget[273]:   File "/home/osmc/flexget/lib/python3.5/site-packages/flexget/event.py", line 23, in __call__
Mar 30 12:24:34 osmc flexget[273]:     return self.func(*args, **kwargs)
Mar 30 12:24:34 osmc flexget[273]:   File "/home/osmc/flexget/lib/python3.5/site-packages/flexget/plugins/modify/variables.py", line 87, in process_variables
Mar 30 12:24:34 osmc flexget[273]:     variables_to_db(variables)
Mar 30 12:24:34 osmc flexget[273]:   File "/home/osmc/flexget/lib/python3.5/site-packages/flexget/plugins/modify/variables.py", line 65, in variables_to_db
Mar 30 12:24:34 osmc flexget[273]:     session.merge(variables)
Mar 30 12:24:34 osmc flexget[273]:   File "/home/osmc/flexget/lib/python3.5/site-packages/sqlalchemy/orm/session.py", line 1839, in merge
Mar 30 12:24:34 osmc flexget[273]:     self._autoflush()
Mar 30 12:24:34 osmc flexget[273]:   File "/home/osmc/flexget/lib/python3.5/site-packages/sqlalchemy/orm/session.py", line 1407, in _autoflush
Mar 30 12:24:34 osmc flexget[273]:     util.raise_from_cause(e)
Mar 30 12:24:34 osmc flexget[273]:   File "/home/osmc/flexget/lib/python3.5/site-packages/sqlalchemy/util/compat.py", line 203, in raise_from_cause
Mar 30 12:24:34 osmc flexget[273]:     reraise(type(exception), exception, tb=exc_tb, cause=cause)
Mar 30 12:24:34 osmc flexget[273]:   File "/home/osmc/flexget/lib/python3.5/site-packages/sqlalchemy/util/compat.py", line 187, in reraise
Mar 30 12:24:34 osmc flexget[273]:     raise value
Mar 30 12:24:34 osmc flexget[273]:   File "/home/osmc/flexget/lib/python3.5/site-packages/sqlalchemy/orm/session.py", line 1397, in _autoflush
Mar 30 12:24:34 osmc flexget[273]:     self.flush()
Mar 30 12:24:34 osmc flexget[273]:   File "/home/osmc/flexget/lib/python3.5/site-packages/sqlalchemy/orm/session.py", line 2171, in flush
Mar 30 12:24:34 osmc flexget[273]:     self._flush(objects)
Mar 30 12:24:34 osmc flexget[273]:   File "/home/osmc/flexget/lib/python3.5/site-packages/sqlalchemy/orm/session.py", line 2291, in _flush
Mar 30 12:24:34 osmc flexget[273]:     transaction.rollback(_capture_exception=True)
Mar 30 12:24:34 osmc flexget[273]:   File "/home/osmc/flexget/lib/python3.5/site-packages/sqlalchemy/util/langhelpers.py", line 66, in __exit__
Mar 30 12:24:34 osmc flexget[273]:     compat.reraise(exc_type, exc_value, exc_tb)
Mar 30 12:24:34 osmc flexget[273]:   File "/home/osmc/flexget/lib/python3.5/site-packages/sqlalchemy/util/compat.py", line 187, in reraise
Mar 30 12:24:34 osmc flexget[273]:     raise value
Mar 30 12:24:34 osmc flexget[273]:   File "/home/osmc/flexget/lib/python3.5/site-packages/sqlalchemy/orm/session.py", line 2255, in _flush
Mar 30 12:24:34 osmc flexget[273]:     flush_context.execute()
Mar 30 12:24:34 osmc flexget[273]:   File "/home/osmc/flexget/lib/python3.5/site-packages/sqlalchemy/orm/unitofwork.py", line 389, in execute
Mar 30 12:24:34 osmc flexget[273]:     rec.execute(self)
Mar 30 12:24:34 osmc flexget[273]:   File "/home/osmc/flexget/lib/python3.5/site-packages/sqlalchemy/orm/unitofwork.py", line 548, in execute
Mar 30 12:24:34 osmc flexget[273]:     uow
Mar 30 12:24:34 osmc flexget[273]:   File "/home/osmc/flexget/lib/python3.5/site-packages/sqlalchemy/orm/persistence.py", line 177, in save_obj
Mar 30 12:24:34 osmc flexget[273]:     mapper, table, update)
Mar 30 12:24:34 osmc flexget[273]:   File "/home/osmc/flexget/lib/python3.5/site-packages/sqlalchemy/orm/persistence.py", line 737, in _emit_update_statements
Mar 30 12:24:34 osmc flexget[273]:     execute(statement, multiparams)
Mar 30 12:24:34 osmc flexget[273]:   File "/home/osmc/flexget/lib/python3.5/site-packages/sqlalchemy/engine/base.py", line 945, in execute
Mar 30 12:24:34 osmc flexget[273]:     return meth(self, multiparams, params)
Mar 30 12:24:34 osmc flexget[273]:   File "/home/osmc/flexget/lib/python3.5/site-packages/sqlalchemy/sql/elements.py", line 263, in _execute_on_connection
Mar 30 12:24:34 osmc flexget[273]:     return connection._execute_clauseelement(self, multiparams, params)
Mar 30 12:24:34 osmc flexget[273]:   File "/home/osmc/flexget/lib/python3.5/site-packages/sqlalchemy/engine/base.py", line 1053, in _execute_clauseelement
Mar 30 12:24:34 osmc flexget[273]:     compiled_sql, distilled_params
Mar 30 12:24:34 osmc flexget[273]:   File "/home/osmc/flexget/lib/python3.5/site-packages/sqlalchemy/engine/base.py", line 1189, in _execute_context
Mar 30 12:24:34 osmc flexget[273]:     context)
Mar 30 12:24:34 osmc flexget[273]:   File "/home/osmc/flexget/lib/python3.5/site-packages/sqlalchemy/engine/base.py", line 1402, in _handle_dbapi_exception
Mar 30 12:24:34 osmc flexget[273]:     exc_info
Mar 30 12:24:34 osmc flexget[273]:   File "/home/osmc/flexget/lib/python3.5/site-packages/sqlalchemy/util/compat.py", line 203, in raise_from_cause
Mar 30 12:24:34 osmc flexget[273]:     reraise(type(exception), exception, tb=exc_tb, cause=cause)
Mar 30 12:24:34 osmc flexget[273]:   File "/home/osmc/flexget/lib/python3.5/site-packages/sqlalchemy/util/compat.py", line 186, in reraise
Mar 30 12:24:34 osmc flexget[273]:     raise value.with_traceback(tb)
Mar 30 12:24:34 osmc flexget[273]:   File "/home/osmc/flexget/lib/python3.5/site-packages/sqlalchemy/engine/base.py", line 1182, in _execute_context
Mar 30 12:24:34 osmc flexget[273]:     context)
Mar 30 12:24:34 osmc flexget[273]:   File "/home/osmc/flexget/lib/python3.5/site-packages/sqlalchemy/engine/default.py", line 470, in do_execute
Mar 30 12:24:34 osmc flexget[273]:     cursor.execute(statement, parameters)
Mar 30 12:24:34 osmc flexget[273]: sqlalchemy.exc.OperationalError: (raised as a result of Query-invoked autoflush; consider using a session.no_autoflush block if this
Mar 30 12:24:36 osmc systemd[1]: flexget.service: Main process exited, code=exited, status=1/FAILURE
Mar 30 12:24:45 osmc flexget[1010]: 2018-03-30 12:24 WARNING  manager                       Your locale declares ascii as the filesystem encoding. Any plugins reading f
Mar 30 12:25:05 osmc flexget[1010]: Traceback (most recent call last):
Mar 30 12:25:05 osmc flexget[1010]:   File "/home/osmc/flexget/lib/python3.5/site-packages/sqlalchemy/engine/base.py", line 1182, in _execute_context
Mar 30 12:25:05 osmc flexget[1010]:     context)
Mar 30 12:25:05 osmc flexget[1010]:   File "/home/osmc/flexget/lib/python3.5/site-packages/sqlalchemy/engine/default.py", line 470, in do_execute
Mar 30 12:25:05 osmc flexget[1010]:     cursor.execute(statement, parameters)
Mar 30 12:25:05 osmc flexget[1010]: sqlite3.OperationalError: attempt to write a readonly database
Mar 30 12:25:05 osmc flexget[1010]: The above exception was the direct cause of the following exception:
Mar 30 12:25:05 osmc flexget[1010]: Traceback (most recent call last):
Mar 30 12:25:05 osmc flexget[1010]:   File "/home/osmc/flexget/bin/flexget", line 11, in <module>
Mar 30 12:25:05 osmc flexget[1010]:     sys.exit(main())
Mar 30 12:25:05 osmc flexget[1010]:   File "/home/osmc/flexget/lib/python3.5/site-packages/flexget/__init__.py", line 42, in main
Mar 30 12:25:05 osmc flexget[1010]:     manager.start()
Mar 30 12:25:05 osmc flexget[1010]:   File "/home/osmc/flexget/lib/python3.5/site-packages/flexget/manager.py", line 330, in start
Mar 30 12:25:05 osmc flexget[1010]:     self.initialize()
Mar 30 12:25:05 osmc flexget[1010]:   File "/home/osmc/flexget/lib/python3.5/site-packages/flexget/manager.py", line 203, in initialize
Mar 30 12:25:05 osmc flexget[1010]:     self.load_config()
Mar 30 12:25:05 osmc flexget[1010]:   File "/home/osmc/flexget/lib/python3.5/site-packages/flexget/manager.py", line 625, in load_config
Mar 30 12:25:05 osmc flexget[1010]:     self.update_config(config)
Mar 30 12:25:05 osmc flexget[1010]:   File "/home/osmc/flexget/lib/python3.5/site-packages/flexget/manager.py", line 636, in update_config
Mar 30 12:25:05 osmc flexget[1010]:     self.config = self.validate_config(config)
Mar 30 12:25:05 osmc flexget[1010]:   File "/home/osmc/flexget/lib/python3.5/site-packages/flexget/manager.py", line 689, in validate_config
Mar 30 12:25:05 osmc flexget[1010]:     config = fire_event('manager.before_config_validate', config, self)
Mar 30 12:25:05 osmc flexget[1010]:   File "/home/osmc/flexget/lib/python3.5/site-packages/flexget/event.py", line 106, in fire_event
Mar 30 12:25:05 osmc flexget[1010]:     result = event(*args, **kwargs)
Mar 30 12:25:05 osmc flexget[1010]:   File "/home/osmc/flexget/lib/python3.5/site-packages/flexget/event.py", line 23, in __call__
Mar 30 12:25:05 osmc flexget[1010]:     return self.func(*args, **kwargs)
Mar 30 12:25:05 osmc flexget[1010]:   File "/home/osmc/flexget/lib/python3.5/site-packages/flexget/plugins/modify/variables.py", line 87, in process_variables
Mar 30 12:25:05 osmc flexget[1010]:     variables_to_db(variables)
Mar 30 12:25:05 osmc flexget[1010]:   File "/home/osmc/flexget/lib/python3.5/site-packages/flexget/plugins/modify/variables.py", line 65, in variables_to_db
Mar 30 12:25:05 osmc flexget[1010]:     session.merge(variables)
Mar 30 12:25:05 osmc flexget[1010]:   File "/home/osmc/flexget/lib/python3.5/site-packages/sqlalchemy/orm/session.py", line 1839, in merge
Mar 30 12:25:05 osmc flexget[1010]:     self._autoflush()
Mar 30 12:25:05 osmc flexget[1010]:   File "/home/osmc/flexget/lib/python3.5/site-packages/sqlalchemy/orm/session.py", line 1407, in _autoflush
Mar 30 12:25:05 osmc flexget[1010]:     util.raise_from_cause(e)
Mar 30 12:25:05 osmc flexget[1010]:   File "/home/osmc/flexget/lib/python3.5/site-packages/sqlalchemy/util/compat.py", line 203, in raise_from_cause
Mar 30 12:25:05 osmc flexget[1010]:     reraise(type(exception), exception, tb=exc_tb, cause=cause)
Mar 30 12:25:05 osmc flexget[1010]:   File "/home/osmc/flexget/lib/python3.5/site-packages/sqlalchemy/util/compat.py", line 187, in reraise
Mar 30 12:25:05 osmc flexget[1010]:     raise value
Mar 30 12:25:05 osmc flexget[1010]:   File "/home/osmc/flexget/lib/python3.5/site-packages/sqlalchemy/orm/session.py", line 1397, in _autoflush
Mar 30 12:25:05 osmc flexget[1010]:     self.flush()
Mar 30 12:25:05 osmc flexget[1010]:   File "/home/osmc/flexget/lib/python3.5/site-packages/sqlalchemy/orm/session.py", line 2171, in flush
Mar 30 12:25:05 osmc flexget[1010]:     self._flush(objects)
Mar 30 12:25:05 osmc flexget[1010]:   File "/home/osmc/flexget/lib/python3.5/site-packages/sqlalchemy/orm/session.py", line 2291, in _flush
Mar 30 12:25:05 osmc flexget[1010]:     transaction.rollback(_capture_exception=True)
Mar 30 12:25:05 osmc flexget[1010]:   File "/home/osmc/flexget/lib/python3.5/site-packages/sqlalchemy/util/langhelpers.py", line 66, in __exit__
Mar 30 12:25:05 osmc flexget[1010]:     compat.reraise(exc_type, exc_value, exc_tb)
Mar 30 12:25:05 osmc flexget[1010]:   File "/home/osmc/flexget/lib/python3.5/site-packages/sqlalchemy/util/compat.py", line 187, in reraise
Mar 30 12:25:05 osmc flexget[1010]:     raise value
Mar 30 12:25:05 osmc flexget[1010]:   File "/home/osmc/flexget/lib/python3.5/site-packages/sqlalchemy/orm/session.py", line 2255, in _flush
Mar 30 12:25:05 osmc flexget[1010]:     flush_context.execute()
Mar 30 12:25:05 osmc flexget[1010]:   File "/home/osmc/flexget/lib/python3.5/site-packages/sqlalchemy/orm/unitofwork.py", line 389, in execute
Mar 30 12:25:05 osmc flexget[1010]:     rec.execute(self)
Mar 30 12:25:05 osmc flexget[1010]:   File "/home/osmc/flexget/lib/python3.5/site-packages/sqlalchemy/orm/unitofwork.py", line 548, in execute
Mar 30 12:25:05 osmc flexget[1010]:     uow
Mar 30 12:25:05 osmc flexget[1010]:   File "/home/osmc/flexget/lib/python3.5/site-packages/sqlalchemy/orm/persistence.py", line 177, in save_obj
Mar 30 12:25:05 osmc flexget[1010]:     mapper, table, update)
Mar 30 12:25:05 osmc flexget[1010]:   File "/home/osmc/flexget/lib/python3.5/site-packages/sqlalchemy/orm/persistence.py", line 737, in _emit_update_statements
Mar 30 12:25:05 osmc flexget[1010]:     execute(statement, multiparams)
Mar 30 12:25:05 osmc flexget[1010]:   File "/home/osmc/flexget/lib/python3.5/site-packages/sqlalchemy/engine/base.py", line 945, in execute
Mar 30 12:25:05 osmc flexget[1010]:     return meth(self, multiparams, params)
Mar 30 12:25:05 osmc flexget[1010]:   File "/home/osmc/flexget/lib/python3.5/site-packages/sqlalchemy/sql/elements.py", line 263, in _execute_on_connection
Mar 30 12:25:05 osmc flexget[1010]:     return connection._execute_clauseelement(self, multiparams, params)
Mar 30 12:25:05 osmc flexget[1010]:   File "/home/osmc/flexget/lib/python3.5/site-packages/sqlalchemy/engine/base.py", line 1053, in _execute_clauseelement
Mar 30 12:25:05 osmc flexget[1010]:     compiled_sql, distilled_params
Mar 30 12:25:05 osmc flexget[1010]:   File "/home/osmc/flexget/lib/python3.5/site-packages/sqlalchemy/engine/base.py", line 1189, in _execute_context
Mar 30 12:25:05 osmc flexget[1010]:     context)
Mar 30 12:25:05 osmc flexget[1010]:   File "/home/osmc/flexget/lib/python3.5/site-packages/sqlalchemy/engine/base.py", line 1402, in _handle_dbapi_exception
Mar 30 12:25:05 osmc flexget[1010]:     exc_info
Mar 30 12:25:05 osmc flexget[1010]:   File "/home/osmc/flexget/lib/python3.5/site-packages/sqlalchemy/util/compat.py", line 203, in raise_from_cause
Mar 30 12:25:05 osmc flexget[1010]:     reraise(type(exception), exception, tb=exc_tb, cause=cause)
Mar 30 12:25:05 osmc flexget[1010]:   File "/home/osmc/flexget/lib/python3.5/site-packages/sqlalchemy/util/compat.py", line 186, in reraise
Mar 30 12:25:05 osmc flexget[1010]:     raise value.with_traceback(tb)
Mar 30 12:25:05 osmc flexget[1010]:   File "/home/osmc/flexget/lib/python3.5/site-packages/sqlalchemy/engine/base.py", line 1182, in _execute_context
Mar 30 12:25:05 osmc flexget[1010]:     context)
Mar 30 12:25:05 osmc flexget[1010]:   File "/home/osmc/flexget/lib/python3.5/site-packages/sqlalchemy/engine/default.py", line 470, in do_execute
Mar 30 12:25:05 osmc flexget[1010]:     cursor.execute(statement, parameters)
Mar 30 12:25:05 osmc flexget[1010]: sqlalchemy.exc.OperationalError: (raised as a result of Query-invoked autoflush; consider using a session.no_autoflush block if this
Mar 30 12:25:06 osmc systemd[1]: flexget.service: Control process exited, code=exited status=1
Mar 30 12:25:06 osmc systemd[1]: flexget.service: Unit entered failed state.
Mar 30 12:25:06 osmc systemd[1]: flexget.service: Failed with result 'exit-code'.

Any idea what’s the problem here? If I do
sudo ~/flexget/bin/flexget execute --now it does work. I’ve also installed the flexget==2.11.21 version. I’m not sure about the require field bit, although I use the move-series task.

By adding the user root to the system and changing the user to root in the service file I’ve managed to make it work.

Hi Zilexa,

that is an awesome bunch of functionalities you describe. Just a simple – maybe stupid – question: While you point out that trakt.tv is a fully legal service, am I right to assume that the sources used by Transmission to download are not?

If they are, I’d be very interested in which sources it uses. Netflix, Amazon and the likes don’t work for Kodi. Using OTA TV to gather all the desired episodes and movies is cumbersome and a big hassle but has the advantage of being totally legal. A better way without pirating would be great!

Netflix and Amazon do work on Kodi v18 builds.

Transmission uses BitTorrent. It’s P2P…

Yeah, I thought so. Since no reputable studio publishes it’s content through torrents, that is nothing I would publicly advise anybody to use. At least in Europe torrent users risk to be sentenced to high damage payments when they download and thereby at the same time share pirated content.

If Netflix and Amazon work reliably on Kodi 18 that’s great news, but alpha builds are not conducive for the family acceptance, so the average user will still have to wait a little.

Your post is unreadible. Please post your log with three of these before and after on a new line: `

Yes indeed, I pay for Netflix and my regular tv subscription and in my country, TV rights is also part of income tax (crazy but true, in NL). I suppose when you want to use Transmission, you have some common sense and will use a VPN by default.

The Flexget config I provide contains a few public RSS feeds of torrent p2p services. You can of course change this. I believe Flexget also supports NZB/usenet but I don’t know how to configure that.

For me Transmission and Flexget run on a seperate RPi3 which runs OpenVPN as well. These three apps run on OSMC. Kodi is disabled.

I have updated my config slightly, now Flexget will run way less often by itself. Instead, Transmission will trigger the appropriate tasks after an item in Transmission has been completed. Cool, because now Kodi will get updated with content right away.

2 Likes

@zilexa do you know if this config continues working after kodi18 upgrade?

I don’t believe the json call to Kodi to update the library has changed. It’s a pretty basic json command. I will probably update my system later this week and test this.

I will test my config against the latest Flexget release soon as my config is still bound to an old version due to a bug in Flexget that should be resolved now.

@zilexa I could use your help. I’m pretty new to all this, I just set everything up over the weekend using your guide. There were a few gotchas I was able to remedy on my own, but the one thing I still can’t figure out is the transmission done script. I have it setup as suggested but from what I can tell it never runs.

I installed the new version of OSMC on a new SD card (clean install) and also followed this guide, installing the latest versions of all associated services and applications. Everything is working smoothly (only exception is script on transmission so i resorted to the old approach of using the flexget daemon every 30 mins).

@zilexa noticed that you moved to jellyfin, are you using the kodi plugin for jellyfin and did you deploy jellyfin using docker in osmc?

I’m wondering if i should continue upgrading flexget or simply move to jellyfin as well.

I’m having trouble installing using the script on my Vero 4k+

I get this error early in the installation:
bash: /.kodi/userdata/sources.xml: No such file or directory

And the script ends with these lines:
2020-11-05 20:15:17 CRITICAL manager Failed to find configuration file config.yml
2020-11-05 20:15:17 INFO manager Tried to read from: /home/osmc/flexget/plugins, /root/.flexget, /root/.config/flexget
Could not instantiate manager: No configuration file found.

Any idea what I need to do? I’m able to find sources.xml when I check manually.