2014-01-22 02:01:23 +01:00
from __future__ import unicode_literals
2014-04-03 20:44:51 +02:00
from . youtube import YoutubeIE
2016-06-16 12:27:21 +08:00
from . jwplatform import JWPlatformBaseIE
2013-06-26 15:25:53 +05:00
2016-06-16 12:27:21 +08:00
class WimpIE ( JWPlatformBaseIE ) :
2016-03-21 21:36:32 +06:00
_VALID_URL = r ' https?://(?:www \ .)?wimp \ .com/(?P<id>[^/]+) '
2014-04-03 20:44:51 +02:00
_TESTS = [ {
2016-06-16 12:27:21 +08:00
' url ' : ' http://www.wimp.com/maru-is-exhausted/ ' ,
2015-09-07 12:49:59 +01:00
' md5 ' : ' ee21217ffd66d058e8b16be340b74883 ' ,
2014-01-22 02:01:23 +01:00
' info_dict ' : {
2016-06-16 12:27:21 +08:00
' id ' : ' maru-is-exhausted ' ,
2015-09-07 12:49:59 +01:00
' ext ' : ' mp4 ' ,
2017-01-30 10:59:39 -06:00
' title ' : ' Maru Is Exhausted. ' ,
2014-02-21 17:57:19 +07:00
' description ' : ' md5:57e099e857c0a4ea312542b684a869b8 ' ,
2013-06-27 20:46:46 +02:00
}
2014-04-03 20:44:51 +02:00
} , {
' url ' : ' http://www.wimp.com/clowncar/ ' ,
2017-01-30 10:59:39 -06:00
' md5 ' : ' 4e2986c793694b55b37cf92521d12bb4 ' ,
2014-04-03 20:44:51 +02:00
' info_dict ' : {
2017-01-30 10:59:39 -06:00
' id ' : ' clowncar ' ,
' ext ' : ' mp4 ' ,
' title ' : ' It \' s Like A Clown Car. ' ,
' description ' : ' Gretchen Hoey raises Basset Hounds and on this particular day, she catches a few of them snuggling together in one doghouse. After one of them notices her, they all begin to funnel out of the doghouse like clowns in a clown car to greet her. '
2014-04-03 20:44:51 +02:00
} ,
2016-06-16 12:27:21 +08:00
' add_ie ' : [ ' Youtube ' ] ,
2017-01-30 10:59:39 -06:00
} , {
' url ' : ' http://www.wimp.com/bird-does-funny-march/ ' ,
' md5 ' : ' f2833774cf4d680849989a1cf92a06cc ' ,
' info_dict ' : {
' id ' : ' bird-does-funny-march ' ,
' ext ' : ' mp4 ' ,
' title ' : ' Bird Does Funny March ' ,
' description ' : ' This bird \' s walk might look pretty silly, but as soon as you add some military marching music over it, it becomes the most regal sight you \' ve ever seen. \r \n '
}
2014-04-03 20:44:51 +02:00
} ]
2013-06-26 15:25:53 +05:00
def _real_extract ( self , url ) :
2015-09-07 12:49:59 +01:00
video_id = self . _match_id ( url )
2015-12-07 22:14:45 +06:00
2013-06-26 15:25:53 +05:00
webpage = self . _download_webpage ( url , video_id )
2015-12-07 22:14:45 +06:00
youtube_id = self . _search_regex (
r " videoId \ s*: \ s*[ \" ' ]([0-9A-Za-z_-] {11} )[ \" ' ] " ,
webpage , ' video URL ' , default = None )
if youtube_id :
2014-04-03 20:44:51 +02:00
return {
' _type ' : ' url ' ,
2015-12-07 22:14:45 +06:00
' url ' : youtube_id ,
2014-04-03 20:44:51 +02:00
' ie_key ' : YoutubeIE . ie_key ( ) ,
}
2013-06-26 17:26:59 +05:00
2017-01-30 10:59:39 -06:00
url = self . _search_regex ( r ' class= \' oyt-container .*? data-src= \' (.*?) \' ' , webpage , ' Video URL ' , default = None , fatal = False )
if url :
info_dict = {
' id ' : video_id ,
' title ' : self . _og_search_title ( webpage ) ,
' description ' : self . _og_search_description ( webpage ) ,
' url ' : url
}
else :
info_dict = self . _extract_jwplayer_data (
webpage , video_id , require_title = False )
2015-12-07 22:14:45 +06:00
2017-01-30 10:59:39 -06:00
info_dict . update ( {
' id ' : video_id ,
' title ' : self . _og_search_title ( webpage ) ,
' description ' : self . _og_search_description ( webpage ) ,
} )
2016-06-16 12:27:21 +08:00
return info_dict