a
    h(                     @   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                   @   s$  e Zd ZdZ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dd d!d"d#d$d%d&d'dd(d)d*d+d,d-d.d/d0d1dd2d3d4d5d6d%d7d8dd9d:d;gd<d=d>d?d@dAdBdCdDdEd.dFdGdHdIdGdHgZdJdK ZdLdM ZdNdO ZdPdQ ZdRS )SCondeNastIEu{   
    Condé Nast is a media group, some of its sites use a custom HTML5 player
    that works the same in all of them.
    ZAllurezArchitectural DigestzArs Technicau   Bon AppétitZBridesu   Condé Nastu   Condé Nast TravelerZDetailsZ
EpicuriousZGlamourzGolf DigestZGQzThe New YorkerZSELFz
Teen VoguezVanity FairZVogueZWIREDz
W Magazine)ZallureZarchitecturaldigestarstechnicaZ
bonappetitZbridesZcnevidsZ
cntravelerdetailsZ
epicuriousZglamourZ
golfdigestgqZ	newyorkerselfZ	teenvogue
vanityfairZvoguewiredZ	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-ledZ 1921f713ed48aabd715691f774c451f7Z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   Z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=seriesZ58d1865bfd2e6126e2000015u*   The Only True Surprise? Trump’s an Idiotr   Z20170321i[Xz@How much grimmer would things be if these people were competent?)r   r   r   r   r   r   r   )r   r!   zVhttp://player.cnevids.com/embedjs/55f9cf8b61646d1acf00000c/5511d76261646d5566020000.jsZ f1a6f9cafb7083bab74a710f65d08999Z55f9cf8b61646d1acf00000cz:3D printed TSA Travel Sentry keys really do open TSA locksr   Z20150916ihU)r   r   r   r   r   r   zAhttps://www.vanityfair.com/video/watch/vf-quiz-show-squid-game-s3Z6862f999c1afbc5ff06b4803z5'Squid Game' Cast Tests How Well They Know Each OtherzArts & CultureZ	Hollywoodz$md5:7a9c668a1fc87648e77da13842ec1534i  zSeason 1zQuizzing Each Otherzcount:2z2re:https?://dwgyu36up6iuz\.cloudfront\.net/.+\.jpgiXchZ20250701r   )r   r   r   
categoriesr   durationseasonseriestags	thumbnailr   r   r   zXhttps://player.cnevids.com/inline/video/59138decb57ac36b83000005.js?target=js-cne-playerT)r   Z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 r+   O/mnt/pikpak/tmp/myenv/lib/python3.9/site-packages/yt_dlp/extractor/condenast.py	<genexpr>       z.CondeNastIE._extract_series.<locals>.<genexpr>c                    s   g | ]} t |d qS )Z	CondeNast)Z
url_resultr   )r)   pathbase_urlr   r+   r,   
<listcomp>   r.   z/CondeNastIE._extract_series.<locals>.<listcomp>)Zplaylist_title)
Z_html_search_regexurllibparseurlparseschemenetlocrefinditerr
   Zplaylist_result)r   r   webpager   Z
url_objectZm_pathspathsentriesr+   r0   r,   _extract_series}   s    zCondeNastIE._extract_seriesc                 C   sp   | j | jd|ddd|tdd}|r<| jd|dd d|d	< n0t| 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-playerr   rB   playerIdtarget)_parse_json_search_regexr   r   update)r   r:   
display_idqueryparamsr+   r+   r,   _extract_video_params   s,    z!CondeNastIE._extract_video_paramsc                 C   s  |d }d }|  }d|d< | jd|dd|d}|sR|drR| jd	|d
d|d}|r`|d}|sv| jd|d|d}|s| jd| d|dd|ddid}|s| j| d|d|tdd }|d }g }|d D ]}|d}	|	sqt|dpt|	}
|
dkr(|	| j
|	|ddddd q|d }||
|rHd!| nd" |	|
|d#kr^d$nd%d& qi }|d'i  D ]>\}}|d}|d(v r~|sq~|d)g d*|i q~||||d+|d,t|d-|d.|d/|d0t|d1|d2|d3S )4NrB   inlineZ	embedTypez(http://player.cnevids.com/embed-api.jsonzDownloading embed infoF)rA   rJ   rD   z)http://player.cnevids.com/player/video.jszDownloading video infovideoz*http://player.cnevids.com/player/loader.jszDownloading loader info)rJ   z(https://player.cnevids.com/inline/video/z.jszDownloading inline inforE   Zembedplayerz(?s)var\s+config\s*=\s*({.+?});config)r@   r   sourcessrctypeZm3u8r   Zm3u8_nativeZhls)Zentry_protocolZm3u8_idrA   quality- highr   r   )Z	format_idr   r   rS   Zcaptions)ZvttZsrtZtmlenr   Zposter_frameZbrandr#   r&   Zseries_titleZseason_titleZpremiere_dater"   )r   formatsr   r'   r   r#   r&   r%   r$   r   r"   	subtitles)copyZ_download_jsonget_download_webpagerF   rG   r   r	   r   extendZ_extract_m3u8_formatsappenditems
setdefaultr   r   )r   rK   video_idZ
video_inforJ   Z	info_pager   rX   fdatarQ   r   rS   rY   tcaptionZcaption_urlr+   r+   r,   _extract_video   s    







zCondeNastIE._extract_videoc              	   C   s   |  | \}}}}}|r.| |||dS | ||}|dkrN| ||S t| | d|dd|dd }|rd|d	 i}	d
t|	d
i}
n| 
||}	| j||dd}
|
| |	 |
S d S )NrC   r%   z"__PRELOADED_STATE__\s*=\s*({.+?});zpreload stater>   c                 S   s   | d d S )NZtransformedrN   r+   )xr+   r+   r,   <lambda>   r.   z+CondeNastIE._real_extract.<locals>.<lambda>rB   r   r   F)rA   )Z_match_valid_urlgroupsre   r\   r=   r   rF   rG   r   r[   rL   Z_search_json_ldrH   )r   r   ra   Z	player_idrE   url_typerI   r:   rN   rK   infor+   r+   r,   _real_extract   s6    
zCondeNastIE._real_extractN)__name__
__module____qualname____doc__Z_SITESformatjoinkeysZ
_VALID_URLsortedvaluesZIE_DESCZ_EMBED_REGEXZ_TESTSr=   rL   re   rk   r+   r+   r+   r,   r      s   =Pr   )r8   urllib.parser3   commonr   utilsr   r   r   r   r	   r
   r   r   r   r   r   r+   r+   r+   r,   <module>   s   0