#NEWLINE# def _real_extract( self , url ) : #NEWLINE# #INDENT# mobj = re . match ( self . _VALID_URL , url ) #NEWLINE# video_id = mobj . group ( 'id' ) #NEWLINE# display_id = mobj . group ( 'display_id' ) #NEWLINE# webpage = self . _download_webpage ( video_url , display_id ) #NEWLINE# video_url = self . _html_search_regex ( '<source src="([^"]+)"' , webpage , 'video URL' ) #NEWLINE# title = self . _html_search_regex ( '<title>([^<]+)\\s*-\\s*Free' , webpage , 'title' ) #NEWLINE# thumbnail = self . _html_search_regex ( 'poster="([^"]+)"' , webpage , 'thumbnail' , fatal = False ) #NEWLINE# like_count = str_to_int ( self . _html_search_regex ( '<span id="rate_likes">\\s*<img[^>]+>\\s*<span>([\\d,\\.]+)</span>' , webpage , 'like count' , fatal = False ) ) #NEWLINE# dislike_count = str_to_int ( self . _html_search_regex ( '<span id="rate_dislikes">\\s*<img[^>]+>\\s*<span>([\\d,\\.]+)</span>' , webpage , 'like count' , fatal = False ) ) #NEWLINE# comment_count = str_to_int ( self . _html_search_regex ( '<span class="comments_count">([\\d,\\.]+)</span>' , webpage , 'comment count' , fatal = False ) ) #NEWLINE# cats_str = self . _search_regex ( '<span>Categories:</span><div>(.+?)</div>' , webpage , 'categories' , fatal = False ) #NEWLINE# categories = ( [ ] if ( not cats_str ) else re . findall ( '<a title="([^"]+)"' , cats_str ) ) #NEWLINE# return { #NEWLINE# #INDENT# 'id' : video_id , #NEWLINE# 'display_id' : display_id , #NEWLINE# 'url' : video_url , #NEWLINE# 'title' : title , #NEWLINE# 'thumbnail' : thumbnail , #NEWLINE# 'like_count' : like_count , #NEWLINE# 'dislike_count' : dislike_count , #NEWLINE# 'comment_count' : comment_count , #NEWLINE# 'categories' : categories , #NEWLINE# 'age_limit' : self . _rta_search ( webpage ) , #NEWLINE# #UNINDENT# }