diff options
| author | Jaime Marquínez Ferrándiz <jaime.marquinez.ferrandiz@gmail.com> | 2014-03-30 11:26:35 +0200 | 
|---|---|---|
| committer | Jaime Marquínez Ferrándiz <jaime.marquinez.ferrandiz@gmail.com> | 2014-04-01 20:30:22 +0200 | 
| commit | 18c95c1ab06f69c003ab3c438cba885248e79a38 (patch) | |
| tree | 9504b7d8b82901c69294f2f91a18ffcd3e879b58 | |
| parent | 0479c625a44e414674982383f5fe051893d125b8 (diff) | |
[rutube] Use _download_json
| -rw-r--r-- | youtube_dl/extractor/rutube.py | 19 | 
1 files changed, 7 insertions, 12 deletions
diff --git a/youtube_dl/extractor/rutube.py b/youtube_dl/extractor/rutube.py index 7c6607460..f1ce66433 100644 --- a/youtube_dl/extractor/rutube.py +++ b/youtube_dl/extractor/rutube.py @@ -2,7 +2,6 @@  from __future__ import unicode_literals  import re -import json  import itertools  from .common import InfoExtractor @@ -39,17 +38,15 @@ class RutubeIE(InfoExtractor):      def _real_extract(self, url):          mobj = re.match(self._VALID_URL, url)          video_id = mobj.group('id') -         -        api_response = self._download_webpage( + +        video = self._download_json(              'http://rutube.ru/api/video/%s/?format=json' % video_id,              video_id, 'Downloading video JSON') -        video = json.loads(api_response) -         -        api_response = self._download_webpage( + +        trackinfo = self._download_json(              'http://rutube.ru/api/play/trackinfo/%s/?format=json' % video_id,              video_id, 'Downloading trackinfo JSON') -        trackinfo = json.loads(api_response) -         +          # Some videos don't have the author field          author = trackinfo.get('author') or {}          m3u8_url = trackinfo['video_balancer'].get('m3u8') @@ -82,10 +79,9 @@ class RutubeChannelIE(InfoExtractor):      def _extract_videos(self, channel_id, channel_title=None):          entries = []          for pagenum in itertools.count(1): -            api_response = self._download_webpage( +            page = self._download_json(                  self._PAGE_TEMPLATE % (channel_id, pagenum),                  channel_id, 'Downloading page %s' % pagenum) -            page = json.loads(api_response)              results = page['results']              if not results:                  break @@ -111,10 +107,9 @@ class RutubeMovieIE(RutubeChannelIE):      def _real_extract(self, url):          mobj = re.match(self._VALID_URL, url)          movie_id = mobj.group('id') -        api_response = self._download_webpage( +        movie = self._download_json(              self._MOVIE_TEMPLATE % movie_id, movie_id,              'Downloading movie JSON') -        movie = json.loads(api_response)          movie_name = movie['name']          return self._extract_videos(movie_id, movie_name)  | 
