[ap] improve adobe pass names and parse error handling
This commit is contained in:
parent
0002962f3f
commit
797c636bcb
|
@ -131,7 +131,7 @@ class YoutubeDL(object):
|
||||||
username: Username for authentication purposes.
|
username: Username for authentication purposes.
|
||||||
password: Password for authentication purposes.
|
password: Password for authentication purposes.
|
||||||
videopassword: Password for accessing a video.
|
videopassword: Password for accessing a video.
|
||||||
ap_mso_id: Adobe Pass Multiple-system operator Identifier.
|
ap_mso: Adobe Pass Multiple-system operator Identifier.
|
||||||
ap_username: TV Provider username for authentication purposes.
|
ap_username: TV Provider username for authentication purposes.
|
||||||
ap_password: TV Provider password for authentication purposes.
|
ap_password: TV Provider password for authentication purposes.
|
||||||
usenetrc: Use netrc for authentication instead.
|
usenetrc: Use netrc for authentication instead.
|
||||||
|
|
|
@ -120,9 +120,9 @@ def _real_main(argv=None):
|
||||||
desc += ' (Example: "%s%s:%s" )' % (ie.SEARCH_KEY, random.choice(_COUNTS), random.choice(_SEARCHES))
|
desc += ' (Example: "%s%s:%s" )' % (ie.SEARCH_KEY, random.choice(_COUNTS), random.choice(_SEARCHES))
|
||||||
write_string(desc + '\n', out=sys.stdout)
|
write_string(desc + '\n', out=sys.stdout)
|
||||||
sys.exit(0)
|
sys.exit(0)
|
||||||
if opts.list_ap_mso_ids:
|
if opts.ap_mso_list:
|
||||||
table = [[mso_id, mso_info['name']] for mso_id, mso_info in MSO_INFO.items()]
|
table = [[mso_id, mso_info['name']] for mso_id, mso_info in MSO_INFO.items()]
|
||||||
write_string('Supported TV Providers:\n' + render_table(['mso id', 'mso name'], table) + '\n', out=sys.stdout)
|
write_string('Supported TV Providers:\n' + render_table(['mso', 'mso name'], table) + '\n', out=sys.stdout)
|
||||||
sys.exit(0)
|
sys.exit(0)
|
||||||
|
|
||||||
# Conflicting, missing and erroneous options
|
# Conflicting, missing and erroneous options
|
||||||
|
@ -165,6 +165,8 @@ def _real_main(argv=None):
|
||||||
parser.error('max sleep interval must be greater than or equal to min sleep interval')
|
parser.error('max sleep interval must be greater than or equal to min sleep interval')
|
||||||
else:
|
else:
|
||||||
opts.max_sleep_interval = opts.sleep_interval
|
opts.max_sleep_interval = opts.sleep_interval
|
||||||
|
if opts.ap_mso and opts.ap_mso not in MSO_INFO:
|
||||||
|
parser.error('Unsupported TV Provider, use --ap-mso-list to get a list of supported TV Providers')
|
||||||
|
|
||||||
def parse_retries(retries):
|
def parse_retries(retries):
|
||||||
if retries in ('inf', 'infinite'):
|
if retries in ('inf', 'infinite'):
|
||||||
|
@ -303,7 +305,7 @@ def _real_main(argv=None):
|
||||||
'password': opts.password,
|
'password': opts.password,
|
||||||
'twofactor': opts.twofactor,
|
'twofactor': opts.twofactor,
|
||||||
'videopassword': opts.videopassword,
|
'videopassword': opts.videopassword,
|
||||||
'ap_mso_id': opts.ap_mso_id,
|
'ap_mso': opts.ap_mso,
|
||||||
'ap_username': opts.ap_username,
|
'ap_username': opts.ap_username,
|
||||||
'ap_password': opts.ap_password,
|
'ap_password': opts.ap_password,
|
||||||
'quiet': (opts.quiet or any_getting or any_printing),
|
'quiet': (opts.quiet or any_getting or any_printing),
|
||||||
|
|
|
@ -72,8 +72,8 @@ class AdobePassIE(InfoExtractor):
|
||||||
def raise_mvpd_required():
|
def raise_mvpd_required():
|
||||||
raise ExtractorError(
|
raise ExtractorError(
|
||||||
'This video is only available for users of participating TV providers. '
|
'This video is only available for users of participating TV providers. '
|
||||||
'Use --ap-mso-id to specify Adobe Pass Multiple-system operator Identifier '
|
'Use --ap-mso to specify Adobe Pass Multiple-system operator Identifier '
|
||||||
'and --netrc to provide account credentials.', expected=True)
|
'and --ap-username and --ap-password or --netrc to provide account credentials.', expected=True)
|
||||||
|
|
||||||
mvpd_headers = {
|
mvpd_headers = {
|
||||||
'ap_42': 'anonymous',
|
'ap_42': 'anonymous',
|
||||||
|
@ -91,12 +91,9 @@ class AdobePassIE(InfoExtractor):
|
||||||
authn_token = None
|
authn_token = None
|
||||||
if not authn_token:
|
if not authn_token:
|
||||||
# TODO add support for other TV Providers
|
# TODO add support for other TV Providers
|
||||||
mso_id = self._downloader.params.get('ap_mso_id')
|
mso_id = self._downloader.params.get('ap_mso')
|
||||||
if not mso_id:
|
if not mso_id:
|
||||||
raise_mvpd_required()
|
raise_mvpd_required()
|
||||||
if mso_id not in MSO_INFO:
|
|
||||||
raise ExtractorError(
|
|
||||||
'Unsupported TV Provider, use --list-ap-mso-ids to get a list of supported TV Providers' % mso_id, expected=True)
|
|
||||||
username, password = self._get_login_info('ap_username', 'ap_password', mso_id)
|
username, password = self._get_login_info('ap_username', 'ap_password', mso_id)
|
||||||
if not username or not password:
|
if not username or not password:
|
||||||
raise_mvpd_required()
|
raise_mvpd_required()
|
||||||
|
|
|
@ -353,20 +353,20 @@ def parseOpts(overrideArguments=None):
|
||||||
|
|
||||||
adobe_pass = optparse.OptionGroup(parser, 'Adobe Pass Options')
|
adobe_pass = optparse.OptionGroup(parser, 'Adobe Pass Options')
|
||||||
adobe_pass.add_option(
|
adobe_pass.add_option(
|
||||||
'--ap-mso-id',
|
'--ap-mso',
|
||||||
dest='ap_mso_id', metavar='APMSOID',
|
dest='ap_mso', metavar='MSO',
|
||||||
help='Adobe Pass Multiple-system operator Identifier')
|
help='Adobe Pass Multiple-system operator Identifier')
|
||||||
adobe_pass.add_option(
|
adobe_pass.add_option(
|
||||||
'--ap-username',
|
'--ap-username',
|
||||||
dest='ap_username', metavar='APUSERNAME',
|
dest='ap_username', metavar='USERNAME',
|
||||||
help='TV Provider Login with this account ID')
|
help='TV Provider Login with this account ID')
|
||||||
adobe_pass.add_option(
|
adobe_pass.add_option(
|
||||||
'--ap-password',
|
'--ap-password',
|
||||||
dest='ap_password', metavar='APPASSWORD',
|
dest='ap_password', metavar='PASSWORD',
|
||||||
help='TV Provider Account password. If this option is left out, youtube-dl will ask interactively.')
|
help='TV Provider Account password. If this option is left out, youtube-dl will ask interactively.')
|
||||||
adobe_pass.add_option(
|
adobe_pass.add_option(
|
||||||
'--list-ap-mso-ids',
|
'--ap-mso-list',
|
||||||
action='store_true', dest='list_ap_mso_ids', default=False,
|
action='store_true', dest='ap_mso_list', default=False,
|
||||||
help='List all supported TV Providers')
|
help='List all supported TV Providers')
|
||||||
|
|
||||||
video_format = optparse.OptionGroup(parser, 'Video Format Options')
|
video_format = optparse.OptionGroup(parser, 'Video Format Options')
|
||||||
|
|
Loading…
Reference in New Issue