diff options
36 files changed, 88 insertions, 92 deletions
diff --git a/youtube_dl/extractor/atresplayer.py b/youtube_dl/extractor/atresplayer.py index f9568cb5b..d2f388964 100644 --- a/youtube_dl/extractor/atresplayer.py +++ b/youtube_dl/extractor/atresplayer.py @@ -6,16 +6,14 @@ import hashlib  import re  from .common import InfoExtractor -from ..compat import ( -    compat_str, -    compat_urllib_parse_urlencode, -) +from ..compat import compat_str  from ..utils import ( -    int_or_none, +    ExtractorError,      float_or_none, +    int_or_none,      sanitized_Request, +    urlencode_postdata,      xpath_text, -    ExtractorError,  ) @@ -86,7 +84,7 @@ class AtresPlayerIE(InfoExtractor):          }          request = sanitized_Request( -            self._LOGIN_URL, compat_urllib_parse_urlencode(login_form).encode('utf-8')) +            self._LOGIN_URL, urlencode_postdata(login_form))          request.add_header('Content-Type', 'application/x-www-form-urlencoded')          response = self._download_webpage(              request, None, 'Logging in as %s' % username) diff --git a/youtube_dl/extractor/bambuser.py b/youtube_dl/extractor/bambuser.py index 1a2eef48d..0eb1930c2 100644 --- a/youtube_dl/extractor/bambuser.py +++ b/youtube_dl/extractor/bambuser.py @@ -4,15 +4,13 @@ import re  import itertools  from .common import InfoExtractor -from ..compat import ( -    compat_urllib_parse_urlencode, -    compat_str, -) +from ..compat import compat_str  from ..utils import (      ExtractorError, -    int_or_none,      float_or_none, +    int_or_none,      sanitized_Request, +    urlencode_postdata,  ) @@ -58,7 +56,7 @@ class BambuserIE(InfoExtractor):          }          request = sanitized_Request( -            self._LOGIN_URL, compat_urllib_parse_urlencode(login_form).encode('utf-8')) +            self._LOGIN_URL, urlencode_postdata(login_form))          request.add_header('Referer', self._LOGIN_URL)          response = self._download_webpage(              request, None, 'Logging in as %s' % username) diff --git a/youtube_dl/extractor/ceskatelevize.py b/youtube_dl/extractor/ceskatelevize.py index d93108df5..6652c8e42 100644 --- a/youtube_dl/extractor/ceskatelevize.py +++ b/youtube_dl/extractor/ceskatelevize.py @@ -6,13 +6,13 @@ import re  from .common import InfoExtractor  from ..compat import (      compat_urllib_parse_unquote, -    compat_urllib_parse_urlencode,      compat_urllib_parse_urlparse,  )  from ..utils import (      ExtractorError,      float_or_none,      sanitized_Request, +    urlencode_postdata,  ) @@ -102,7 +102,7 @@ class CeskaTelevizeIE(InfoExtractor):          req = sanitized_Request(              'http://www.ceskatelevize.cz/ivysilani/ajax/get-client-playlist', -            data=compat_urllib_parse_urlencode(data)) +            data=urlencode_postdata(data))          req.add_header('Content-type', 'application/x-www-form-urlencoded')          req.add_header('x-addr', '127.0.0.1') diff --git a/youtube_dl/extractor/crunchyroll.py b/youtube_dl/extractor/crunchyroll.py index 7746f1be3..8ae3f2890 100644 --- a/youtube_dl/extractor/crunchyroll.py +++ b/youtube_dl/extractor/crunchyroll.py @@ -308,7 +308,7 @@ Format: Layer, Start, End, Style, Name, MarginL, MarginR, MarginV, Effect, Text          playerdata_url = compat_urllib_parse_unquote(self._html_search_regex(r'"config_url":"([^"]+)', webpage, 'playerdata_url'))          playerdata_req = sanitized_Request(playerdata_url) -        playerdata_req.data = compat_urllib_parse_urlencode({'current_page': webpage_url}) +        playerdata_req.data = urlencode_postdata({'current_page': webpage_url})          playerdata_req.add_header('Content-Type', 'application/x-www-form-urlencoded')          playerdata = self._download_webpage(playerdata_req, video_id, note='Downloading media info') diff --git a/youtube_dl/extractor/dcn.py b/youtube_dl/extractor/dcn.py index 982ed94ea..5deff5f30 100644 --- a/youtube_dl/extractor/dcn.py +++ b/youtube_dl/extractor/dcn.py @@ -15,6 +15,7 @@ from ..utils import (      sanitized_Request,      smuggle_url,      unsmuggle_url, +    urlencode_postdata,  ) @@ -174,7 +175,7 @@ class DCNSeasonIE(InfoExtractor):          data['show_id'] = show_id          request = sanitized_Request(              'http://admin.mangomolo.com/analytics/index.php/plus/show', -            compat_urllib_parse_urlencode(data), +            urlencode_postdata(data),              {                  'Origin': 'http://www.dcndigital.ae',                  'Content-Type': 'application/x-www-form-urlencoded' diff --git a/youtube_dl/extractor/dramafever.py b/youtube_dl/extractor/dramafever.py index 2101acaaf..3b6529f4b 100644 --- a/youtube_dl/extractor/dramafever.py +++ b/youtube_dl/extractor/dramafever.py @@ -6,7 +6,6 @@ import itertools  from .amp import AMPIE  from ..compat import (      compat_HTTPError, -    compat_urllib_parse_urlencode,      compat_urlparse,  )  from ..utils import ( @@ -14,6 +13,7 @@ from ..utils import (      clean_html,      int_or_none,      sanitized_Request, +    urlencode_postdata  ) @@ -50,7 +50,7 @@ class DramaFeverBaseIE(AMPIE):          }          request = sanitized_Request( -            self._LOGIN_URL, compat_urllib_parse_urlencode(login_form).encode('utf-8')) +            self._LOGIN_URL, urlencode_postdata(login_form))          response = self._download_webpage(              request, None, 'Logging in as %s' % username) diff --git a/youtube_dl/extractor/fc2.py b/youtube_dl/extractor/fc2.py index cacf61973..c7d69ff1f 100644 --- a/youtube_dl/extractor/fc2.py +++ b/youtube_dl/extractor/fc2.py @@ -5,13 +5,13 @@ import hashlib  from .common import InfoExtractor  from ..compat import ( -    compat_urllib_parse_urlencode,      compat_urllib_request,      compat_urlparse,  )  from ..utils import (      ExtractorError,      sanitized_Request, +    urlencode_postdata,  ) @@ -56,7 +56,7 @@ class FC2IE(InfoExtractor):              'Submit': ' Login ',          } -        login_data = compat_urllib_parse_urlencode(login_form_strs).encode('utf-8') +        login_data = urlencode_postdata(login_form_strs)          request = sanitized_Request(              'https://secure.id.fc2.com/index.php?mode=login&switch_language=en', login_data) diff --git a/youtube_dl/extractor/gdcvault.py b/youtube_dl/extractor/gdcvault.py index cc8fa45d2..59ed4c38f 100644 --- a/youtube_dl/extractor/gdcvault.py +++ b/youtube_dl/extractor/gdcvault.py @@ -3,11 +3,11 @@ from __future__ import unicode_literals  import re  from .common import InfoExtractor -from ..compat import compat_urllib_parse_urlencode  from ..utils import (      remove_end,      HEADRequest,      sanitized_Request, +    urlencode_postdata,  ) @@ -123,7 +123,7 @@ class GDCVaultIE(InfoExtractor):              'password': password,          } -        request = sanitized_Request(login_url, compat_urllib_parse_urlencode(login_form)) +        request = sanitized_Request(login_url, urlencode_postdata(login_form))          request.add_header('Content-Type', 'application/x-www-form-urlencoded')          self._download_webpage(request, display_id, 'Logging in')          start_page = self._download_webpage(webpage_url, display_id, 'Getting authenticated video page') diff --git a/youtube_dl/extractor/hotnewhiphop.py b/youtube_dl/extractor/hotnewhiphop.py index 152d2a98a..9db565209 100644 --- a/youtube_dl/extractor/hotnewhiphop.py +++ b/youtube_dl/extractor/hotnewhiphop.py @@ -3,11 +3,11 @@ from __future__ import unicode_literals  import base64  from .common import InfoExtractor -from ..compat import compat_urllib_parse_urlencode  from ..utils import (      ExtractorError,      HEADRequest,      sanitized_Request, +    urlencode_postdata,  ) @@ -35,7 +35,7 @@ class HotNewHipHopIE(InfoExtractor):                  r'"contentUrl" content="(.*?)"', webpage, 'content URL')              return self.url_result(video_url, ie='Youtube') -        reqdata = compat_urllib_parse_urlencode([ +        reqdata = urlencode_postdata([              ('mediaType', 's'),              ('mediaId', video_id),          ]) diff --git a/youtube_dl/extractor/lynda.py b/youtube_dl/extractor/lynda.py index df50cb655..71fd55ade 100644 --- a/youtube_dl/extractor/lynda.py +++ b/youtube_dl/extractor/lynda.py @@ -4,15 +4,13 @@ import re  import json  from .common import InfoExtractor -from ..compat import ( -    compat_str, -    compat_urllib_parse_urlencode, -) +from ..compat import compat_str  from ..utils import (      ExtractorError,      clean_html,      int_or_none,      sanitized_Request, +    urlencode_postdata,  ) @@ -36,7 +34,7 @@ class LyndaBaseIE(InfoExtractor):              'stayPut': 'false'          }          request = sanitized_Request( -            self._LOGIN_URL, compat_urllib_parse_urlencode(login_form).encode('utf-8')) +            self._LOGIN_URL, urlencode_postdata(login_form))          login_page = self._download_webpage(              request, None, 'Logging in as %s' % username) @@ -65,7 +63,7 @@ class LyndaBaseIE(InfoExtractor):                      'stayPut': 'false',                  }                  request = sanitized_Request( -                    self._LOGIN_URL, compat_urllib_parse_urlencode(confirm_form).encode('utf-8')) +                    self._LOGIN_URL, urlencode_postdata(confirm_form))                  login_page = self._download_webpage(                      request, None,                      'Confirming log in and log out from another device') diff --git a/youtube_dl/extractor/metacafe.py b/youtube_dl/extractor/metacafe.py index 0e4865446..61dadb7a7 100644 --- a/youtube_dl/extractor/metacafe.py +++ b/youtube_dl/extractor/metacafe.py @@ -6,13 +6,13 @@ from .common import InfoExtractor  from ..compat import (      compat_parse_qs,      compat_urllib_parse_unquote, -    compat_urllib_parse_urlencode,  )  from ..utils import (      determine_ext,      ExtractorError,      int_or_none,      sanitized_Request, +    urlencode_postdata,  ) @@ -117,7 +117,7 @@ class MetacafeIE(InfoExtractor):              'filters': '0',              'submit': "Continue - I'm over 18",          } -        request = sanitized_Request(self._FILTER_POST, compat_urllib_parse_urlencode(disclaimer_form)) +        request = sanitized_Request(self._FILTER_POST, urlencode_postdata(disclaimer_form))          request.add_header('Content-Type', 'application/x-www-form-urlencoded')          self.report_age_confirmation()          self._download_webpage(request, None, False, 'Unable to confirm age') diff --git a/youtube_dl/extractor/minhateca.py b/youtube_dl/extractor/minhateca.py index 6ec53c303..e6730b75a 100644 --- a/youtube_dl/extractor/minhateca.py +++ b/youtube_dl/extractor/minhateca.py @@ -2,12 +2,12 @@  from __future__ import unicode_literals  from .common import InfoExtractor -from ..compat import compat_urllib_parse_urlencode  from ..utils import (      int_or_none,      parse_duration,      parse_filesize,      sanitized_Request, +    urlencode_postdata,  ) @@ -39,7 +39,7 @@ class MinhatecaIE(InfoExtractor):          ]          req = sanitized_Request(              'http://minhateca.com.br/action/License/Download', -            data=compat_urllib_parse_urlencode(token_data)) +            data=urlencode_postdata(token_data))          req.add_header('Content-Type', 'application/x-www-form-urlencoded')          data = self._download_json(              req, video_id, note='Downloading metadata') diff --git a/youtube_dl/extractor/moevideo.py b/youtube_dl/extractor/moevideo.py index 89cdd4600..978d5d5bf 100644 --- a/youtube_dl/extractor/moevideo.py +++ b/youtube_dl/extractor/moevideo.py @@ -5,11 +5,11 @@ import json  import re  from .common import InfoExtractor -from ..compat import compat_urllib_parse_urlencode  from ..utils import (      ExtractorError,      int_or_none,      sanitized_Request, +    urlencode_postdata,  ) @@ -77,7 +77,7 @@ class MoeVideoIE(InfoExtractor):              ],          ]          r_json = json.dumps(r) -        post = compat_urllib_parse_urlencode({'r': r_json}) +        post = urlencode_postdata({'r': r_json})          req = sanitized_Request(self._API_URL, post)          req.add_header('Content-type', 'application/x-www-form-urlencoded') diff --git a/youtube_dl/extractor/moniker.py b/youtube_dl/extractor/moniker.py index c5ce693f1..b208820fe 100644 --- a/youtube_dl/extractor/moniker.py +++ b/youtube_dl/extractor/moniker.py @@ -5,11 +5,11 @@ import os.path  import re  from .common import InfoExtractor -from ..compat import compat_urllib_parse_urlencode  from ..utils import (      ExtractorError,      remove_start,      sanitized_Request, +    urlencode_postdata,  ) @@ -88,7 +88,7 @@ class MonikerIE(InfoExtractor):              fields = re.findall(r'type="hidden" name="(.+?)"\s* value="?(.+?)">', orig_webpage)              data = dict(fields) -            post = compat_urllib_parse_urlencode(data) +            post = urlencode_postdata(data)              headers = {                  b'Content-Type': b'application/x-www-form-urlencoded',              } diff --git a/youtube_dl/extractor/mooshare.py b/youtube_dl/extractor/mooshare.py index ee3947f43..a85109a89 100644 --- a/youtube_dl/extractor/mooshare.py +++ b/youtube_dl/extractor/mooshare.py @@ -3,10 +3,10 @@ from __future__ import unicode_literals  import re  from .common import InfoExtractor -from ..compat import compat_urllib_parse_urlencode  from ..utils import (      ExtractorError,      sanitized_Request, +    urlencode_postdata,  ) @@ -58,7 +58,7 @@ class MooshareIE(InfoExtractor):          }          request = sanitized_Request( -            'http://mooshare.biz/%s' % video_id, compat_urllib_parse_urlencode(download_form)) +            'http://mooshare.biz/%s' % video_id, urlencode_postdata(download_form))          request.add_header('Content-Type', 'application/x-www-form-urlencoded')          self._sleep(5, video_id) diff --git a/youtube_dl/extractor/nfb.py b/youtube_dl/extractor/nfb.py index ba1eefafc..51e4a34f7 100644 --- a/youtube_dl/extractor/nfb.py +++ b/youtube_dl/extractor/nfb.py @@ -1,8 +1,10 @@  from __future__ import unicode_literals  from .common import InfoExtractor -from ..compat import compat_urllib_parse_urlencode -from ..utils import sanitized_Request +from ..utils import ( +    sanitized_Request, +    urlencode_postdata, +)  class NFBIE(InfoExtractor): @@ -40,7 +42,7 @@ class NFBIE(InfoExtractor):          request = sanitized_Request(              'https://www.nfb.ca/film/%s/player_config' % video_id, -            compat_urllib_parse_urlencode({'getConfig': 'true'}).encode('ascii')) +            urlencode_postdata({'getConfig': 'true'}))          request.add_header('Content-Type', 'application/x-www-form-urlencoded')          request.add_header('X-NFB-Referer', 'http://www.nfb.ca/medias/flash/NFBVideoPlayer.swf') diff --git a/youtube_dl/extractor/niconico.py b/youtube_dl/extractor/niconico.py index 688f0a124..dd75a48af 100644 --- a/youtube_dl/extractor/niconico.py +++ b/youtube_dl/extractor/niconico.py @@ -18,6 +18,7 @@ from ..utils import (      sanitized_Request,      xpath_text,      determine_ext, +    urlencode_postdata,  ) @@ -100,7 +101,7 @@ class NiconicoIE(InfoExtractor):              'mail': username,              'password': password,          } -        login_data = compat_urllib_parse_urlencode(login_form_strs).encode('utf-8') +        login_data = urlencode_postdata(login_form_strs)          request = sanitized_Request(              'https://secure.nicovideo.jp/secure/login', login_data)          login_results = self._download_webpage( diff --git a/youtube_dl/extractor/noco.py b/youtube_dl/extractor/noco.py index 8f4b69a6f..06f2bda07 100644 --- a/youtube_dl/extractor/noco.py +++ b/youtube_dl/extractor/noco.py @@ -8,7 +8,6 @@ import hashlib  from .common import InfoExtractor  from ..compat import (      compat_str, -    compat_urllib_parse_urlencode,      compat_urlparse,  )  from ..utils import ( @@ -18,6 +17,7 @@ from ..utils import (      float_or_none,      parse_iso8601,      sanitized_Request, +    urlencode_postdata,  ) @@ -75,7 +75,7 @@ class NocoIE(InfoExtractor):              'username': username,              'password': password,          } -        request = sanitized_Request(self._LOGIN_URL, compat_urllib_parse_urlencode(login_form)) +        request = sanitized_Request(self._LOGIN_URL, urlencode_postdata(login_form))          request.add_header('Content-Type', 'application/x-www-form-urlencoded; charset=UTF-8')          login = self._download_json(request, None, 'Logging in as %s' % username) diff --git a/youtube_dl/extractor/played.py b/youtube_dl/extractor/played.py index 63065622b..57c875ef0 100644 --- a/youtube_dl/extractor/played.py +++ b/youtube_dl/extractor/played.py @@ -5,10 +5,10 @@ import re  import os.path  from .common import InfoExtractor -from ..compat import compat_urllib_parse_urlencode  from ..utils import (      ExtractorError,      sanitized_Request, +    urlencode_postdata,  ) @@ -40,7 +40,7 @@ class PlayedIE(InfoExtractor):          self._sleep(2, video_id) -        post = compat_urllib_parse_urlencode(data) +        post = urlencode_postdata(data)          headers = {              b'Content-Type': b'application/x-www-form-urlencoded',          } diff --git a/youtube_dl/extractor/pluralsight.py b/youtube_dl/extractor/pluralsight.py index 575775f09..bc66f7a9d 100644 --- a/youtube_dl/extractor/pluralsight.py +++ b/youtube_dl/extractor/pluralsight.py @@ -8,7 +8,6 @@ import collections  from .common import InfoExtractor  from ..compat import (      compat_str, -    compat_urllib_parse_urlencode,      compat_urlparse,  )  from ..utils import ( @@ -17,6 +16,7 @@ from ..utils import (      parse_duration,      qualities,      sanitized_Request, +    urlencode_postdata,  ) @@ -76,7 +76,7 @@ class PluralsightIE(PluralsightBaseIE):              post_url = compat_urlparse.urljoin(self._LOGIN_URL, post_url)          request = sanitized_Request( -            post_url, compat_urllib_parse_urlencode(login_form).encode('utf-8')) +            post_url, urlencode_postdata(login_form))          request.add_header('Content-Type', 'application/x-www-form-urlencoded')          response = self._download_webpage( diff --git a/youtube_dl/extractor/primesharetv.py b/youtube_dl/extractor/primesharetv.py index 188f08826..0c1024772 100644 --- a/youtube_dl/extractor/primesharetv.py +++ b/youtube_dl/extractor/primesharetv.py @@ -1,10 +1,10 @@  from __future__ import unicode_literals  from .common import InfoExtractor -from ..compat import compat_urllib_parse_urlencode  from ..utils import (      ExtractorError,      sanitized_Request, +    urlencode_postdata,  ) @@ -42,7 +42,7 @@ class PrimeShareTVIE(InfoExtractor):          self._sleep(wait_time, video_id)          req = sanitized_Request( -            url, compat_urllib_parse_urlencode(fields), headers) +            url, urlencode_postdata(fields), headers)          video_page = self._download_webpage(              req, video_id, 'Downloading video page') diff --git a/youtube_dl/extractor/promptfile.py b/youtube_dl/extractor/promptfile.py index 67312016c..f93bd19ff 100644 --- a/youtube_dl/extractor/promptfile.py +++ b/youtube_dl/extractor/promptfile.py @@ -4,11 +4,11 @@ from __future__ import unicode_literals  import re  from .common import InfoExtractor -from ..compat import compat_urllib_parse_urlencode  from ..utils import (      determine_ext,      ExtractorError,      sanitized_Request, +    urlencode_postdata,  ) @@ -34,7 +34,7 @@ class PromptFileIE(InfoExtractor):                                   expected=True)          fields = self._hidden_inputs(webpage) -        post = compat_urllib_parse_urlencode(fields) +        post = urlencode_postdata(fields)          req = sanitized_Request(url, post)          req.add_header('Content-type', 'application/x-www-form-urlencoded')          webpage = self._download_webpage( diff --git a/youtube_dl/extractor/shared.py b/youtube_dl/extractor/shared.py index e66441997..e7e5f653e 100644 --- a/youtube_dl/extractor/shared.py +++ b/youtube_dl/extractor/shared.py @@ -3,11 +3,11 @@ from __future__ import unicode_literals  import base64  from .common import InfoExtractor -from ..compat import compat_urllib_parse_urlencode  from ..utils import (      ExtractorError,      int_or_none,      sanitized_Request, +    urlencode_postdata,  ) @@ -45,7 +45,7 @@ class SharedIE(InfoExtractor):          download_form = self._hidden_inputs(webpage)          request = sanitized_Request( -            url, compat_urllib_parse_urlencode(download_form)) +            url, urlencode_postdata(download_form))          request.add_header('Content-Type', 'application/x-www-form-urlencoded')          video_page = self._download_webpage( diff --git a/youtube_dl/extractor/sharesix.py b/youtube_dl/extractor/sharesix.py index 61dc1c235..9cce5ceb4 100644 --- a/youtube_dl/extractor/sharesix.py +++ b/youtube_dl/extractor/sharesix.py @@ -4,10 +4,10 @@ from __future__ import unicode_literals  import re  from .common import InfoExtractor -from ..compat import compat_urllib_parse_urlencode  from ..utils import (      parse_duration,      sanitized_Request, +    urlencode_postdata,  ) @@ -47,7 +47,7 @@ class ShareSixIE(InfoExtractor):          fields = {              'method_free': 'Free'          } -        post = compat_urllib_parse_urlencode(fields) +        post = urlencode_postdata(fields)          req = sanitized_Request(url, post)          req.add_header('Content-type', 'application/x-www-form-urlencoded') diff --git a/youtube_dl/extractor/smotri.py b/youtube_dl/extractor/smotri.py index b4c6d5bbf..5c3fd0fec 100644 --- a/youtube_dl/extractor/smotri.py +++ b/youtube_dl/extractor/smotri.py @@ -7,12 +7,12 @@ import hashlib  import uuid  from .common import InfoExtractor -from ..compat import compat_urllib_parse_urlencode  from ..utils import (      ExtractorError,      int_or_none,      sanitized_Request,      unified_strdate, +    urlencode_postdata,  ) @@ -175,7 +175,7 @@ class SmotriIE(InfoExtractor):              video_form['pass'] = hashlib.md5(video_password.encode('utf-8')).hexdigest()          request = sanitized_Request( -            'http://smotri.com/video/view/url/bot/', compat_urllib_parse_urlencode(video_form)) +            'http://smotri.com/video/view/url/bot/', urlencode_postdata(video_form))          request.add_header('Content-Type', 'application/x-www-form-urlencoded')          video = self._download_json(request, video_id, 'Downloading video JSON') @@ -338,7 +338,7 @@ class SmotriBroadcastIE(InfoExtractor):              }              request = sanitized_Request( -                broadcast_url + '/?no_redirect=1', compat_urllib_parse_urlencode(login_form)) +                broadcast_url + '/?no_redirect=1', urlencode_postdata(login_form))              request.add_header('Content-Type', 'application/x-www-form-urlencoded')              broadcast_page = self._download_webpage(                  request, broadcast_id, 'Logging in and confirming age') diff --git a/youtube_dl/extractor/soundcloud.py b/youtube_dl/extractor/soundcloud.py index 2bca8fa3a..194dabc71 100644 --- a/youtube_dl/extractor/soundcloud.py +++ b/youtube_dl/extractor/soundcloud.py @@ -500,7 +500,6 @@ class SoundcloudSearchIE(SearchInfoExtractor, SoundcloudIE):          query['linked_partitioning'] = '1'          query['offset'] = 0          data = compat_urllib_parse_urlencode(query) -        data = compat_urllib_parse_urlencode(query)          next_url = '{0}{1}?{2}'.format(self._API_V2_BASE, endpoint, data)          collected_results = 0 diff --git a/youtube_dl/extractor/streamcloud.py b/youtube_dl/extractor/streamcloud.py index b17779e4b..712359885 100644 --- a/youtube_dl/extractor/streamcloud.py +++ b/youtube_dl/extractor/streamcloud.py @@ -4,8 +4,10 @@ from __future__ import unicode_literals  import re  from .common import InfoExtractor -from ..compat import compat_urllib_parse_urlencode -from ..utils import sanitized_Request +from ..utils import ( +    sanitized_Request, +    urlencode_postdata, +)  class StreamcloudIE(InfoExtractor): @@ -35,7 +37,7 @@ class StreamcloudIE(InfoExtractor):              (?:id="[^"]+"\s+)?              value="([^"]*)"              ''', orig_webpage) -        post = compat_urllib_parse_urlencode(fields) +        post = urlencode_postdata(fields)          self._sleep(12, video_id)          headers = { diff --git a/youtube_dl/extractor/tubitv.py b/youtube_dl/extractor/tubitv.py index 50ed15163..306ee4e15 100644 --- a/youtube_dl/extractor/tubitv.py +++ b/youtube_dl/extractor/tubitv.py @@ -5,11 +5,11 @@ import codecs  import re  from .common import InfoExtractor -from ..compat import compat_urllib_parse_urlencode  from ..utils import (      ExtractorError,      int_or_none,      sanitized_Request, +    urlencode_postdata,  ) @@ -41,7 +41,7 @@ class TubiTvIE(InfoExtractor):              'username': username,              'password': password,          } -        payload = compat_urllib_parse_urlencode(form_data).encode('utf-8') +        payload = urlencode_postdata(form_data)          request = sanitized_Request(self._LOGIN_URL, payload)          request.add_header('Content-Type', 'application/x-www-form-urlencoded')          login_page = self._download_webpage( diff --git a/youtube_dl/extractor/twitch.py b/youtube_dl/extractor/twitch.py index c92dcc7b9..36ee1adff 100644 --- a/youtube_dl/extractor/twitch.py +++ b/youtube_dl/extractor/twitch.py @@ -20,6 +20,7 @@ from ..utils import (      parse_duration,      parse_iso8601,      sanitized_Request, +    urlencode_postdata,  ) @@ -81,7 +82,7 @@ class TwitchBaseIE(InfoExtractor):              post_url = compat_urlparse.urljoin(redirect_url, post_url)          request = sanitized_Request( -            post_url, compat_urllib_parse_urlencode(login_form).encode('utf-8')) +            post_url, urlencode_postdata(login_form))          request.add_header('Referer', redirect_url)          response = self._download_webpage(              request, None, 'Logging in as %s' % username) diff --git a/youtube_dl/extractor/udemy.py b/youtube_dl/extractor/udemy.py index 6adfb2cee..be6f3be5e 100644 --- a/youtube_dl/extractor/udemy.py +++ b/youtube_dl/extractor/udemy.py @@ -13,6 +13,7 @@ from ..utils import (      int_or_none,      sanitized_Request,      unescapeHTML, +    urlencode_postdata,  ) @@ -139,7 +140,7 @@ class UdemyIE(InfoExtractor):          })          request = sanitized_Request( -            self._LOGIN_URL, compat_urllib_parse_urlencode(login_form).encode('utf-8')) +            self._LOGIN_URL, urlencode_postdata(login_form))          request.add_header('Referer', self._ORIGIN_URL)          request.add_header('Origin', self._ORIGIN_URL) diff --git a/youtube_dl/extractor/vbox7.py b/youtube_dl/extractor/vbox7.py index 77bb200e9..dff1bb702 100644 --- a/youtube_dl/extractor/vbox7.py +++ b/youtube_dl/extractor/vbox7.py @@ -2,13 +2,11 @@  from __future__ import unicode_literals  from .common import InfoExtractor -from ..compat import ( -    compat_urllib_parse_urlencode, -    compat_urlparse, -) +from ..compat import compat_urlparse  from ..utils import (      ExtractorError,      sanitized_Request, +    urlencode_postdata,  ) @@ -48,7 +46,7 @@ class Vbox7IE(InfoExtractor):                                          webpage, 'title').split('/')[0].strip()          info_url = 'http://vbox7.com/play/magare.do' -        data = compat_urllib_parse_urlencode({'as3': '1', 'vid': video_id}) +        data = urlencode_postdata({'as3': '1', 'vid': video_id})          info_request = sanitized_Request(info_url, data)          info_request.add_header('Content-Type', 'application/x-www-form-urlencoded')          info_response = self._download_webpage(info_request, video_id, 'Downloading info webpage') diff --git a/youtube_dl/extractor/vk.py b/youtube_dl/extractor/vk.py index 458099a4a..67220f1b7 100644 --- a/youtube_dl/extractor/vk.py +++ b/youtube_dl/extractor/vk.py @@ -5,10 +5,7 @@ import re  import json  from .common import InfoExtractor -from ..compat import ( -    compat_str, -    compat_urllib_parse_urlencode, -) +from ..compat import compat_str  from ..utils import (      ExtractorError,      int_or_none, @@ -17,6 +14,7 @@ from ..utils import (      str_to_int,      unescapeHTML,      unified_strdate, +    urlencode_postdata,  )  from .vimeo import VimeoIE  from .pladform import PladformIE @@ -204,7 +202,7 @@ class VKIE(InfoExtractor):          request = sanitized_Request(              'https://login.vk.com/?act=login', -            compat_urllib_parse_urlencode(login_form).encode('utf-8')) +            urlencode_postdata(login_form))          login_page = self._download_webpage(              request, None, note='Logging in as %s' % username) diff --git a/youtube_dl/extractor/vodlocker.py b/youtube_dl/extractor/vodlocker.py index f1abca4d9..a938a4007 100644 --- a/youtube_dl/extractor/vodlocker.py +++ b/youtube_dl/extractor/vodlocker.py @@ -2,11 +2,11 @@  from __future__ import unicode_literals  from .common import InfoExtractor -from ..compat import compat_urllib_parse_urlencode  from ..utils import (      ExtractorError,      NO_DEFAULT,      sanitized_Request, +    urlencode_postdata,  ) @@ -38,7 +38,7 @@ class VodlockerIE(InfoExtractor):          if fields['op'] == 'download1':              self._sleep(3, video_id)  # they do detect when requests happen too fast! -            post = compat_urllib_parse_urlencode(fields) +            post = urlencode_postdata(fields)              req = sanitized_Request(url, post)              req.add_header('Content-type', 'application/x-www-form-urlencoded')              webpage = self._download_webpage( diff --git a/youtube_dl/extractor/xfileshare.py b/youtube_dl/extractor/xfileshare.py index 4e35e1f44..2d1504eaa 100644 --- a/youtube_dl/extractor/xfileshare.py +++ b/youtube_dl/extractor/xfileshare.py @@ -4,11 +4,11 @@ from __future__ import unicode_literals  import re  from .common import InfoExtractor -from ..compat import compat_urllib_parse_urlencode  from ..utils import (      ExtractorError,      int_or_none,      sanitized_Request, +    urlencode_postdata,  ) @@ -108,7 +108,7 @@ class XFileShareIE(InfoExtractor):              if countdown:                  self._sleep(countdown, video_id) -            post = compat_urllib_parse_urlencode(fields) +            post = urlencode_postdata(fields)              req = sanitized_Request(url, post)              req.add_header('Content-type', 'application/x-www-form-urlencoded') diff --git a/youtube_dl/extractor/yandexmusic.py b/youtube_dl/extractor/yandexmusic.py index 158f3ea68..025716958 100644 --- a/youtube_dl/extractor/yandexmusic.py +++ b/youtube_dl/extractor/yandexmusic.py @@ -5,15 +5,13 @@ import re  import hashlib  from .common import InfoExtractor -from ..compat import ( -    compat_str, -    compat_urllib_parse_urlencode, -) +from ..compat import compat_str  from ..utils import (      ExtractorError,      int_or_none,      float_or_none,      sanitized_Request, +    urlencode_postdata,  ) @@ -170,14 +168,14 @@ class YandexMusicPlaylistIE(YandexMusicPlaylistBaseIE):              missing_track_ids = set(map(compat_str, track_ids)) - set(present_track_ids)              request = sanitized_Request(                  'https://music.yandex.ru/handlers/track-entries.jsx', -                compat_urllib_parse_urlencode({ +                urlencode_postdata({                      'entries': ','.join(missing_track_ids),                      'lang': mu.get('settings', {}).get('lang', 'en'),                      'external-domain': 'music.yandex.ru',                      'overembed': 'false',                      'sign': mu.get('authData', {}).get('user', {}).get('sign'),                      'strict': 'true', -                }).encode('utf-8')) +                }))              request.add_header('Referer', url)              request.add_header('X-Requested-With', 'XMLHttpRequest') diff --git a/youtube_dl/extractor/youtube.py b/youtube_dl/extractor/youtube.py index 83b5840f7..8c321f1fc 100644 --- a/youtube_dl/extractor/youtube.py +++ b/youtube_dl/extractor/youtube.py @@ -44,6 +44,7 @@ from ..utils import (      unified_strdate,      unsmuggle_url,      uppercase_escape, +    urlencode_postdata,      ISO3166Utils,  ) @@ -115,7 +116,7 @@ class YoutubeBaseInfoExtractor(InfoExtractor):              'hl': 'en_US',          } -        login_data = compat_urllib_parse_urlencode(login_form_strs).encode('ascii') +        login_data = urlencode_postdata(login_form_strs)          req = sanitized_Request(self._LOGIN_URL, login_data)          login_results = self._download_webpage( @@ -148,7 +149,7 @@ class YoutubeBaseInfoExtractor(InfoExtractor):                  'TrustDevice': 'on',              }) -            tfa_data = compat_urllib_parse_urlencode(tfa_form_strs).encode('ascii') +            tfa_data = urlencode_postdata(tfa_form_strs)              tfa_req = sanitized_Request(self._TWOFACTOR_URL, tfa_data)              tfa_results = self._download_webpage(  | 
