diff options
| -rw-r--r-- | .gitignore | 2 | ||||
| -rw-r--r-- | test/tests.json | 9 | ||||
| -rwxr-xr-x | youtube_dl/InfoExtractors.py | 57 | 
3 files changed, 67 insertions, 1 deletions
| diff --git a/.gitignore b/.gitignore index 77469b8a7..ca4e8f353 100644 --- a/.gitignore +++ b/.gitignore @@ -17,4 +17,4 @@ youtube-dl.tar.gz  .coverage  cover/  updates_key.pem -*.egg-info +*.egg-info
\ No newline at end of file diff --git a/test/tests.json b/test/tests.json index 929d454ff..0c94c65bd 100644 --- a/test/tests.json +++ b/test/tests.json @@ -319,5 +319,14 @@          "description": "extremely bad day for this guy..!",          "uploader": "ljfriel2"      } +  }, +  { +    "name": "WorldStarHipHop", +    "url": "http://www.worldstarhiphop.com/videos/video.php?v=wshh6a7q1ny0G34ZwuIO", +    "file": "wshh6a7q1ny0G34ZwuIO.mp4", +    "md5": "9d04de741161603bf7071bbf4e883186", +    "info_dict": { +        "title": "Video: KO Of The Week: MMA Fighter Gets Knocked Out By Swift Head Kick! " +    }    }  ] diff --git a/youtube_dl/InfoExtractors.py b/youtube_dl/InfoExtractors.py index b3c3dbb43..b4c86cfa3 100755 --- a/youtube_dl/InfoExtractors.py +++ b/youtube_dl/InfoExtractors.py @@ -3687,6 +3687,62 @@ class UstreamIE(InfoExtractor):                    }          return [info] +class WorldStarHipHopIE(InfoExtractor): +    _VALID_URL = r'http://(?:www|m)\.worldstar(?:candy|hiphop)\.com/videos/video\.php\?v=(?P<id>.*)' +    IE_NAME = u'WorldStarHipHop' + +    def _real_extract(self, url): +        _src_url = r"""(http://hw-videos.*(?:mp4|flv))""" + +        webpage_src = compat_urllib_request.urlopen(url).read() +        webpage_src = webpage_src.decode('utf-8') + +        mobj = re.search(_src_url, webpage_src) + +        m = re.match(self._VALID_URL, url) +        video_id = m.group('id') + +        if mobj is not None: +            video_url = mobj.group() +            if 'mp4' in video_url: +                ext = 'mp4' +            else: +                ext = 'flv' +        else: +            self._downloader.trouble(u'ERROR: Cannot find video url for %s' % video_id) +            return + +        _title = r"""<title>(.*)</title>""" + +        mobj = re.search(_title, webpage_src) +         +        if mobj is not None: +            title = mobj.group(1) +        else: +            title = 'World Start Hip Hop - %s' % time.ctime() + +        _thumbnail = r"""rel="image_src" href="(.*)" />""" +        mobj = re.search(_thumbnail, webpage_src) + +        # Getting thumbnail and if not thumbnail sets correct title for WSHH candy video. +        if mobj is not None: +            thumbnail = mobj.group(1) +        else: +            _title = r"""candytitles.*>(.*)</span>""" +            mobj = re.search(_title, webpage_src) +            if mobj is not None: +                title = mobj.group(1) +            thumbnail = None +         +        results = [{ +                    'id': video_id, +                    'url' : video_url, +                    'title' : title, +                    'thumbnail' : thumbnail, +                    'ext' : ext, +                    }] +        return results +  class RBMARadioIE(InfoExtractor):      _VALID_URL = r'https?://(?:www\.)?rbmaradio\.com/shows/(?P<videoID>[^/]+)$' @@ -4249,6 +4305,7 @@ def gen_extractors():          GooglePlusIE(),          ArteTvIE(),          NBAIE(), +        WorldStarHipHopIE(),          JustinTVIE(),          FunnyOrDieIE(),          SteamIE(), | 
