o
    i(                     @   s`   d dl Z d dlZddlmZ ddlmZmZmZm	Z	m
Z
mZmZmZmZmZ G dd deZdS )    N   )InfoExtractor   )
determine_extextract_attributesint_or_none
js_to_jsonmimetype2ext
orderedSetparse_iso8601strip_or_nonetry_geturljoinc                   @   sl  e Zd ZdZi dddddddd	d
dddddddddddddddddddddd d!d"d#d$d%d&Zd'd(e Zd)d*e	e
 Zd+d(e gZd,d-d.d/d0d1d2d3d4d5d6d7d8d/d9dd:d;d<d=d>d?d@dAd/dBddCdDdEd6dFdGd/dHdIdJgdKdLdMdNdOdPdQdRd dSd>dTdUdVdWdUdVgZdXdY ZdZd[ Zd\d] Zd^d_ Zd`S )aCondeNastIEu{   
    Condé Nast is a media group, some of its sites use a custom HTML5 player
    that works the same in all of them.
    allureAllurearchitecturaldigestzArchitectural DigestarstechnicazArs Technica
bonappetitu   Bon AppétitbridesBridescnevidsu   Condé Nast
cntraveleru   Condé Nast TravelerdetailsDetails
epicurious
EpicuriousglamourGlamour
golfdigestzGolf DigestgqGQ	newyorkerzThe New YorkerselfSELF	teenvoguez
Teen Vogue
vanityfairzVanity FairvogueVogueWIREDz
W Magazine)wired	wmagazineaT  (?x)https?://(?:video|www|player(?:-backend)?)\.(?:{})\.com/
        (?:
            (?:
                embed(?:js)?|
                (?:script|inline)/video
            )/(?P<id>[0-9a-f]{{24}})(?:/(?P<player_id>[0-9a-f]{{24}}))?(?:.+?\btarget=(?P<target>[^&]+))?|
            (?P<type>watch|series|video)/(?P<display_id>[^/?#]+)
        )|u   Condé Nast media group: {}z, z(?x)
        <(?:iframe|script)[^>]+?src=(["\'])(?P<url>
            (?:https?:)?//player(?:-backend)?\.(?:{})\.com/(?:embed(?:js)?|(?:script|inline)/video)/.+?
        )\1z=http://video.wired.com/watch/3d-printed-speakers-lit-with-led 1921f713ed48aabd715691f774c451f75171b343c2b4c00dd0c1ccb3mp4z 3D Printed Speakers Lit With LEDzCheck out these beautiful 3D printed LED speakers.  You can't actually buy them, but LumiGeek is working on a board that will let you make you're own.r*   20130314i AQ)idexttitledescriptionuploaderupload_date	timestamp)urlmd5	info_dictzjhttp://video.gq.com/watch/the-closer-with-keith-olbermann-the-only-true-surprise-trump-s-an-idiot?c=series58d1865bfd2e6126e2000015u*   The Only True Surprise? Trump’s an Idiot20170321i[Xz@How much grimmer would things be if these people were competent?)r1   r2   r3   r5   r6   r7   r4   )r8   r:   zVhttp://player.cnevids.com/embedjs/55f9cf8b61646d1acf00000c/5511d76261646d5566020000.js f1a6f9cafb7083bab74a710f65d0899955f9cf8b61646d1acf00000cz:3D printed TSA Travel Sentry keys really do open TSA locks20150916ihU)r1   r2   r3   r5   r6   r7   zAhttps://www.vanityfair.com/video/watch/vf-quiz-show-squid-game-s36862f999c1afbc5ff06b4803z5'Squid Game' Cast Tests How Well They Know Each OtherzArts & Culture	Hollywoodz$md5:7a9c668a1fc87648e77da13842ec1534i  zSeason 1zQuizzing Each Otherzcount:2z2re:https?://dwgyu36up6iuz\.cloudfront\.net/.+\.jpgiXch20250701)r1   r2   r3   
categoriesr4   durationseasonseriestags	thumbnailr7   r6   r5   zXhttps://player.cnevids.com/inline/video/59138decb57ac36b83000005.js?target=js-cne-playerT)r8   only_matchingzJhttp://player-backend.cnevids.com/script/video/59138decb57ac36b83000005.jsc                    sl    d|d}tj|}|j d|j  td|}tdd |D } fdd|D }j	||d	S )
Nz2(?s)<div class="cne-series-info">.*?<h1>(.+?)</h1>zseries titlez://z<(?s)<p class="cne-thumb-title">.*?<a href="(/watch/.+?)["\?]c                 s   s    | ]}| d V  qdS )r   N)group).0m rM   N/home/ubuntu/.local/lib/python3.10/site-packages/yt_dlp/extractor/condenast.py	<genexpr>   s    z.CondeNastIE._extract_series.<locals>.<genexpr>c                    s   g | ]} t |d qS )	CondeNast)
url_resultr   )rK   pathbase_urlr#   rM   rN   
<listcomp>   s    z/CondeNastIE._extract_series.<locals>.<listcomp>)playlist_title)
_html_search_regexurllibparseurlparseschemenetlocrefinditerr
   playlist_result)r#   r8   webpager3   
url_objectm_pathspathsentriesrM   rS   rN   _extract_series}   s   zCondeNastIE._extract_seriesc                 C   sr   | j | jd|ddd|tdd}|r| jd|dd d|d	< |S t| d
|d}||d |d |d d |S )Nz"(?s)var\s+params\s*=\s*({.+?})[;,]zplayer params{})defaultF)transform_sourcefatalz7(?:data-video-id=|currentVideoId\s*=\s*)["\']([\da-f]+)zvideo idvideoIdz$(<[^>]+data-js="video-player"[^>]+>)zplayer params elementz
data-videozdata-playerr1   rj   playerIdtarget)_parse_json_search_regexr   r   update)r#   r`   
display_idqueryparamsrM   rM   rN   _extract_video_params   s.   
z!CondeNastIE._extract_video_paramsc                 C   s  |d }d }|  }d|d< | jd|dd|d}|s)|dr)| jd	|d
d|d}|r0|d}|s;| jd|d|d}|sP| jd| d|dd|ddid}|sa| j| d|d|tdd }|d }g }|d D ]F}|d}	|	suqkt|dpt|	}
|
dkr|	| j
|	|ddddd qk|d }||
|rd!| nd" |	|
|d#krd$nd%d& qki }|d'i  D ]\}}|d}|d(v r|sq|d)g d*|i q||||d+|d,t|d-|d.|d/|d0t|d1|d2|d3S )4Nrj   inline	embedTypez(http://player.cnevids.com/embed-api.jsonzDownloading embed infoF)ri   rr   rl   z)http://player.cnevids.com/player/video.jszDownloading video infovideoz*http://player.cnevids.com/player/loader.jszDownloading loader info)rr   z(https://player.cnevids.com/inline/video/z.jszDownloading inline inform   embedplayerz(?s)var\s+config\s*=\s*({.+?});config)rh   r3   sourcessrctypem3u8r/   m3u8_nativehls)entry_protocolm3u8_idri   quality- highr   r   )	format_idr8   r2   r   captions)vttsrttmlenr8   poster_framebrandrD   rG   series_titleseason_titlepremiere_daterC   )r1   formatsr3   rH   r5   rD   rG   rF   rE   r7   rC   	subtitles)copy_download_jsonget_download_webpagern   ro   r   r	   r   extend_extract_m3u8_formatsappenditems
setdefaultr   r   )r#   rs   video_id
video_inforr   	info_pager3   r   fdatar{   r2   r   r   tcaptioncaption_urlrM   rM   rN   _extract_video   s   






zCondeNastIE._extract_videoc              	   C   s   |  | \}}}}}|r| |||dS | ||}|dkr'| ||S t| | d|dd|dd }|rJd|d	 i}	d
t|	d
i}
n| 
||}	| j||dd}
|
| |	 |
S )Nrk   rF   z"__PRELOADED_STATE__\s*=\s*({.+?});zpreload staterf   c                 S   s   | d d S )Ntransformedrw   rM   )xrM   rM   rN   <lambda>   s    z+CondeNastIE._real_extract.<locals>.<lambda>rj   r1   r4   F)ri   )_match_valid_urlgroupsr   r   re   r   rn   ro   r   r   rt   _search_json_ldrp   )r#   r8   r   	player_idrm   url_typerq   r`   rw   rs   inforM   rM   rN   _real_extract   s6   
zCondeNastIE._real_extractN)__name__
__module____qualname____doc___SITESformatjoinkeys
_VALID_URLsortedvaluesIE_DESC_EMBED_REGEX_TESTSre   rt   r   r   rM   rM   rM   rN   r      s    	
=Pr   )r]   urllib.parserX   commonr   utilsr   r   r   r   r	   r
   r   r   r   r   r   rM   rM   rM   rN   <module>   s
    0