Downloads in the 30 and 7 days to October 10, 2026. Refreshed weekly.
Package Information
No reported malware or high/critical advisories · Details
The current version has no OSV.dev malware reports and no critical or high-severity vulnerabilities.
Package Insights
((week_daily_avg - month_daily_avg) / month_daily_avg) * 100More insights and metrics
Downloads by OS
Python Versions
Top Countries
Weekly Downloads
GitHub Stars *
Dependencies
- apscheduler ~=3.11
- beautifulsoup4 ~=4.12
- cherrypy ~=18.10
- cryptography ~=50.0
-
curl-cffi
~=0.16
platform_system in "Linux Darwin Windows"
- feedparser ~=6.0
- flask ~=3.1
- flask-compress ~=1.17
- flask-cors ~=6.0
- flask-login ~=0.6.3
- flask-restx ~=1.3
- guessit ~=4.2.1
- html5lib ~=1.1
- jinja2 ~=3.1
- jsonschema ~=4.23
- loguru ~=0.7.3
- packaging ~=26.0
- pendulum ~=3.0
- psutil ~=7.0
- pynzb ~=0.1.0
- pyparsing ~=3.2
- pyrss2gen ~=1.1
- python-dateutil ~=2.9
- pyyaml ~=6.0
- rebulk ~=6.0
- requests ~=2.32
- rich ~=15.0
- rpyc ~=6.0
- sqlalchemy ~=2.0
-
typing-extensions
>=4.16
python_version <= "3.12"
- werkzeug ~=3.1
- zxcvbn ~=4.4
273 optional dependencies
-
aiofiles==25.1.0[all]extra == "all"
-
aiofiles==25.1.0[matrix]extra == "matrix"
-
aiohappyeyeballs==2.7.1[all]extra == "all"
-
aiohappyeyeballs==2.7.1[matrix]extra == "matrix"
-
aiohttp==3.14.3[matrix]extra == "matrix"
-
aiohttp==3.14.3[all]extra == "all"
-
aiohttp-socks==0.12.0[matrix]extra == "matrix"
-
aiohttp-socks==0.12.0[all]extra == "all"
-
aiosignal==1.4.0[matrix]extra == "matrix"
-
aiosignal==1.4.0[all]extra == "all"
-
aniso8601==10.0.1[locked]extra == "locked"
-
annotated-doc==0.0.5[locked]extra == "locked"
-
anyio==4.15.1[telegram]extra == "telegram"
-
anyio==4.15.1[all]extra == "all"
-
apscheduler==3.11.3[locked]extra == "locked"
-
attrs==26.1.0[all]extra == "all"
-
attrs==26.1.0[locked]extra == "locked"
-
attrs==26.1.0[matrix]extra == "matrix"
-
babelfish==0.6.1[locked]extra == "locked"
-
babelfish==0.6.1[all]extra == "all"
-
babelfish==0.6.1[subliminal]extra == "subliminal"
-
backports-tarfile==1.2.0[locked]python_full_version < "3.12" and extra == "locked"
-
backports-zstd==1.7.0[locked]python_full_version < "3.14" and extra == "locked"
-
bcrypt==5.0.0[all]extra == "all"
-
bcrypt==5.0.0[sftp]extra == "sftp"
-
beautifulsoup4==4.15.0[subliminal]extra == "subliminal"
-
beautifulsoup4==4.15.0[all]extra == "all"
-
beautifulsoup4==4.15.0[locked]extra == "locked"
-
blinker==1.9.0[locked]extra == "locked"
-
boto3==1.43.98[all]extra == "all"
-
boto3==1.43.98[boto3]extra == "boto3"
-
botocore==1.43.98[all]extra == "all"
-
botocore==1.43.98[boto3]extra == "boto3"
-
brotli==1.2.0[locked]platform_python_implementation != "PyPy" and extra == "locked"
-
brotlicffi==1.2.0.2[locked]platform_python_implementation == "PyPy" and extra == "locked"
-
certifi==2026.7.22[transmission]extra == "transmission"
-
certifi==2026.7.22[telegram]extra == "telegram"
-
certifi==2026.7.22[subliminal]extra == "subliminal"
-
certifi==2026.7.22[qbittorrent]extra == "qbittorrent"
-
certifi==2026.7.22[plexapi]extra == "plexapi"
-
certifi==2026.7.22[locked]extra == "locked"
-
certifi==2026.7.22[all]extra == "all"
-
cffi==2.1.1[sftp]platform_python_implementation != "PyPy" and extra == "sftp"
-
cffi==2.1.1[locked]extra == "locked"
-
cffi==2.1.1[all]platform_python_implementation != "PyPy" and extra == "all"
-
chardet==7.6.0[subliminal]extra == "subliminal"
-
chardet==7.6.0[all]extra == "all"
-
charset-normalizer==3.5.1[all]extra == "all"
-
charset-normalizer==3.5.1[subliminal]extra == "subliminal"
-
charset-normalizer==3.5.1[transmission]extra == "transmission"
-
charset-normalizer==3.5.1[plexapi]extra == "plexapi"
-
charset-normalizer==3.5.1[locked]extra == "locked"
-
charset-normalizer==3.5.1[qbittorrent]extra == "qbittorrent"
-
cheroot==11.1.2[locked]extra == "locked"
-
cherrypy==18.10.0[locked]extra == "locked"
-
click==8.5.0[subliminal]extra == "subliminal"
-
click==8.5.0[all]extra == "all"
-
click==8.5.0[locked]extra == "locked"
-
click-option-group==0.5.9[subliminal]extra == "subliminal"
-
click-option-group==0.5.9[all]extra == "all"
-
colorama==0.4.6[locked]sys_platform == "win32" and extra == "locked"
-
coverage==7.16.1[locked]extra == "locked"
-
cryptography==50.0.1[locked]extra == "locked"
-
cryptography==50.0.1[all]extra == "all"
-
cryptography==50.0.1[sftp]extra == "sftp"
-
curl-cffi==0.16.3[locked]platform_system in "Linux Darwin Windows" and extra == "locked"
-
decorator==5.3.1[subliminal]extra == "subliminal"
-
decorator==5.3.1[all]extra == "all"
-
defusedxml==0.7.1[all]extra == "all"
-
defusedxml==0.7.1[subliminal]extra == "subliminal"
-
deluge-client==1.10.2[all]extra == "all"
-
deluge-client==1.10.2[deluge]extra == "deluge"
-
dogpile-cache==1.5.0[subliminal]extra == "subliminal"
-
dogpile-cache==1.5.0[all]extra == "all"
-
enzyme==0.5.2[subliminal]extra == "subliminal"
-
enzyme==0.5.2[all]extra == "all"
-
execnet==2.1.2[locked]extra == "locked"
-
feedparser==6.0.14[locked]extra == "locked"
-
feedparser-sgmllib==2.1.0[locked]extra == "locked"
-
flask==3.1.3[locked]extra == "locked"
-
flask-compress==1.25[locked]extra == "locked"
-
flask-cors==6.0.5[locked]extra == "locked"
-
flask-login==0.6.3[locked]extra == "locked"
-
flask-restx==1.3.2[locked]extra == "locked"
-
frozenlist==1.8.0[all]extra == "all"
-
frozenlist==1.8.0[matrix]extra == "matrix"
-
ftputil==5.2.0[all]extra == "all"
-
ftputil==5.2.0[ftp]extra == "ftp"
-
greenlet==3.5.6[locked](platform_machine == "AMD64" or platform_machine == "WIN32" or platform_machine == "aarch64" or platform_machine == "amd64" or platform_machine == "ppc64le" or platform_machine == "win32" or platform_machine == "x86_64") and extra == "locked"
-
guessit==4.2.1[subliminal]extra == "subliminal"
-
guessit==4.2.1[all]extra == "all"
-
guessit==4.2.1[locked]extra == "locked"
-
h11==0.16.0[matrix]extra == "matrix"
-
h11==0.16.0[all]extra == "all"
-
h11==0.16.0[telegram]extra == "telegram"
-
h2==4.4.1[all]extra == "all"
-
h2==4.4.1[telegram]extra == "telegram"
-
h2==4.4.1[matrix]extra == "matrix"
-
hpack==4.2.0[telegram]extra == "telegram"
-
hpack==4.2.0[all]extra == "all"
-
hpack==4.2.0[matrix]extra == "matrix"
-
html5lib==1.1[locked]extra == "locked"
-
httpcore==1.0.9[telegram]extra == "telegram"
-
httpcore==1.0.9[all]extra == "all"
-
httpx==0.28.1[telegram]extra == "telegram"
-
httpx==0.28.1[all]extra == "all"
-
hyperframe==6.1.0[matrix]extra == "matrix"
-
hyperframe==6.1.0[telegram]extra == "telegram"
-
hyperframe==6.1.0[all]extra == "all"
-
idna==3.20[matrix]extra == "matrix"
-
idna==3.20[plexapi]extra == "plexapi"
-
idna==3.20[qbittorrent]extra == "qbittorrent"
-
idna==3.20[subliminal]extra == "subliminal"
-
idna==3.20[transmission]extra == "transmission"
-
idna==3.20[telegram]extra == "telegram"
-
idna==3.20[all]extra == "all"
-
idna==3.20[locked]extra == "locked"
-
importlib-resources==7.1.0[locked]extra == "locked"
-
iniconfig==2.3.0[locked]extra == "locked"
-
itsdangerous==2.2.0[locked]extra == "locked"
-
jaraco-collections==5.2.1[locked]extra == "locked"
-
jaraco-context==6.1.2[locked]extra == "locked"
-
jaraco-functools==4.6.0[locked]extra == "locked"
-
jaraco-text==4.3.0[locked]extra == "locked"
-
jinja2==3.1.6[locked]extra == "locked"
-
jmespath==1.1.0[all]extra == "all"
-
jmespath==1.1.0[boto3]extra == "boto3"
-
jsonschema==4.26.0[locked]extra == "locked"
-
jsonschema==4.26.0[all]extra == "all"
-
jsonschema==4.26.0[matrix]extra == "matrix"
-
jsonschema-specifications==2025.9.1[matrix]extra == "matrix"
-
jsonschema-specifications==2025.9.1[locked]extra == "locked"
-
jsonschema-specifications==2025.9.1[all]extra == "all"
-
knowit==0.7.0[subliminal]extra == "subliminal"
-
knowit==0.7.0[all]extra == "all"
-
libtorrent==2.1.1[libtorrent]extra == "libtorrent"
-
libtorrent==2.1.1[all]python_full_version < "3.14" and extra == "all"
-
loguru==0.7.3[locked]extra == "locked"
-
markdown-it-py==4.2.0[locked]extra == "locked"
-
markupsafe==3.0.3[locked]extra == "locked"
-
matrix-nio==0.26.0[matrix]extra == "matrix"
-
matrix-nio==0.26.0[all]extra == "all"
-
mdurl==0.1.2[locked]extra == "locked"
-
more-itertools==11.1.0[locked]extra == "locked"
-
multidict==6.9.0[matrix]extra == "matrix"
-
multidict==6.9.0[all]extra == "all"
-
packaging==26.3[locked]extra == "locked"
-
packaging==26.3[qbittorrent]extra == "qbittorrent"
-
packaging==26.3[all]extra == "all"
-
paramiko==3.5.1[all]extra == "all"
-
paramiko==3.5.1[sftp]extra == "sftp"
-
pendulum==3.2.0[locked]extra == "locked"
-
platformdirs==4.11.11[subliminal]extra == "subliminal"
-
platformdirs==4.11.11[all]extra == "all"
-
plexapi==4.18.2[plexapi]extra == "plexapi"
-
plexapi==4.18.2[all]extra == "all"
-
pluggy==1.6.0[locked]extra == "locked"
-
plumbum==2.0.2[locked]extra == "locked"
-
portend==3.2.1[locked]extra == "locked"
-
prek==0.4.14[locked]extra == "locked"
-
propcache==0.5.4[all]extra == "all"
-
propcache==0.5.4[matrix]extra == "matrix"
-
psutil==7.2.2[locked]extra == "locked"
-
pycparser==3.0[sftp](implementation_name != "PyPy" and platform_python_implementation != "PyPy") and extra == "sftp"
-
pycparser==3.0[all](implementation_name != "PyPy" and platform_python_implementation != "PyPy") and extra == "all"
-
pycparser==3.0[locked]implementation_name != "PyPy" and extra == "locked"
-
pycryptodome==3.23.0[matrix]extra == "matrix"
-
pycryptodome==3.23.0[all]extra == "all"
-
pygments==2.21.0[locked]extra == "locked"
-
pymediainfo==7.0.1[subliminal]extra == "subliminal"
-
pymediainfo==7.0.1[all]extra == "all"
-
pynacl==1.6.2[all]extra == "all"
-
pynacl==1.6.2[sftp]extra == "sftp"
-
pynzb==0.1.0[locked]extra == "locked"
-
pyparsing==3.3.3[locked]extra == "locked"
-
pyrss2gen==1.1[locked]extra == "locked"
-
pysftp==0.2.9[all]extra == "all"
-
pysftp==0.2.9[sftp]extra == "sftp"
-
pysubs2==1.8.1[all]python_full_version < "3.12" and extra == "all"
-
pysubs2==1.8.1[subliminal]python_full_version < "3.12" and extra == "subliminal"
-
pytest==9.1.1[locked]extra == "locked"
-
pytest-cov==7.1.0[locked]extra == "locked"
-
pytest-socket==0.8.1[locked]extra == "locked"
-
pytest-xdist==3.8.0[locked]extra == "locked"
-
python-dateutil==2.9.0.post0[all]extra == "all"
-
python-dateutil==2.9.0.post0[boto3]extra == "boto3"
-
python-dateutil==2.9.0.post0[locked]extra == "locked"
-
python-dateutil==2.9.0.post0[subliminal]extra == "subliminal"
-
python-socks==3.1.1[matrix]extra == "matrix"
-
python-socks==3.1.1[all]extra == "all"
-
python-telegram-bot==22.8[all]extra == "all"
-
python-telegram-bot==22.8[telegram]extra == "telegram"
-
pyyaml==6.0.3[subliminal]extra == "subliminal"
-
pyyaml==6.0.3[all]extra == "all"
-
pyyaml==6.0.3[locked]extra == "locked"
-
qbittorrent-api==2026.8.1[qbittorrent]extra == "qbittorrent"
-
qbittorrent-api==2026.8.1[all]extra == "all"
-
rarfile==4.5[all]extra == "all"
-
rarfile==4.5[rarfile]extra == "rarfile"
-
rebulk==6.0.1[subliminal]extra == "subliminal"
-
rebulk==6.0.1[all]extra == "all"
-
rebulk==6.0.1[locked]extra == "locked"
-
referencing==0.37.0[locked]extra == "locked"
-
referencing==0.37.0[matrix]extra == "matrix"
-
referencing==0.37.0[all]extra == "all"
-
requests==2.34.2[all]extra == "all"
-
requests==2.34.2[subliminal]extra == "subliminal"
-
requests==2.34.2[qbittorrent]extra == "qbittorrent"
-
requests==2.34.2[plexapi]extra == "plexapi"
-
requests==2.34.2[transmission]extra == "transmission"
-
requests==2.34.2[locked]extra == "locked"
-
rich==15.0.0[locked]extra == "locked"
-
rpds-py==2026.6.3[all]extra == "all"
-
rpds-py==2026.6.3[locked]extra == "locked"
-
rpds-py==2026.6.3[matrix]extra == "matrix"
-
rpyc==6.0.2[locked]extra == "locked"
-
ruff==0.16.10[locked]extra == "locked"
-
s3transfer==0.19.2[all]extra == "all"
-
s3transfer==0.19.2[boto3]extra == "boto3"
-
setuptools==84.0.0[locked]extra == "locked"
-
shellingham==1.5.4[locked]extra == "locked"
-
six==1.17.0[locked]extra == "locked"
-
six==1.17.0[all]extra == "all"
-
six==1.17.0[boto3]extra == "boto3"
-
six==1.17.0[subliminal]extra == "subliminal"
-
socksio==1.0.0[all]extra == "all"
-
socksio==1.0.0[telegram]extra == "telegram"
-
soupsieve==2.9.2[locked]extra == "locked"
-
soupsieve==2.9.2[subliminal]extra == "subliminal"
-
soupsieve==2.9.2[all]extra == "all"
-
sqlalchemy==2.0.54[locked]extra == "locked"
-
srt==3.5.3[subliminal]extra == "subliminal"
-
srt==3.5.3[all]extra == "all"
-
stevedore==5.9.1[subliminal]extra == "subliminal"
-
stevedore==5.9.1[all]extra == "all"
-
subliminal==2.7.1[subliminal]extra == "subliminal"
-
subliminal==2.7.1[all]extra == "all"
-
tempora==5.12.0[locked]extra == "locked"
-
tomli==2.4.1[locked]python_full_version <= "3.11" and extra == "locked"
-
tomlkit==0.15.1[subliminal]extra == "subliminal"
-
tomlkit==0.15.1[all]extra == "all"
-
trakit==0.4.0[subliminal]extra == "subliminal"
-
trakit==0.4.0[all]extra == "all"
-
transmission-rpc==7.0.12[transmission]extra == "transmission"
-
transmission-rpc==7.0.12[all]extra == "all"
-
typer==0.27.2[locked]extra == "locked"
-
typer-slim==0.24.0[locked]extra == "locked"
-
typing-extensions==4.16.0[transmission]extra == "transmission"
-
typing-extensions==4.16.0[all]extra == "all"
-
typing-extensions==4.16.0[locked]extra == "locked"
-
typing-extensions==4.16.0[matrix]python_full_version < "3.13" and extra == "matrix"
-
typing-extensions==4.16.0[subliminal]extra == "subliminal"
-
typing-extensions==4.16.0[telegram]python_full_version < "3.15" and extra == "telegram"
-
tzdata==2026.4[locked]extra == "locked"
-
tzlocal==5.4.4[locked]extra == "locked"
-
unpaddedbase64==2.1.0[all]extra == "all"
-
unpaddedbase64==2.1.0[matrix]extra == "matrix"
-
urllib3==2.8.0[all]extra == "all"
-
urllib3==2.8.0[plexapi]extra == "plexapi"
-
urllib3==2.8.0[qbittorrent]extra == "qbittorrent"
-
urllib3==2.8.0[subliminal]extra == "subliminal"
-
urllib3==2.8.0[transmission]extra == "transmission"
-
urllib3==2.8.0[boto3]extra == "boto3"
-
urllib3==2.8.0[locked]extra == "locked"
-
vcrpy==8.3.0[locked]extra == "locked"
-
webencodings==0.6.1[locked]extra == "locked"
-
werkzeug==3.1.9[locked]extra == "locked"
-
win32-setctime==1.2.0[locked]sys_platform == "win32" and extra == "locked"
-
wrapt==2.4.1[locked]extra == "locked"
-
yarl==1.25.1[all]extra == "all"
-
yarl==1.25.1[matrix]extra == "matrix"
-
zc-lockfile==4.0[locked]extra == "locked"
-
zxcvbn==4.5.0[locked]extra == "locked"