o
    i                     @   sD   d dl mZ ddlmZmZmZ G dd deZG dd deZdS )	   )InfoExtractor   )int_or_noneunescapeHTMLunified_strdatec                   @   s:   e Zd ZdZdZddddddd	d
ddddZdd ZdS )	UstudioIEustudiozShttps?://(?:(?:www|v1)\.)?ustudio\.com/video/(?P<id>[^/]+)/(?P<display_id>[^/?#&]+)zFhttp://ustudio.com/video/Uxu2my9bgSph/san_francisco_golden_gate_bridge 58bbfca62125378742df01fc2abbdef6Uxu2my9bgSph san_francisco_golden_gate_bridgemp4z!San Francisco: Golden Gate Bridgez$md5:23925500697f2c6d4830e387ba51a9bezre:^https?://.*\.jpg$20111107zTony Farley)id
display_idexttitledescription	thumbnailupload_dateuploaderurlmd5	info_dictc           
   	      s   |  | \}}| d| d|  fdd}|d}| ||}| |}t| jd|ddd	}| jd
|ddd	}	|||| ||d||	|dS )Nzhttp://v1.ustudio.com/embed/z/ustudio/config.xmlc                    s   dd   d|  D S )Nc                 S   s@   g | ]}| d rt|jd  t| dt| ddqS )r   widthheight)r   r   r   )getr   attribr   ).0item r    L/home/ubuntu/.local/lib/python3.10/site-packages/yt_dlp/extractor/ustudio.py
<listcomp>#   s    

z<UstudioIE._real_extract.<locals>.extract.<locals>.<listcomp>z./qualities/quality/)findall)kindconfigr    r!   extract"   s   z(UstudioIE._real_extract.<locals>.extractvideoz1(?s)Uploaded by\s*.+?\s*on\s*<span>([^<]+)</span>zupload dateF)fatalzUploaded by\s*<a[^>]*>([^<]+)<r   image)r   r   r   r   
thumbnailsr   r   formats)_match_valid_urlgroups_download_xml_download_webpage_og_search_titler   _search_regex_og_search_description)
selfr   video_idr   r'   r,   webpager   r   r   r    r%   r!   _real_extract   s4   

zUstudioIE._real_extractN__name__
__module____qualname__IE_NAME
_VALID_URL_TESTr7   r    r    r    r!   r   	   s     r   c                   @   s4   e Zd ZdZdZddddddd	d
dZdd ZdS )UstudioEmbedIEzustudio:embedzLhttps?://(?:(?:app|embed)\.)?ustudio\.com/embed/(?P<uid>[^/]+)/(?P<id>[^/]+)z6http://app.ustudio.com/embed/DeN7VdYRDKhP/Uw7G1kMCe65T 47c0be52a09b23a7f40de9469cec58f4Uw7G1kMCe65Tr   z#5 Things IT Should Know About Videoz$md5:93d32650884b500115e158c5677d25adDeN7VdYRDKhP)r   r   r   r   uploader_idr   c              
   C   s  |  | \}}| d| d| d|d d }|d }g }|di  D ]1\}}|D ]*}	|	d}
|
s8q.t|	d	}||rK| d
| dn||
t|	d|d q.q(g }|dg D ]}|d}|slqb|d|i qb|||dt|d||d||dS )Nzhttp://app.ustudio.com/embed//z/config.jsonvideos    name
transcodesr   r   -pr   )	format_idr   r   r   imagesr   durationkeywords)r   r   r   rM   rC   tagsr+   r,   )r-   r.   _download_jsonr   itemsr   append)r4   r   rC   r5   
video_datar   r,   r   	qualitiesqualityquality_urlr   r+   r*   	image_urlr    r    r!   r7   P   sR   


zUstudioEmbedIE._real_extractNr8   r    r    r    r!   r?   A   s    r?   N)commonr   utilsr   r   r   r   r?   r    r    r    r!   <module>   s    8