o
    i                     @   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-babe 772d2f8288f3d3c5c45f7a41761c78446513023mp4zitalian babeg     t@   zre:https?://.+\.jpg)idexttitleduration	age_limit	thumbnail)urlmd5	info_dictz!https://m.nuvid.com/video/6523263 ebd22ce8e47e1d9a4d0756a15c67da526523263z'Slut brunette college student anal dormg     Pz@)r   r   r   r   r   r   
thumbnailsz!http://m.nuvid.com/video/6415801/ 638d5ececb138d5753593f751ae3f697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p(d}t|dp7| jd|ddd} fdd|d D }| || tt	|dd}dd t
d|D }	t|drq|	|d dd ||||	|ddS )N360p720p)lq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 | ]\}}|r|  |t  |d d dqS )N)r   	format_idheight)getr   ).0qualitysource	qualities J/home/ubuntu/.local/lib/python3.10/site-packages/yt_dlp/extractor/nuvid.py
<listcomp>L   s    
z)NuvidIE._real_extract.<locals>.<listcomp>filesr   duration_formatc                 S   s   g | ]
}t |rd |iqS )r   )r	   )r*   	thumb_urlr/   r/   r0   r1   U   s    zI<div\s+class\s*=\s*"video-tmb-wrap"\s*>\s*<img\s+src\s*=\s*"([^"]+)"\s*/>posterr   )r   
preferencer   )r   formatsr   r   r   r   )	_match_id_download_json_download_webpager   r)   _html_search_regexitems_check_formatsr   r   refindallr	   append)
selfr   video_idjson_url
video_datawebpager   r7   r   r   r/   r-   r0   _real_extract3   sP   

zNuvidIE._real_extractN)__name__
__module____qualname__
_VALID_URLlist_TESTSrF   r/   r/   r/   r0   r
      sF    $r
   )
r>   commonr   utilsr   r   r   r   r	   r
   r/   r/   r/   r0   <module>   s    	