U
    g                     @   sD   d dl Z ddlmZ ddlmZmZmZmZmZ G dd deZ	dS )    N   )InfoExtractor   )int_or_noneparse_durationstrip_or_nonetraverse_objurl_or_nonec                   @   sf   e Zd ZdZdddddddd	d
ddddddddd	edddddddddd	d
dgZdd ZdS )NuvidIEz3https?://(?:www|m)\.nuvid\.com/video/(?P<id>[0-9]+)z0https://www.nuvid.com/video/6513023/italian-babeZ 772d2f8288f3d3c5c45f7a41761c7844Z6513023Zmp4zitalian babeg     t@   zre:https?://.+\.jpg)idexttitleduration	age_limit	thumbnail)urlmd5Z	info_dictz!https://m.nuvid.com/video/6523263Z ebd22ce8e47e1d9a4d0756a15c67da52Z6523263z'Slut brunette college student anal dormg     Pz@)r   r   r   r   r   r   
thumbnailsz!http://m.nuvid.com/video/6415801/Z 638d5ececb138d5753593f751ae3f697Z6415801z5My best friend wanted to fuck my wife for a long timeiZ  c           
         s   |  |}ddd d| d}| j||dddd	}| jd
| |dddpPd}t|dpn| jd|ddd} fdd|d D }| || tt	|dd}dd t
d|D }	t|dr|	|d dd ||||	|ddS )NZ360pZ720p)ZlqZhqz.https://www.nuvid.com/player_config_json/?vid=z(&aid=0&domain_id=0&embed=0&check_speed=0z0application/json, text/javascript, */*; q = 0.01z0application/x-www-form-urlencoded; charset=utf-8)AcceptzContent-Type)headerszhttp://m.nuvid.com/video/zDownloading video pageF)fatal r   )zB<span\s[^>]*?\btitle\s*=\s*(?P<q>"|'|\b)(?P<title>[^"]+)(?P=q)\s*>zb<div\s[^>]*?\bclass\s*=\s*(?P<q>"|'|\b)thumb-holder video(?P=q)>\s*<h5\b[^>]*>(?P<title>[^<]+)</h5zP<span\s[^>]*?\bclass\s*=\s*(?P<q>"|'|\b)title_thumb(?P=q)>(?P<title>[^<]+)</span)groupc                    s8   g | ]0\}}|r|  |t  |d d dqS )N)r   Z	format_idheight)getr   ).0ZqualitysourceZ	qualities :/tmp/pip-unpacked-wheel-q5ljy6pj/yt_dlp/extractor/nuvid.py
<listcomp>L   s    z)NuvidIE._real_extract.<locals>.<listcomp>filesr   Zduration_formatc                 S   s   g | ]}t |rd |iqS )r   )r	   )r   Z	thumb_urlr    r    r!   r"   U   s   zI<div\s+class\s*=\s*"video-tmb-wrap"\s*>\s*<img\s+src\s*=\s*"([^"]+)"\s*/>Zposterr   )r   Z
preferencer   )r   formatsr   r   r   r   )Z	_match_idZ_download_jsonZ_download_webpager   r   Z_html_search_regexitemsZ_check_formatsr   r   refindallr	   append)
selfr   Zvideo_idZjson_urlZ
video_dataZwebpager   r$   r   r   r    r   r!   _real_extract3   s\    
     
 zNuvidIE._real_extractN)__name__
__module____qualname__Z
_VALID_URLlistZ_TESTSr*   r    r    r    r!   r
      sD   $r
   )
r&   commonr   utilsr   r   r   r   r	   r
   r    r    r    r!   <module>   s   	