Metadata-Version: 2.4
Name: FlexGet
Version: 3.3.37
Summary: FlexGet is a program aimed to automate downloading or processing content (torrents, podcasts, etc.) from different sources like RSS-feeds, html-pages, various sites and more.
Home-page: https://flexget.com
Author: Marko Koivusalo
Author-email: marko.koivusalo@gmail.com
License: MIT
Project-URL: Repository, https://github.com/Flexget/Flexget
Project-URL: Issue Tracker, https://github.com/Flexget/Flexget/issues
Project-URL: Forum, https://discuss.flexget.com
Classifier: Development Status :: 5 - Production/Stable
Classifier: License :: OSI Approved :: MIT License
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python
Classifier: Programming Language :: Python :: 3.6
Classifier: Programming Language :: Python :: 3.7
Classifier: Programming Language :: Python :: 3.8
Classifier: Programming Language :: Python :: 3.9
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: Implementation :: CPython
Classifier: Programming Language :: Python :: Implementation :: PyPy
Requires-Python: >=3.6
Description-Content-Type: text/x-rst
License-File: LICENSE
Requires-Dist: aniso8601==9.0.1
Requires-Dist: apscheduler==3.9.1
Requires-Dist: attrs==21.4.0
Requires-Dist: babelfish==0.6.0
Requires-Dist: beautifulsoup4==4.10.0
Requires-Dist: brotli==1.0.9
Requires-Dist: certifi==2021.10.8
Requires-Dist: charset-normalizer==2.0.12
Requires-Dist: cheroot==8.6.0
Requires-Dist: cherrypy==18.6.1
Requires-Dist: click==8.0.4
Requires-Dist: colorama==0.4.5
Requires-Dist: commonmark==0.9.1
Requires-Dist: feedparser==6.0.8
Requires-Dist: flask==2.0.3
Requires-Dist: flask-compress==1.11
Requires-Dist: flask-cors==3.0.10
Requires-Dist: flask-login==0.5.0
Requires-Dist: flask-restful==0.3.9
Requires-Dist: flask-restx==0.5.1
Requires-Dist: greenlet==1.1.2
Requires-Dist: guessit==3.4.3
Requires-Dist: html5lib==1.1
Requires-Dist: idna==3.3
Requires-Dist: itsdangerous==2.0.1
Requires-Dist: jaraco-classes==3.2.1
Requires-Dist: jaraco-collections==3.4.0
Requires-Dist: jaraco-context==4.1.1
Requires-Dist: jaraco-functools==3.4.0
Requires-Dist: jaraco-text==3.7.0
Requires-Dist: jinja2==3.0.3
Requires-Dist: jsonschema==3.2.0
Requires-Dist: loguru==0.6.0
Requires-Dist: markupsafe==2.0.1
Requires-Dist: more-itertools==8.12.0
Requires-Dist: packaging==21.3
Requires-Dist: plumbum==1.7.2
Requires-Dist: portend==3.0.0
Requires-Dist: psutil==5.9.0
Requires-Dist: pygments==2.11.2
Requires-Dist: pynzb==0.1.0
Requires-Dist: pyparsing==2.4.7
Requires-Dist: pyrsistent==0.18.0
Requires-Dist: pyrss2gen==1.1
Requires-Dist: python-dateutil==2.8.2
Requires-Dist: pytz==2022.1
Requires-Dist: pytz-deprecation-shim==0.1.0.post0
Requires-Dist: pyyaml==6.0
Requires-Dist: rebulk==3.1.0
Requires-Dist: requests==2.27.1
Requires-Dist: rich==12.0.1
Requires-Dist: rpyc==5.0.1
Requires-Dist: sgmllib3k==1.0.0
Requires-Dist: six==1.16.0
Requires-Dist: soupsieve==2.3.1
Requires-Dist: sqlalchemy==1.4.32
Requires-Dist: tempora==4.1.2
Requires-Dist: tzdata==2022.1
Requires-Dist: tzlocal==4.1
Requires-Dist: urllib3==1.26.9
Requires-Dist: webencodings==0.5.1
Requires-Dist: werkzeug==2.0.3
Requires-Dist: zc-lockfile==2.0
Requires-Dist: zxcvbn-python==4.4.24
Provides-Extra: dev
Requires-Dist: alabaster==0.7.12; extra == "dev"
Requires-Dist: astroid==2.11.2; extra == "dev"
Requires-Dist: atomicwrites==1.4.0; extra == "dev"
Requires-Dist: attrs==21.4.0; extra == "dev"
Requires-Dist: babel==2.9.1; extra == "dev"
Requires-Dist: black==22.3.0; extra == "dev"
Requires-Dist: bleach==4.1.0; extra == "dev"
Requires-Dist: boto3==1.21.28; extra == "dev"
Requires-Dist: botocore==1.24.28; extra == "dev"
Requires-Dist: certifi==2021.10.8; extra == "dev"
Requires-Dist: cfgv==3.3.1; extra == "dev"
Requires-Dist: charset-normalizer==2.0.12; extra == "dev"
Requires-Dist: click==8.0.4; extra == "dev"
Requires-Dist: codacy-coverage==1.3.11; extra == "dev"
Requires-Dist: colorama==0.4.4; extra == "dev"
Requires-Dist: coverage[toml]==6.2; extra == "dev"
Requires-Dist: dill==0.3.4; extra == "dev"
Requires-Dist: distlib==0.3.4; extra == "dev"
Requires-Dist: docutils==0.17.1; extra == "dev"
Requires-Dist: execnet==1.9.0; extra == "dev"
Requires-Dist: filelock==3.4.1; extra == "dev"
Requires-Dist: gitdb==4.0.9; extra == "dev"
Requires-Dist: gitpython==3.1.18; extra == "dev"
Requires-Dist: identify==2.4.4; extra == "dev"
Requires-Dist: idna==3.3; extra == "dev"
Requires-Dist: imagesize==1.3.0; extra == "dev"
Requires-Dist: importlib-metadata==4.8.3; extra == "dev"
Requires-Dist: iniconfig==1.1.1; extra == "dev"
Requires-Dist: isort==5.10.1; extra == "dev"
Requires-Dist: jinja2==3.0.3; extra == "dev"
Requires-Dist: jmespath==0.10.0; extra == "dev"
Requires-Dist: keyring==23.4.1; extra == "dev"
Requires-Dist: lazy-object-proxy==1.7.1; extra == "dev"
Requires-Dist: markupsafe==2.0.1; extra == "dev"
Requires-Dist: mccabe==0.7.0; extra == "dev"
Requires-Dist: multidict==5.2.0; extra == "dev"
Requires-Dist: mypy==0.942; extra == "dev"
Requires-Dist: mypy-extensions==0.4.3; extra == "dev"
Requires-Dist: nodeenv==1.6.0; extra == "dev"
Requires-Dist: packaging==21.3; extra == "dev"
Requires-Dist: pathspec==0.9.0; extra == "dev"
Requires-Dist: pep517==0.12.0; extra == "dev"
Requires-Dist: pip-tools==6.4.0; extra == "dev"
Requires-Dist: pkginfo==1.8.2; extra == "dev"
Requires-Dist: platformdirs==2.4.0; extra == "dev"
Requires-Dist: pluggy==1.0.0; extra == "dev"
Requires-Dist: pre-commit==2.17.0; extra == "dev"
Requires-Dist: py==1.11.0; extra == "dev"
Requires-Dist: pygments==2.11.2; extra == "dev"
Requires-Dist: pylint==2.13.2; extra == "dev"
Requires-Dist: pyparsing==3.0.7; extra == "dev"
Requires-Dist: pytest==6.2.5; extra == "dev"
Requires-Dist: pytest-cov==3.0.0; extra == "dev"
Requires-Dist: pytest-forked==1.4.0; extra == "dev"
Requires-Dist: pytest-runner==5.3.2; extra == "dev"
Requires-Dist: pytest-xdist==2.4.0; extra == "dev"
Requires-Dist: python-dateutil==2.8.2; extra == "dev"
Requires-Dist: pytz==2022.1; extra == "dev"
Requires-Dist: pyyaml==6.0; extra == "dev"
Requires-Dist: readme-renderer==34.0; extra == "dev"
Requires-Dist: requests==2.27.1; extra == "dev"
Requires-Dist: requests-toolbelt==0.9.1; extra == "dev"
Requires-Dist: rfc3986==1.5.0; extra == "dev"
Requires-Dist: s3transfer==0.5.2; extra == "dev"
Requires-Dist: six==1.16.0; extra == "dev"
Requires-Dist: smmap==5.0.0; extra == "dev"
Requires-Dist: snowballstemmer==2.2.0; extra == "dev"
Requires-Dist: sphinx==4.3.2; extra == "dev"
Requires-Dist: sphinxcontrib-applehelp==1.0.2; extra == "dev"
Requires-Dist: sphinxcontrib-devhelp==1.0.2; extra == "dev"
Requires-Dist: sphinxcontrib-htmlhelp==2.0.0; extra == "dev"
Requires-Dist: sphinxcontrib-jsmath==1.0.1; extra == "dev"
Requires-Dist: sphinxcontrib-qthelp==1.0.3; extra == "dev"
Requires-Dist: sphinxcontrib-serializinghtml==1.1.5; extra == "dev"
Requires-Dist: sqlalchemy-stubs==0.4; extra == "dev"
Requires-Dist: toml==0.10.2; extra == "dev"
Requires-Dist: tomli==1.2.3; extra == "dev"
Requires-Dist: tqdm==4.63.1; extra == "dev"
Requires-Dist: twine==3.6.0; extra == "dev"
Requires-Dist: typing-extensions==4.1.1; extra == "dev"
Requires-Dist: urllib3==1.26.9; extra == "dev"
Requires-Dist: vcrpy==4.1.1; extra == "dev"
Requires-Dist: virtualenv==20.14.0; extra == "dev"
Requires-Dist: webencodings==0.5.1; extra == "dev"
Requires-Dist: wheel==0.37.1; extra == "dev"
Requires-Dist: wrapt==1.14.0; extra == "dev"
Requires-Dist: yarl==1.7.2; extra == "dev"
Requires-Dist: zipp==3.6.0; extra == "dev"
Dynamic: author
Dynamic: author-email
Dynamic: classifier
Dynamic: description
Dynamic: description-content-type
Dynamic: home-page
Dynamic: license
Dynamic: license-file
Dynamic: project-url
Dynamic: provides-extra
Dynamic: requires-dist
Dynamic: requires-python
Dynamic: summary

FlexGet
=======
.. image:: https://github.com/Flexget/Flexget/actions/workflows/main.yml/badge.svg?branch=develop
    :target: https://github.com/Flexget/Flexget/actions/workflows/main.yml?query=branch%3Adevelop

.. image:: https://img.shields.io/pypi/v/Flexget.svg
    :target: https://pypi.python.org/pypi/Flexget
    
..
    Commenting these out for now, as they seem to be broken.
    .. image:: https://api.codacy.com/project/badge/Grade/86bb847efe984c12948bdeccabcbccad
        :target: https://www.codacy.com/app/Flexget/Flexget?utm_source=github.com&amp;utm_medium=referral&amp;utm_content=Flexget/Flexget&amp;utm_campaign=Badge_Grade

    .. image:: https://api.codacy.com/project/badge/Coverage/86bb847efe984c12948bdeccabcbccad
        :target: https://www.codacy.com/app/Flexget/Flexget?utm_source=github.com&amp;utm_medium=referral&amp;utm_content=Flexget/Flexget&amp;utm_campaign=Badge_Coverage


.. image:: https://img.shields.io/discord/536690097056120833?label=discord
    :target: https://discord.gg/W6CQrJx

.. image:: http://isitmaintained.com/badge/resolution/Flexget/Flexget.svg
    :target: http://isitmaintained.com/project/Flexget/Flexget

`FlexGet`_ is a multipurpose automation tool for content like torrents, nzbs,
podcasts, comics, series, movies, etc. It can use different kinds of sources
like RSS-feeds, html pages, csv files, search engines and there are even
plugins for sites that do not provide any kind of useful feeds.

Example
=======
Flexget uses a `YAML`_ based configuration file.
The following example will look in the RSS feed in the link, will match any item that match the series names and download it::

    tasks:
      tv_task:
        rss: http://example.com/torrents.xml
        series:
        - some series
        - another series
        download: /tvshows

There are numerous plugins that allow utilizing FlexGet in interesting ways
and more are being added continuously.

FlexGet is extremely useful in conjunction with applications which have watch
directory support or provide interface for external utilities like FlexGet.
To get a sense of the many things that can be done with FlexGet you can take a look in our `cookbook`_.

.. _FlexGet: https://flexget.com

.. _YAML: http://www.yaml.org/

.. _cookbook: https://flexget.com/Cookbook


**ChangeLog:** https://flexget.com/ChangeLog

**Help:** https://discuss.flexget.com/

**Chat:** https://flexget.com/Chat

**Bugs:** https://github.com/Flexget/Flexget/issues

Install
-------

FlexGet is installable via pip with the command::

    pip install flexget

For more detailed instructions see the `installation guide`_.

.. _installation guide: https://flexget.com/Install

How to use GIT checkout
-----------------------

Check that you have Python 3.6 or newer available with command ``python -V``.

In some environments newer python might be available under another name like
'python3.6' or 'python3' in which case you need to use that one instead of
plain 'python'.

To start using FlexGet from this directory::

    python3 -m venv .

This will initialize python virtualenv. This doesn't need to be directly in
your checkout directory, but these instructions assume that's where it is.

On some linux distributions (eg. debian, ubuntu) venv module is not included with
python and this fails. Please install `python3-virtualenv` package and retry
(or use the separate `virtualenv`_ python package).

.. _virtualenv: https://pypi.python.org/pypi/virtualenv

Upgrading pip and setuptools to latest version is highly advisable if not mandatory
for working installation and can de done with::

    bin/pip install --upgrade pip setuptools

Next we need to install dependencies and FlexGet itself, this can be done simply::

    bin/pip install -e .

This does an editable (`-e`) development install of the current directory (`.`).

After that FlexGet is usable via ``<checkout directory>/bin/flexget``. Verify
installation by running::

    bin/flexget -V

You may place the config file in your checkout directory, or in ``~/.flexget``
(Unix, Mac OS X) or ``C:\Documents and Setting\<username>\flexget`` (Windows).

If you don't want to use virtualenv there's ``flexget_vanilla.py`` file which
can be used to run FlexGet without virtualenv, note that you will need to
install all required dependencies yourself.
