@ -10,15 +10,15 @@ from ..utils import url_basename
class BehindKinkIE ( InfoExtractor ) :
class BehindKinkIE ( InfoExtractor ) :
_VALID_URL = r ' http://(?:www \ .)?behindkink \ .com/(?P<year>[0-9] {4} )/(?P<month>[0-9] {2} )/(?P<day>[0-9] {2} )/(?P<id>[^/#?_]+) '
_VALID_URL = r ' http://(?:www \ .)?behindkink \ .com/(?P<year>[0-9] {4} )/(?P<month>[0-9] {2} )/(?P<day>[0-9] {2} )/(?P<id>[^/#?_]+) '
_TEST = {
_TEST = {
' url ' : ' http://www.behindkink.com/2014/ 08/14/ab1576-performers-voice-finally-heard-the-bill-is-killed /' ,
' url ' : ' http://www.behindkink.com/2014/ 12/05/what-are-you-passionate-about-marley-blaze /' ,
' md5 ' : ' 41ad01222b8442089a55528fec43ec01 ' ,
' md5 ' : ' 507b57d8fdcd75a41a9a7bdb7989c762 ' ,
' info_dict ' : {
' info_dict ' : {
' id ' : ' 3 6370 ' ,
' id ' : ' 3 7127 ' ,
' ext ' : ' mp4 ' ,
' ext ' : ' mp4 ' ,
' title ' : ' AB1576 - PERFORMERS VOICE FINALLY HEARD - THE BILL IS KILLED! ' ,
' title ' : ' What are you passionate about – Marley Blaze ' ,
' description ' : ' The adult industry voice was finally heard as Assembly Bill 1576 remained\xa0 in suspense today at the Senate Appropriations Hearing. AB1576 was, among other industry damaging issues, a condom mandate... ' ,
' description ' : ' md5:aee8e9611b4ff70186f752975d9b94b4 ' ,
' upload_date ' : ' 2014 0814 ' ,
' upload_date ' : ' 2014 1205 ' ,
' thumbnail ' : ' http://www.behindkink.com/wp-content/uploads/2014/ 08/36370_AB1576_Win .jpg' ,
' thumbnail ' : ' http://www.behindkink.com/wp-content/uploads/2014/ 12/blaze-1 .jpg' ,
' age_limit ' : 18 ,
' age_limit ' : 18 ,
}
}
}
}
@ -26,26 +26,19 @@ class BehindKinkIE(InfoExtractor):
def _real_extract ( self , url ) :
def _real_extract ( self , url ) :
mobj = re . match ( self . _VALID_URL , url )
mobj = re . match ( self . _VALID_URL , url )
display_id = mobj . group ( ' id ' )
display_id = mobj . group ( ' id ' )
year = mobj . group ( ' year ' )
month = mobj . group ( ' month ' )
day = mobj . group ( ' day ' )
upload_date = year + month + day
webpage = self . _download_webpage ( url , display_id )
webpage = self . _download_webpage ( url , display_id )
video_url = self . _search_regex (
video_url = self . _search_regex (
r " ' file ' : \ s* ' ([^ ' ]+) ' " ,
r ' <source src= " ([^ " ]+) " ' , webpage , ' video URL ' )
webpage , ' URL base ' )
video_id = url_basename ( video_url ) . split ( ' _ ' ) [ 0 ]
upload_date = mobj . group ( ' year ' ) + mobj . group ( ' month ' ) + mobj . group ( ' day ' )
video_id = url_basename ( video_url )
video_id = video_id . split ( ' _ ' ) [ 0 ]
return {
return {
' id ' : video_id ,
' id ' : video_id ,
' display_id ' : display_id ,
' url ' : video_url ,
' url ' : video_url ,
' ext ' : ' mp4 ' ,
' title ' : self . _og_search_title ( webpage ) ,
' title ' : self . _og_search_title ( webpage ) ,
' display_id ' : display_id ,
' thumbnail ' : self . _og_search_thumbnail ( webpage ) ,
' thumbnail ' : self . _og_search_thumbnail ( webpage ) ,
' description ' : self . _og_search_description ( webpage ) ,
' description ' : self . _og_search_description ( webpage ) ,
' upload_date ' : upload_date ,
' upload_date ' : upload_date ,