moogar0880 / PyTrakt

A Pythonic interface to the Trakt.tv REST API
Other
66 stars 51 forks source link

Base URL fails to resolve #216

Open wfriesen opened 9 months ago

wfriesen commented 9 months ago

The URL used by this project, that has been deprecated for some time, is now officially retired. When attempting to use this project now, an error like the following occurs

urllib3.exceptions.MaxRetryError: HTTPSConnectionPool(host='api-v2launch.trakt.tv', port=443): Max retries exceeded with url: /users/xxxxxxx (Caused by NameResolutionError("<urllib3.connection.HTTPSConnection object at 0x7f83207ae110>: Failed to resolve 'api-v2launch.trakt.tv' ([Errno -2] Name does not resolve)"))

This project seems to be abandoned, so there are two options.

Monkey patch anything importing this project by updating the base url with this:

trakt.core.BASE_URL = "https://api.trakt.tv/"

Or, switch to this fork: https://github.com/glensc/python-pytrakt Being an active fork, development has naturally moved on, so it is not a drop-in replacement, but for my uses there wasn't much to change.

glensc commented 9 months ago

The repo owner has ghosted this repo:

and it is drop in replacement. you maybe want to submit a pull request there with instructions how to switch.

wfriesen commented 9 months ago

Something has changed to do with the TVSeason object

~/pytrakt $ cat dropin.py
from trakt.users import User
import trakt

trakt.core.BASE_URL = "https://api.trakt.tv/"

trakt.core.AUTH_METHOD = trakt.core.OAUTH_AUTH

user = User("xxxxxxxx")
print(user.watched_shows[0].seasons[0]["episodes"])
 ~/pytrakt $ python -m venv venv
 ~/pytrakt $ source ./venv/bin/activate
 venv $ ~/pytrakt $ pip install trakt
Collecting trakt
  Using cached trakt-3.4.0-py3-none-any.whl (37 kB)
Collecting requests>=2.25 (from trakt)
  Obtaining dependency information for requests>=2.25 from https://files.pythonhosted.org/packages/70/8e/0e2d847013cb52cd35b38c009bb167a1a26b2ce6cd6965bf26b47bc0bf44/requests-2.31.0-py3-none-any.whl.metadata
  Using cached requests-2.31.0-py3-none-any.whl.metadata (4.6 kB)
Collecting requests-oauthlib>=1.3 (from trakt)
  Using cached requests_oauthlib-1.3.1-py2.py3-none-any.whl (23 kB)
Collecting charset-normalizer<4,>=2 (from requests>=2.25->trakt)
  Obtaining dependency information for charset-normalizer<4,>=2 from https://files.pythonhosted.org/packages/40/26/f35951c45070edc957ba40a5b1db3cf60a9dbb1b350c2d5bef03e01e61de/charset_normalizer-3.3.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata
  Using cached charset_normalizer-3.3.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata (33 kB)
Collecting idna<4,>=2.5 (from requests>=2.25->trakt)
  Obtaining dependency information for idna<4,>=2.5 from https://files.pythonhosted.org/packages/c2/e7/a82b05cf63a603df6e68d59ae6a68bf5064484a0718ea5033660af4b54a9/idna-3.6-py3-none-any.whl.metadata
  Using cached idna-3.6-py3-none-any.whl.metadata (9.9 kB)
Collecting urllib3<3,>=1.21.1 (from requests>=2.25->trakt)
  Obtaining dependency information for urllib3<3,>=1.21.1 from https://files.pythonhosted.org/packages/88/75/311454fd3317aefe18415f04568edc20218453b709c63c58b9292c71be17/urllib3-2.2.0-py3-none-any.whl.metadata
  Using cached urllib3-2.2.0-py3-none-any.whl.metadata (6.4 kB)
Collecting certifi>=2017.4.17 (from requests>=2.25->trakt)
  Obtaining dependency information for certifi>=2017.4.17 from https://files.pythonhosted.org/packages/ba/06/a07f096c664aeb9f01624f858c3add0a4e913d6c96257acb4fce61e7de14/certifi-2024.2.2-py3-none-any.whl.metadata
  Using cached certifi-2024.2.2-py3-none-any.whl.metadata (2.2 kB)
Collecting oauthlib>=3.0.0 (from requests-oauthlib>=1.3->trakt)
  Using cached oauthlib-3.2.2-py3-none-any.whl (151 kB)
Using cached requests-2.31.0-py3-none-any.whl (62 kB)
Using cached certifi-2024.2.2-py3-none-any.whl (163 kB)
Using cached charset_normalizer-3.3.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (140 kB)
Using cached idna-3.6-py3-none-any.whl (61 kB)
Using cached urllib3-2.2.0-py3-none-any.whl (120 kB)
Installing collected packages: urllib3, oauthlib, idna, charset-normalizer, certifi, requests, requests-oauthlib, trakt
Successfully installed certifi-2024.2.2 charset-normalizer-3.3.2 idna-3.6 oauthlib-3.2.2 requests-2.31.0 requests-oauthlib-1.3.1 trakt-3.4.0 urllib3-2.2.0

[notice] A new release of pip is available: 23.2.1 -> 24.0
[notice] To update, run: pip install --upgrade pip
 venv $ ~/pytrakt $ python dropin.py
[{'number': 1, 'plays': 1, 'last_watched_at': '2024-02-07T09:23:02.000Z'}, {'number': 2, 'plays': 1, 'last_watched_at': '2024-02-08T09:44:52.000Z'}, {'number': 3, 'plays': 1, 'last_watched_at': '2024-02-09T07:13:37.000Z'}]
 venv $ ~/pytrakt $ deactivate
 ~/pytrakt $ rm -rf venv
 ~/pytrakt $ python -m venv venv
 ~/pytrakt $ source ./venv/bin/activate
 venv $ ~/pytrakt $ pip install pytrakt
Collecting pytrakt
  Obtaining dependency information for pytrakt from https://files.pythonhosted.org/packages/6d/84/84feebf670032535aa5ece2fb49e6b5c3bc021760cec07460bf4092f7c58/pytrakt-3.4.29-py3-none-any.whl.metadata
  Using cached pytrakt-3.4.29-py3-none-any.whl.metadata (13 kB)
Collecting deprecated~=1.2.13 (from pytrakt)
  Obtaining dependency information for deprecated~=1.2.13 from https://files.pythonhosted.org/packages/20/8d/778b7d51b981a96554f29136cd59ca7880bf58094338085bcf2a979a0e6a/Deprecated-1.2.14-py2.py3-none-any.whl.metadata
  Using cached Deprecated-1.2.14-py2.py3-none-any.whl.metadata (5.4 kB)
Collecting requests-oauthlib>=1.3 (from pytrakt)
  Using cached requests_oauthlib-1.3.1-py2.py3-none-any.whl (23 kB)
Collecting requests>=2.25 (from pytrakt)
  Obtaining dependency information for requests>=2.25 from https://files.pythonhosted.org/packages/70/8e/0e2d847013cb52cd35b38c009bb167a1a26b2ce6cd6965bf26b47bc0bf44/requests-2.31.0-py3-none-any.whl.metadata
  Using cached requests-2.31.0-py3-none-any.whl.metadata (4.6 kB)
Collecting wrapt<2,>=1.10 (from deprecated~=1.2.13->pytrakt)
  Obtaining dependency information for wrapt<2,>=1.10 from https://files.pythonhosted.org/packages/6e/52/2da48b35193e39ac53cfb141467d9f259851522d0e8c87153f0ba4205fb1/wrapt-1.16.0-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata
  Using cached wrapt-1.16.0-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata (6.6 kB)
Collecting charset-normalizer<4,>=2 (from requests>=2.25->pytrakt)
  Obtaining dependency information for charset-normalizer<4,>=2 from https://files.pythonhosted.org/packages/40/26/f35951c45070edc957ba40a5b1db3cf60a9dbb1b350c2d5bef03e01e61de/charset_normalizer-3.3.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata
  Using cached charset_normalizer-3.3.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata (33 kB)
Collecting idna<4,>=2.5 (from requests>=2.25->pytrakt)
  Obtaining dependency information for idna<4,>=2.5 from https://files.pythonhosted.org/packages/c2/e7/a82b05cf63a603df6e68d59ae6a68bf5064484a0718ea5033660af4b54a9/idna-3.6-py3-none-any.whl.metadata
  Using cached idna-3.6-py3-none-any.whl.metadata (9.9 kB)
Collecting urllib3<3,>=1.21.1 (from requests>=2.25->pytrakt)
  Obtaining dependency information for urllib3<3,>=1.21.1 from https://files.pythonhosted.org/packages/88/75/311454fd3317aefe18415f04568edc20218453b709c63c58b9292c71be17/urllib3-2.2.0-py3-none-any.whl.metadata
  Using cached urllib3-2.2.0-py3-none-any.whl.metadata (6.4 kB)
Collecting certifi>=2017.4.17 (from requests>=2.25->pytrakt)
  Obtaining dependency information for certifi>=2017.4.17 from https://files.pythonhosted.org/packages/ba/06/a07f096c664aeb9f01624f858c3add0a4e913d6c96257acb4fce61e7de14/certifi-2024.2.2-py3-none-any.whl.metadata
  Using cached certifi-2024.2.2-py3-none-any.whl.metadata (2.2 kB)
Collecting oauthlib>=3.0.0 (from requests-oauthlib>=1.3->pytrakt)
  Using cached oauthlib-3.2.2-py3-none-any.whl (151 kB)
Using cached pytrakt-3.4.29-py3-none-any.whl (39 kB)
Using cached Deprecated-1.2.14-py2.py3-none-any.whl (9.6 kB)
Using cached requests-2.31.0-py3-none-any.whl (62 kB)
Using cached certifi-2024.2.2-py3-none-any.whl (163 kB)
Using cached charset_normalizer-3.3.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (140 kB)
Using cached idna-3.6-py3-none-any.whl (61 kB)
Using cached urllib3-2.2.0-py3-none-any.whl (120 kB)
Using cached wrapt-1.16.0-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl (80 kB)
Installing collected packages: wrapt, urllib3, oauthlib, idna, charset-normalizer, certifi, requests, deprecated, requests-oauthlib, pytrakt
Successfully installed certifi-2024.2.2 charset-normalizer-3.3.2 deprecated-1.2.14 idna-3.6 oauthlib-3.2.2 pytrakt-3.4.29 requests-2.31.0 requests-oauthlib-1.3.1 urllib3-2.2.0 wrapt-1.16.0

[notice] A new release of pip is available: 23.2.1 -> 24.0
[notice] To update, run: pip install --upgrade pip
 venv $ ~/pytrakt $ python dropin.py
Traceback (most recent call last):
  File "/home/william/pytrakt/dropin.py", line 9, in <module>
    print(user.watched_shows[0].seasons[0]["episodes"])
          ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^
TypeError: 'TVSeason' object is not subscriptable