[ap] improve adobe pass names and parse error handling
authorRemita Amine <remitamine@gmail.com>
Wed, 14 Sep 2016 17:58:47 +0000 (18:58 +0100)
committerRemita Amine <remitamine@gmail.com>
Wed, 14 Sep 2016 17:58:47 +0000 (18:58 +0100)
youtube_dl/YoutubeDL.py
youtube_dl/__init__.py
youtube_dl/extractor/adobepass.py
youtube_dl/options.py

index 9c2c26280ed6906e3fb4ff9c1c0e0aeafa50a6e9..29d8517a30a5a077e0f6a2e8a51200b66628e91f 100755 (executable)
@@ -131,7 +131,7 @@ class YoutubeDL(object):
     username:          Username for authentication purposes.
     password:          Password for authentication purposes.
     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_password:       TV Provider password for authentication purposes.
     usenetrc:          Use netrc for authentication instead.
index cdff3df65e3714b9c733a22f5dee670f4ebfe580..5614ef0fbc176b252cb87ef5e00bec22e271115e 100644 (file)
@@ -120,9 +120,9 @@ def _real_main(argv=None):
                 desc += ' (Example: "%s%s:%s" )' % (ie.SEARCH_KEY, random.choice(_COUNTS), random.choice(_SEARCHES))
             write_string(desc + '\n', out=sys.stdout)
         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()]
-        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)
 
     # 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')
     else:
         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):
         if retries in ('inf', 'infinite'):
@@ -303,7 +305,7 @@ def _real_main(argv=None):
         'password': opts.password,
         'twofactor': opts.twofactor,
         'videopassword': opts.videopassword,
-        'ap_mso_id': opts.ap_mso_id,
+        'ap_mso': opts.ap_mso,
         'ap_username': opts.ap_username,
         'ap_password': opts.ap_password,
         'quiet': (opts.quiet or any_getting or any_printing),
index 913a817d2e46502209308c865191a5122dc22af8..8ef5a96ceddd833560c33c199717cff52c7f01b1 100644 (file)
@@ -72,8 +72,8 @@ class AdobePassIE(InfoExtractor):
         def raise_mvpd_required():
             raise ExtractorError(
                 'This video is only available for users of participating TV providers. '
-                'Use --ap-mso-id to specify Adobe Pass Multiple-system operator Identifier '
-                'and --netrc to provide account credentials.', expected=True)
+                'Use --ap-mso to specify Adobe Pass Multiple-system operator Identifier '
+                'and --ap-username and --ap-password or --netrc to provide account credentials.', expected=True)
 
         mvpd_headers = {
             'ap_42': 'anonymous',
@@ -91,12 +91,9 @@ class AdobePassIE(InfoExtractor):
                 authn_token = None
             if not authn_token:
                 # 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:
                     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)
                 if not username or not password:
                     raise_mvpd_required()
index 342ae3be39d7c8a51aea6c8ab4d924635f11fe00..46c326b3d73da7c2ec44fceeb10cf885d8e47fbb 100644 (file)
@@ -353,20 +353,20 @@ def parseOpts(overrideArguments=None):
 
     adobe_pass = optparse.OptionGroup(parser, 'Adobe Pass Options')
     adobe_pass.add_option(
-        '--ap-mso-id',
-        dest='ap_mso_id', metavar='APMSOID',
+        '--ap-mso',
+        dest='ap_mso', metavar='MSO',
         help='Adobe Pass Multiple-system operator Identifier')
     adobe_pass.add_option(
         '--ap-username',
-        dest='ap_username', metavar='APUSERNAME',
+        dest='ap_username', metavar='USERNAME',
         help='TV Provider Login with this account ID')
     adobe_pass.add_option(
         '--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.')
     adobe_pass.add_option(
-        '--list-ap-mso-ids',
-        action='store_true', dest='list_ap_mso_ids', default=False,
+        '--ap-mso-list',
+        action='store_true', dest='ap_mso_list', default=False,
         help='List all supported TV Providers')
 
     video_format = optparse.OptionGroup(parser, 'Video Format Options')