[ap] improve adobe pass names and parse error handling
This commit is contained in:
		@@ -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')
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user