diff options
Diffstat (limited to 'youtube_dl/extractor/youtube.py')
| -rw-r--r-- | youtube_dl/extractor/youtube.py | 19 | 
1 files changed, 10 insertions, 9 deletions
diff --git a/youtube_dl/extractor/youtube.py b/youtube_dl/extractor/youtube.py index 1bc2dc22b..87a5a452e 100644 --- a/youtube_dl/extractor/youtube.py +++ b/youtube_dl/extractor/youtube.py @@ -40,7 +40,7 @@ class YoutubeBaseInfoExtractor(InfoExtractor):      """Provide base functions for Youtube extractors"""      _LOGIN_URL = 'https://accounts.google.com/ServiceLogin'      _LANG_URL = r'https://www.youtube.com/?hl=en&persist_hl=1&gl=US&persist_gl=1&opt_out_ackd=1' -    _AGE_URL = 'http://www.youtube.com/verify_age?next_url=/&gl=US&hl=en' +    _AGE_URL = 'https://www.youtube.com/verify_age?next_url=/&gl=US&hl=en'      _NETRC_MACHINE = 'youtube'      # If True it will raise an error if no login info is provided      _LOGIN_REQUIRED = False @@ -111,7 +111,8 @@ class YoutubeBaseInfoExtractor(InfoExtractor):              'next_url': '/',              'action_confirm': 'Confirm',          } -        req = compat_urllib_request.Request(self._AGE_URL, compat_urllib_parse.urlencode(age_form)) +        req = compat_urllib_request.Request(self._AGE_URL, +            compat_urllib_parse.urlencode(age_form).encode('ascii'))          self._download_webpage(              req, None, @@ -1014,7 +1015,7 @@ class YoutubeIE(YoutubeBaseInfoExtractor, SubtitlesInfoExtractor):      def _get_available_subtitles(self, video_id, webpage):          try:              sub_list = self._download_webpage( -                'http://video.google.com/timedtext?hl=en&type=list&v=%s' % video_id, +                'https://video.google.com/timedtext?hl=en&type=list&v=%s' % video_id,                  video_id, note=False)          except ExtractorError as err:              self._downloader.report_warning(u'unable to download video subtitles: %s' % compat_str(err)) @@ -1030,7 +1031,7 @@ class YoutubeIE(YoutubeBaseInfoExtractor, SubtitlesInfoExtractor):                  'fmt': self._downloader.params.get('subtitlesformat', 'srt'),                  'name': unescapeHTML(l[0]).encode('utf-8'),              }) -            url = u'http://www.youtube.com/api/timedtext?' + params +            url = u'https://www.youtube.com/api/timedtext?' + params              sub_lang_list[lang] = url          if not sub_lang_list:              self._downloader.report_warning(u'video doesn\'t have subtitles') @@ -1529,7 +1530,7 @@ class YoutubeTopListIE(YoutubePlaylistIE):          channel = mobj.group('chann')          title = mobj.group('title')          query = compat_urllib_parse.urlencode({'title': title}) -        playlist_re = 'href="([^"]+?%s[^"]+?)"' % re.escape(query) +        playlist_re = 'href="([^"]+?%s.*?)"' % re.escape(query)          channel_page = self._download_webpage('https://www.youtube.com/%s' % channel, title)          link = self._html_search_regex(playlist_re, channel_page, u'list')          url = compat_urlparse.urljoin('https://www.youtube.com/', link) @@ -1554,7 +1555,7 @@ class YoutubeChannelIE(InfoExtractor):      IE_DESC = u'YouTube.com channels'      _VALID_URL = r"^(?:https?://)?(?:youtu\.be|(?:\w+\.)?youtube(?:-nocookie)?\.com)/channel/([0-9A-Za-z_-]+)"      _MORE_PAGES_INDICATOR = 'yt-uix-load-more' -    _MORE_PAGES_URL = 'http://www.youtube.com/c4_browse_ajax?action_load_more_videos=1&flow=list&paging=%s&view=0&sort=da&channel_id=%s' +    _MORE_PAGES_URL = 'https://www.youtube.com/c4_browse_ajax?action_load_more_videos=1&flow=list&paging=%s&view=0&sort=da&channel_id=%s'      IE_NAME = u'youtube:channel'      def extract_videos_from_page(self, page): @@ -1610,9 +1611,9 @@ class YoutubeChannelIE(InfoExtractor):  class YoutubeUserIE(InfoExtractor):      IE_DESC = u'YouTube.com user videos (URL or "ytuser" keyword)'      _VALID_URL = r'(?:(?:(?:https?://)?(?:\w+\.)?youtube\.com/(?:user/)?(?!(?:attribution_link|watch)(?:$|[^a-z_A-Z0-9-])))|ytuser:)(?!feed/)([A-Za-z0-9_-]+)' -    _TEMPLATE_URL = 'http://gdata.youtube.com/feeds/api/users/%s' +    _TEMPLATE_URL = 'https://gdata.youtube.com/feeds/api/users/%s'      _GDATA_PAGE_SIZE = 50 -    _GDATA_URL = 'http://gdata.youtube.com/feeds/api/users/%s/uploads?max-results=%d&start-index=%d&alt=json' +    _GDATA_URL = 'https://gdata.youtube.com/feeds/api/users/%s/uploads?max-results=%d&start-index=%d&alt=json'      IE_NAME = u'youtube:user'      @classmethod @@ -1743,7 +1744,7 @@ class YoutubeFeedsInfoExtractor(YoutubeBaseInfoExtractor):          action = 'action_load_system_feed'          if self._PERSONAL_FEED:              action = 'action_load_personal_feed' -        return 'http://www.youtube.com/feed_ajax?%s=1&feed_name=%s&paging=%%s' % (action, self._FEED_NAME) +        return 'https://www.youtube.com/feed_ajax?%s=1&feed_name=%s&paging=%%s' % (action, self._FEED_NAME)      @property      def IE_NAME(self):  | 
