Skip to content

IMDb login fails #1321

@Nemesis7

Description

@Nemesis7

Expected behaviour:

imdb_list plugin logins in successfully with the logged in credentials.

Actual behaviour:

Login fails.

Steps to reproduce:

  • Step 1: excute configuration

Config:

tasks:
  testtask:
    rss: <feed>
    imdb_lookup: yes
    list_match:
      from:
        - imdb_list:
            login: <username>
            password: <password
            list: watchlist
    download: <dir>

Log:

2016-08-08 20:26 VERBOSE utils.requests testtask Waiting 3.83 seconds until next request to imdb.com
2016-08-08 20:26 VERBOSE utils.requests testtask Waiting 4.66 seconds until next request to imdb.com
2016-08-08 20:26 CRITICAL plugin testtask Login to IMDB failed. Check your credentials.
2016-08-08 20:26 WARNING task testtask Aborting task (plugin: list_match)

Additional information:

liiight advies to raise a ticket. Test was done by Krozer.

  • Flexget Version: 2.2.13
  • Python Version: 2.7.11
  • Installation method: pip
  • OS and version: Mac OS X 10.11.6
  • Link to crash log:

Test done by Krozer:

import re
import pprint

from flexget.utils.requests import Session as RequestSession, TimedLimiter
from requests.exceptions import RequestException
from flexget.utils.soup import get_soup
from flexget.plugin import PluginError


pp = pprint.PrettyPrinter(indent=4)
_session = RequestSession()
_session.add_domain_limiter(TimedLimiter('imdb.com', '5 seconds'))
_session.headers = {'Accept-Language': 'en-us'}

try:
    r = _session.get(
        'https://www.imdb.com/ap/signin?openid.return_to=https%3A%2F%2Fwww.imdb.com%2Fap-signin-'
        'handler&openid.identity=http%3A%2F%2Fspecs.openid.net%2Fauth%2F2.0%2Fidentifier_select&'
        'openid.assoc_handle=imdb_mobile_us&openid.mode=checkid_setup&openid.claimed_id=http%3A%'
        '2F%2Fspecs.openid.net%2Fauth%2F2.0%2Fidentifier_select&openid.ns=http%3A%2F%2Fspecs.ope'
        'nid.net%2Fauth%2F2.0')
except RequestException as e:
    raise PluginError(e.args[0])

soup = get_soup(r.content)
inputs = soup.select('form#ap_signin_form input')
data = dict((i['name'], i.get('value')) for i in inputs if i.get('name'))
action = soup.find('form', id='ap_signin_form').get('action')
pp.pprint(action)


data['email'] = <email>
data['password'] = <password>
print('email=%s, password=%s', data['email'], data['password'])


d = _session.post(action, data=data)
# Get user id by extracting from redirect url
r = _session.head('http://www.imdb.com/profile', allow_redirects=False)
pp.pprint(r.headers)
if not r.headers.get('location') or 'login' in r.headers['location']:
    raise PluginError('Login to IMDB failed. Check your credentials.')
user_id = re.search('ur\d+(?!\d)', r.headers['location']).group()
cookies = dict(d.cookies)

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions