dbr / tvnamer

Automatic TV episode file renamer, uses data from thetvdb.com via tvdb_api
https://pypi.python.org/pypi/tvnamer/
The Unlicense
909 stars 115 forks source link

Tvnamer broken - TheTVDB.com site updated #146

Closed Cyber5imon closed 6 years ago

Cyber5imon commented 6 years ago

As of May 1st, TheTVDB.com updated their site. Due to the updates tvnamer no longer works.

Here is the error generated: Traceback (most recent call last): File "/xxxxx/xxxx/xxxxxxxxxx/bin/tvnamer", line 9, in load_entry_point('tvnamer==2.3', 'console_scripts', 'tvnamer')() File "build/bdist.linux-x86_64/egg/tvnamer/main.py", line 458, in main File "build/bdist.linux-x86_64/egg/tvnamer/main.py", line 364, in tvnamer File "build/bdist.linux-x86_64/egg/tvnamer/main.py", line 176, in processFile File "build/bdist.linux-x86_64/egg/tvnamer/utils.py", line 640, in populateFromTvdb File "build/bdist.linux-x86_64/egg/tvdb_api.py", line 954, in getitem KeyError: 323855

confluence commented 6 years ago

Are you using an older version of tvnamer packaged for a distribution? See my comment on this tvdb_api issue. I had a different error, but essentially all API calls were failing. I fixed it by uninstalling the distro package and installing the latest version with pip.

Cyber5imon commented 6 years ago

Upgrading to 2.4 fixed it. I thought I was on the latest version, but your suggestion of pip quickly solved the issue. Thanks!

Fever1223 commented 6 years ago

I'm experiencing a similar problem.

Specifically, I call the episode overview from the TVDB database, thus:

#!/usr/bin/python   
# getoverview.py
import sys, tvdb_api   
t = tvdb_api.Tvdb()   
episode = t [str(sys.argv[1])] [float(sys.argv[2])] [float(sys.argv[3])]   
ov = episode['overview']   
print ov.encode('UTF-8')

For shows before May 1, typing getoverview.py Homeland 7 11, for example, returns "Saul's mission is a go. The clock ticks on the Keane administration.", as expected.

For shows that aired their first episodes after May 1, however, typing getoverview.py Sweetbitter 1 1 or getoverview.py "Cobra Kai" 1 6 returns errors:

Traceback (most recent call last):  
  File "/usr/local/bin/getoverview.py", line 9, in <module>
    print ov.encode('UTF-8')
AttributeError: 'NoneType' object has no attribute 'encode'

I have verified that the episode overview is present on the web page for both these examples.

I am using tvnamer 2.4, updated flexget to the current version, and both of these appear to link to tvdb.api(), so whatever error I am making is a subtle one (at least to me). Help would be appreciated.